Cloud Agents API
Cloud Agents API v1 はパブリックベータです。正式提供前に API が変更される場合があります。
Cloud Agents API を使用すると、リポジトリで動作する Cloud Agent をプログラム経由で起動し、管理できます。
- Cloud Agents API は、Basic 認証と Bearer 認証 の両方を使用します。ユーザー API キーは Cursor Dashboard → API Keys で生成するか、サービスアカウントの API キー を使用します。
- 認証方法、レート制限、ベストプラクティスの詳細については、API Overview を参照してください。
- 詳細なスキーマと例については、完全な OpenAPI specification を参照してください。
- Webhooks は近日提供予定です。旧 v0 API では引き続きサポートされています。詳しくは Webhooks を参照してください。
この API では、よりフラットな v0 のインターフェースに代わり、永続的なエージェントとプロンプトごとの実行に作業が分割されています。旧 v0 reference も引き続き利用できます。
エンドポイント
エージェントを作成する
/v1/agentsCloud Agentを作成し、初回の実行を即座にキューに追加します。レスポンスには、永続的なagentと初回のrunの両方が返されます。
リクエストボディ
prompt オブジェクト (必須)
prompt.text 文字列 (必須)
prompt.images 配列 (任意)
data (必須の mimeType を伴う base64 エンコード済みバイト列) か url (Cursor が取得する http または https の URL) のいずれかを含める必要があります。最大5枚、各ファイルは最大15MB。サポートされている MIME タイプ: image/png, image/jpeg, image/gif, image/webp。model オブジェクト (任意)
model.id string (model が指定された場合は必須)
GET /v1/models が返す明示的なモデルID (例:claude-4-sonnet-thinking) 。model.params 配列 (任意)
id と value を持ちます。選択したモデルでサポートされているパラメータのみを使用してください。使用可能な id/params の組み合わせを確認するには GET /v1/models を呼び出してください。name string (省略可)
env オブジェクト (任意)
cloud 環境を使用するか、自身がホストする pool または machine にルーティングします。Cursor がホストする名前付き環境を選択する場合、明示的な repos とは相互排他です。env.type string (env が指定されている場合は必須)
cloud は Cursor ホストの VM を使用し、pool と machine は自身のワーカーにルーティングされます。env.name string (省略可)
env.type: "pool" の場合はプール名となり、省略した場合は default がデフォルトになります。不明なプール名を指定すると、いつまでもキューに残るのではなく 400 が返されます。repos 配列 (任意)
repos と env の両方を省略すると、リポジトリなしのエージェントを起動します。env.type が pool の場合は、any-repo プールをターゲットにするために repos を省略することもできます。最大20リポジトリ。repos[0].url string (必須)
https://github.com/your-org/your-repo) 。prUrl が指定されている場合でも、すべてのリポジトリエントリで必須です。repos[0].startingRef string (省略可)
prUrl が指定されている場合は無視されます。repos[0].prUrl string (省略可)
startingRef は無視されます。repos の同じエントリに url を設定しておく必要があります。workOnCurrentBranch boolean (省略可、デフォルト: false)
false (デフォルト) の場合、Cursor は repos[0].startingRef (または prUrl が設定されている場合は PR のベース ref) を基に自動生成された新しいブランチ (cursor/...) にコミットをプッシュします。true の場合、Cursor はその開始 ref に直接プッシュします — PR でない作成では startingRef に渡したブランチ、prUrl を使った作成では PR のヘッドブランチが対象になります。エージェントがプッシュしたブランチはエージェントの git.branches[] に表示されます。autoCreatePR boolean (省略可)
skipReviewerRequest boolean (省略可)
autoCreatePRがtrueの場合にのみ適用されます。envVars オブジェクト (任意)
CURSOR_で始めることはできません) 、値は最大4096バイトです。クライアント提供のagentIdとは併用できません。envVars は段階的に展開されています。まだお使いのアカウントで有効になっていない場合、このフィールドは作成時にリクエストを失敗させるのではなく静かに無視されます。本番でそれらに依存する前に、初回実行時にエージェントのシェルを確認して値が存在することを確認してください。mcpServers 配列 (任意)
headers または OAuth の auth をサポートし、stdio サーバーはクラウド VM 内で実行され env を受け取ることができます。サーバー名は一意である必要があります。mcpServers[0].name string (必須)
mcpServers[0].type string (省略可)
http、sse、または stdio。url を持つリモートサーバーではデフォルトが http、command を持つサーバーではデフォルトが stdio です。mcpServers[0].url string (リモートMCPの場合は必須)
mcpServers[0].command string (stdio MCP の場合は必須)
argsとenvを使用してください。customSubagents 配列 (任意)
name、description、prompt が必須で、オプションで model (モデルID文字列、ModelSelection オブジェクト、または "inherit") を指定できます。名前は一意であり、組み込みの名前 (explore、debug、shell、computerUse など) と衝突してはいけません。mode string (省略可、デフォルト: agent)
agentId string (省略可)
bc-<uuid> 形式のクライアント指定エージェント識別子。冪等な作成フローに役立ちます — 同じ agentId を再度 POST すると重複作成の代わりに 409 agent_id_conflict が返されます。envVars と併用できません。セッションシークレットが必要な場合は agentId を省略して、サーバーに生成させてください。curl --request POST \ --url https://api.cursor.com/v1/agents \ -u YOUR_API_KEY: \ --header 'Content-Type: application/json' \ --data '{ "prompt": { "text": "Add a README with setup instructions" }, "model": { "id": "composer-2", "params": [ { "id": "fast", "value": "true" } ] }, "repos": [ { "url": "https://github.com/your-org/your-repo", "startingRef": "main" } ], "mcpServers": [ { "name": "linear", "type": "http", "url": "https://mcp.linear.app/sse", "headers": { "Authorization": "Bearer YOUR_LINEAR_API_KEY" } }, { "name": "github", "type": "stdio", "command": "npx", "args": ["-y", "@modelcontextprotocol/server-github"], "env": { "GITHUB_TOKEN": "YOUR_GITHUB_TOKEN" } } ], "autoCreatePR": true }'ワーカープール (リポジトリなしを含む) :
curl --request POST \ --url https://api.cursor.com/v1/agents \ -u YOUR_API_KEY: \ --header 'Content-Type: application/json' \ --data '{ "prompt": { "text": "Clone the payments service and add a health check" }, "env": { "type": "pool", "name": "sandbox" } }'レスポンス:
{ "agent": { "id": "bc-00000000-0000-0000-0000-000000000001", "name": "Add README with setup instructions", "status": "ACTIVE", "env": { "type": "cloud" }, "repos": [ { "url": "https://github.com/your-org/your-repo", "startingRef": "main" } ], "workOnCurrentBranch": false, "autoCreatePR": true, "url": "https://cursor.com/agents/bc-00000000-0000-0000-0000-000000000001", "createdAt": "2026-04-13T18:30:00.000Z", "updatedAt": "2026-04-13T18:30:00.000Z", "latestRunId": "run-00000000-0000-0000-0000-000000000001" }, "run": { "id": "run-00000000-0000-0000-0000-000000000001", "agentId": "bc-00000000-0000-0000-0000-000000000001", "status": "CREATING", "createdAt": "2026-04-13T18:30:00.000Z", "updatedAt": "2026-04-13T18:30:00.000Z" }}エージェントを一覧表示
/v1/agents認証済みユーザーのエージェントを新しい順に一覧表示します。
クエリパラメータ
limit number (省略可)
cursor string (省略可)
nextCursor で返されたページネーションカーソル。prUrl string (省略可)
includeArchived boolean (省略可、デフォルト: true)
一覧項目には永続的な識別情報のフィールドのみが含まれます。完全なレコード (repos、workOnCurrentBranch、autoCreatePR など) を読み込むには、GET /v1/agents/{id} を呼び出してください。
nextCursor は、これ以上ページがない場合、レスポンスには含まれません。null として返されることはありません。存在しない場合は「これ以上結果はない」として扱ってください。
curl --request GET \ --url 'https://api.cursor.com/v1/agents?limit=20' \ -u YOUR_API_KEY:レスポンス:
{ "items": [ { "id": "bc-00000000-0000-0000-0000-000000000001", "name": "Add README with setup instructions", "status": "ACTIVE", "env": { "type": "cloud" }, "url": "https://cursor.com/agents/bc-00000000-0000-0000-0000-000000000001", "createdAt": "2026-04-13T18:30:00.000Z", "updatedAt": "2026-04-13T18:45:00.000Z", "latestRunId": "run-00000000-0000-0000-0000-000000000001" } ], "nextCursor": "bc-00000000-0000-0000-0000-000000000002"}エージェントを取得
/v1/agents/{id}エージェントの永続的なメタデータを取得します。実行ステータスは実行ごとに管理されます。latestRunId を取得し、実行の取得 を呼び出して実行状態を確認します。
パスパラメータ
id string
bc-00000000-0000-0000-0000-000000000001) 。レスポンスフィールド
status string
ACTIVE— ターンが実行中、バックグラウンド作業を待機中、または開始直前です。エージェントのマシンを稼働し続けてください。IDLE— 最後のターンが完了し、フォローアップを受け入れられます。エージェントのマシンは休止またはスナップショットにできます。復旧可能なエラーで終了した実行もIDLEと報告されます。実行レベルのエラー詳細は実行の取得に保持されます。ARCHIVED— エージェントはアーカイブ済みまたは期限切れです。終端状態です。クレームは終了し、ワークスペース状態は削除できます。
curl --request GET \ --url https://api.cursor.com/v1/agents/bc-00000000-0000-0000-0000-000000000001 \ -u YOUR_API_KEY:レスポンス:
{ "id": "bc-00000000-0000-0000-0000-000000000001", "name": "Add README with setup instructions", "status": "ACTIVE", "env": { "type": "cloud" }, "repos": [ { "url": "https://github.com/your-org/your-repo", "startingRef": "main" } ], "workOnCurrentBranch": false, "autoCreatePR": true, "url": "https://cursor.com/agents/bc-00000000-0000-0000-0000-000000000001", "createdAt": "2026-04-13T18:30:00.000Z", "updatedAt": "2026-04-13T18:30:00.000Z", "latestRunId": "run-00000000-0000-0000-0000-000000000001"}実行を作成
/v1/agents/{id}/runs既存のアクティブなエージェントに追加入力のプロンプトを送信します。この新しい実行では、エージェントの現在の会話状態とワークスペース状態が引き継がれます。
エージェントごとにアクティブにできる実行は 1 つだけです。別の実行が CREATING または RUNNING の状態でこれを呼び出すと、409 agent_busy が返されます。既存の実行が終了するまで待つか、キャンセルしてください。
パスパラメータ
id string
bc-00000000-0000-0000-0000-000000000001) 。リクエストボディ
prompt object (required)
prompt.text string (required)
prompt.images array (optional)
data (mimeType が必須の base64 エンコード済みバイト列) または url のいずれかを含める必要があります。最大 5 枚、各 15 MB。サポートされる MIME タイプ: image/png、image/jpeg、image/gif、image/webp。mcpServers array (optional)
mode string (optional)
agent または plan。省略すると、以前の実行から現在の会話モードが維持されます。curl --request POST \ --url https://api.cursor.com/v1/agents/bc-00000000-0000-0000-0000-000000000001/runs \ -u YOUR_API_KEY: \ --header 'Content-Type: application/json' \ --data '{ "prompt": { "text": "Also add troubleshooting steps" }, "mcpServers": [ { "name": "docs", "type": "http", "url": "https://example.com/mcp" } ] }'レスポンス:
{ "run": { "id": "run-00000000-0000-0000-0000-000000000002", "agentId": "bc-00000000-0000-0000-0000-000000000001", "status": "CREATING", "createdAt": "2026-04-13T18:50:00.000Z", "updatedAt": "2026-04-13T18:50:00.000Z" }}実行一覧
/v1/agents/{id}/runsエージェントの実行を新しい順に一覧表示します。
パスパラメータ
id string
クエリパラメータ
limit number (optional)
cursor string (optional)
nextCursor で返されたページネーションカーソル。curl --request GET \ --url 'https://api.cursor.com/v1/agents/bc-00000000-0000-0000-0000-000000000001/runs?limit=20' \ -u YOUR_API_KEY:レスポンス:
{ "items": [ { "id": "run-00000000-0000-0000-0000-000000000002", "agentId": "bc-00000000-0000-0000-0000-000000000001", "status": "RUNNING", "createdAt": "2026-04-13T18:50:00.000Z", "updatedAt": "2026-04-13T18:51:00.000Z", "git": { "branches": [ { "repoUrl": "github.com/your-org/your-repo", "branch": "cursor/add-readme-a1b2" } ] } } ]}実行の取得
/v1/agents/{id}/runs/{runId}特定の実行のステータス、タイムスタンプ、さらに (ターミナル実行の場合は) 最終結果、実行時間、プッシュされたブランチを取得します。
パスパラメータ
id string
runId string
run-00000000-0000-0000-0000-000000000001) 。レスポンスフィールド
基本の実行フィールド (id、agentId、status、createdAt、updatedAt) は常に含まれます。以下のフィールドは、データが利用可能になり次第設定されます。
durationMs integer (terminal runs)
FINISHED、ERROR、CANCELLED、または EXPIRED になった時点で算出される、実行時間 (ミリ秒) です。result string (terminal runs)
git object (when a branch has been pushed)
git.branches[] には、エージェントがプッシュした各ブランチごとに { repoUrl, branch?, prUrl? } のエントリが含まれます (スタックされたエージェントでは複数になります) 。git スナップショットが返されます。特定の実行に作業を対応付けるには、エージェントの latestRunId または SSE ストリームを使用します。repoUrl はスキームなしで返されます (例: github.com/your-org/your-repo) — https:// プレフィックスが保持されるリクエストの repos[].url とは異なります。curl --request GET \ --url https://api.cursor.com/v1/agents/bc-00000000-0000-0000-0000-000000000001/runs/run-00000000-0000-0000-0000-000000000001 \ -u YOUR_API_KEY:レスポンス:
{ "id": "run-00000000-0000-0000-0000-000000000001", "agentId": "bc-00000000-0000-0000-0000-000000000001", "status": "FINISHED", "createdAt": "2026-04-13T18:30:00.000Z", "updatedAt": "2026-04-13T18:45:00.000Z", "durationMs": 12357, "result": "Added README.md with installation instructions and usage examples.", "git": { "branches": [ { "repoUrl": "github.com/your-org/your-repo", "branch": "cursor/add-readme-a1b2", "prUrl": "https://github.com/your-org/your-repo/pull/123" } ] }}実行をストリーミング
/v1/agents/{id}/runs/{runId}/stream1 つの実行に対する Server-Sent Events (SSE) をストリーミングします。ストリームの対象はリクエストされた実行に限定され、過去の実行は再送されません。
イベントの種類
status— 実行ステータスの更新。Payload:{ runId, status }.assistant— アシスタントのテキスト差分。Payload:{ text }.thinking— 思考テキストの差分。Payload:{ text }.tool_call— ツール呼び出しステータスの更新。Payload:{ callId, name, status, args?, result?, truncated? }.interaction_update— 上記の簡略化されたイベントとあわせて送出される、省略可能なよりリッチなイベントです。Payload は TypeScript SDK が受け取るInteractionUpdate形式に一致し、text-delta、tool-call-started/tool-call-completed、step-started/step-completed、turn-endedなどのサブタイプがあります。プレーンテキストとツール呼び出しだけが必要な場合は、簡略化されたイベントを処理し、interaction_updateは無視してください。完全な SDK 形式のストリームが必要な場合は、interaction_updateを処理し、簡略化されたイベントは無視してください。heartbeat— キープアライブイベント。Payload:{}.result— 実行の終端状態。Payload:{ runId, status, text?, durationMs?, git? }.textは最終的なアシスタントの返信、durationMsはミリ秒単位の実行時間、gitはRun.gitを反映します (この実行だけでなく、エージェントが現在 push 済みのブランチ) 。error— ストリームエラー。Payload:{ code, message }.done— ストリーム完了。Payload:{}.
ツール呼び出しのペイロード
tool_call イベントでは、ツール固有の入力と出力を安定した共通形式で包んで使用します。
type JsonValue = | string | number | boolean | null | JsonValue[] | { [key: string]: JsonValue };interface ToolCallEventData { callId: string; name: string; status: "running" | "completed"; args?: JsonValue; result?: JsonValue; truncated?: { args?: true; result?: true; };}callId は、更新をまたいで 1 つのツール呼び出しを識別します。name は read_file、run_terminal_cmd、mcp などの公開ツール名です。args と result はツール固有の JSON 値です。args または result が大きすぎてストリームに含められない場合、Cursor はそのフィールドを省略し、対応する truncated フラグを設定します。
ストリームの再開
ほとんどのイベントには id 行が含まれます。これは解析すべきでない不透明な文字列です (現在は 1713033006000-0 のような形式に見えますが、不透明なものとして扱ってください) 。先頭の status イベントには id がなく、再接続のたびに先頭で再送される sticky なフレーミングイベントです。
切断後に再開するには、最後に受信したイベント ID を Last-Event-ID に設定して再接続します。イベント ID はリクエストされた実行に属している必要があり、そうでない場合、リクエストは 400 invalid_last_event_id を返します。再開に成功した場合は、再開された範囲が始まる前に status イベントがもう一度送信されます。
保持期間
ストリームレスポンスには X-Cursor-Stream-Retention-Seconds ヘッダーが含まれます。保持期間を過ぎると、このエンドポイントは 410 stream_expired を返すことがあります。その場合は、ストリームを再試行するのではなく、実行の取得 で終端状態を確認してください。
curl --request GET \ --url https://api.cursor.com/v1/agents/bc-00000000-0000-0000-0000-000000000001/runs/run-00000000-0000-0000-0000-000000000001/stream \ -u YOUR_API_KEY: \ --header 'Accept: text/event-stream'ストリームの例:
event: statusdata: {"runId":"run-00000000-0000-0000-0000-000000000001","status":"RUNNING"}id: 1713033000000-0event: assistantdata: {"text":"I'll update the README now."}id: 1713033005000-0event: tool_calldata: {"callId":"call-1","name":"read_file","status":"running","args":{"path":"README.md"}}id: 1713033006000-0event: tool_calldata: {"callId":"call-1","name":"read_file","status":"completed","args":{"path":"README.md"},"result":{"success":{"content":"# Project","totalLines":1,"fileSize":9,"path":"README.md"}}}id: 1713033010000-0event: resultdata: {"runId":"run-00000000-0000-0000-0000-000000000001","status":"FINISHED","text":"Added README.md with installation instructions.","durationMs":12357,"git":{"branches":[{"repoUrl":"github.com/your-org/your-repo","branch":"cursor/add-readme-a1b2"}]}}id: 1713033010000-0event: donedata: {}実行をキャンセル
/v1/agents/{id}/runs/{runId}/cancelエージェントのアクティブな実行をキャンセルします。キャンセルは終端状態となるため、実行は CANCELLED に遷移し、再開できません。会話を続けるには、同じエージェントで新しい実行を作成してください。
すでに終端状態にある実行、または一度もアクティブになっていない実行をキャンセルすると、409 run_not_cancellable が返されます。
パスパラメータ
id string
runId string
curl --request POST \ --url https://api.cursor.com/v1/agents/bc-00000000-0000-0000-0000-000000000001/runs/run-00000000-0000-0000-0000-000000000001/cancel \ -u YOUR_API_KEY:レスポンス:
{ "id": "run-00000000-0000-0000-0000-000000000001"}エージェントのトークン利用状況を取得
/v1/agents/{id}/usageエージェントのトークン利用状況を run ごとの内訳付きで取得します。レスポンスには、エージェント上のすべての run における利用状況の合計と、各 run ごとの利用状況が含まれます。トークン利用状況は、チームの usage events エンドポイントで報告される tokenUsage と一致します。
Path Parameters
id string
bc-00000000-0000-0000-0000-000000000001) 。Query Parameters
runId string (optional)
run-00000000-0000-0000-0000-000000000001) 。省略すると、エージェント上のすべての run の利用状況を返します。不明な runId を指定すると 404 run_not_found を返します。Response Fields
totalUsage object
usage object と同じフィールドを含みます。runs array
runId が設定されている場合は 1 つのみ) 、各 object には次が含まれます。idstring - Run 識別子 (例:run-00000000-0000-0000-0000-000000000001) 。usageUuidstring (optional) - その run の内部利用識別子です。まだ利用状況が記録されていない run では省略されます。usageobject - この run のトークン利用状況:inputTokensnumber - 消費された入力トークン数。outputTokensnumber - 生成された出力トークン数。cacheWriteTokensnumber - キャッシュに書き込まれたトークン数。cacheReadTokensnumber - キャッシュから読み取られたトークン数。totalTokensnumber - 上記 4 つのトークン数の合計。
記録されたトークン利用状況がない run では、すべてのフィールドが 0 になります。まだ利用状況が発生していない run も runs に引き続き表示されるため、経時的に追跡できます。
# エージェントのすべての実行curl --request GET \ --url https://api.cursor.com/v1/agents/bc-00000000-0000-0000-0000-000000000001/usage \ -u YOUR_API_KEY:# 単一の実行curl --request GET \ --url 'https://api.cursor.com/v1/agents/bc-00000000-0000-0000-0000-000000000001/usage?runId=run-00000000-0000-0000-0000-000000000001' \ -u YOUR_API_KEY:レスポンス:
{ "totalUsage": { "inputTokens": 12480, "outputTokens": 3110, "cacheWriteTokens": 18200, "cacheReadTokens": 42600, "totalTokens": 76390 }, "runs": [ { "id": "run-00000000-0000-0000-0000-000000000002", "usageUuid": "00000000-0000-0000-0000-000000000002", "usage": { "inputTokens": 6320, "outputTokens": 1450, "cacheWriteTokens": 7100, "cacheReadTokens": 21300, "totalTokens": 36170 } }, { "id": "run-00000000-0000-0000-0000-000000000001", "usageUuid": "00000000-0000-0000-0000-000000000001", "usage": { "inputTokens": 6160, "outputTokens": 1660, "cacheWriteTokens": 11100, "cacheReadTokens": 21300, "totalTokens": 40220 } } ]}アーティファクト
ワークスペースは実行をまたいで保持されるため、アーティファクトはエージェント単位で管理されます。
アーティファクトを一覧表示
/v1/agents/{id}/artifactsエージェントが生成したアーティファクトを一覧表示します。各アーティファクトの path は、ワークスペースの artifacts/ ディレクトリからの相対パスです。
ここで返される path の値を、そのまま アーティファクトをダウンロード に渡してください。v1 のパスは相対パスです。v0 の絶対パス (/opt/cursor/artifacts/...) は受け付けられません。
パスパラメータ
id string
curl --request GET \ --url https://api.cursor.com/v1/agents/bc-00000000-0000-0000-0000-000000000001/artifacts \ -u YOUR_API_KEY:レスポンス:
{ "items": [ { "path": "artifacts/screenshot.png", "sizeBytes": 12345, "updatedAt": "2026-04-13T18:45:00.000Z" } ]}アーティファクトをダウンロード
/v1/agents/{id}/artifacts/download特定のアーティファクトに対する、一時的に15分間有効な事前署名付き S3 URL を取得します。
パスパラメータ
id string
クエリパラメータ
path string
curl --request GET \ --url 'https://api.cursor.com/v1/agents/bc-00000000-0000-0000-0000-000000000001/artifacts/download?path=artifacts/screenshot.png' \ -u YOUR_API_KEY:レスポンス:
{ "url": "https://cloud-agent-artifacts.s3.us-east-1.amazonaws.com/...", "expiresAt": "2026-04-13T19:00:00.000Z"}エージェントのライフサイクル
エージェントをアーカイブ
/v1/agents/{id}/archiveエージェントをアーカイブします。アーカイブされたエージェントは引き続き参照できますが、アーカイブを解除するまで新しい実行は受け付けられません。元に戻せる「ソフト削除」にはこちらを使用します。
アーカイブ は冪等です。すでにアーカイブ済みのエージェントを再度アーカイブしても、変更なしで 200 が返されます。呼び出す前に現在の状態を確認する必要はありません。
パスパラメータ
id string
curl --request POST \ --url https://api.cursor.com/v1/agents/bc-00000000-0000-0000-0000-000000000001/archive \ -u YOUR_API_KEY:レスポンス:
{ "id": "bc-00000000-0000-0000-0000-000000000001"}エージェントのアーカイブを解除
/v1/agents/{id}/unarchiveエージェントのアーカイブを解除し、再び新しい実行を受け付けられるようにします。
アーカイブ解除 は冪等です。すでにアクティブなエージェントに対して呼び出しても、変更なしで 200 が返されます。
パスパラメータ
id string
curl --request POST \ --url https://api.cursor.com/v1/agents/bc-00000000-0000-0000-0000-000000000001/unarchive \ -u YOUR_API_KEY:レスポンス:
{ "id": "bc-00000000-0000-0000-0000-000000000001"}エージェントを完全に削除
/v1/agents/{id}エージェントを完全に削除します。この操作は元に戻せません。元に戻せる削除が必要な場合は、アーカイブ を使用してください。
パスパラメータ
id string
curl --request DELETE \ --url https://api.cursor.com/v1/agents/bc-00000000-0000-0000-0000-000000000001 \ -u YOUR_API_KEY:レスポンス:
{ "id": "bc-00000000-0000-0000-0000-000000000001"}ワーカー トークン
ユーザー スコープのワーカー トークンを作成
/v1/sub-tokensアクティブなチームメンバーとして実行するワーカー用に、1 時間有効なユーザー スコープのトークンを作成します。
エージェント スコープのチーム サービスアカウントの API キーが必要です。ユーザー スコープのトークンでは、別のユーザー スコープのトークンを発行できません。
返されるトークンは 1 時間で期限切れになり、自動更新はできません。実行中のワーカーのトークンを更新する必要がある場合は、サービスアカウントの API キーを使って新しいトークンを発行してください。
リクエストボディ
対象ユーザーを識別するには、次のいずれか 1 つを指定してください。
forUserEmail string (任意)
forUserId integer (任意)
メールアドレスで指定:
curl --request POST \ --url https://api.cursor.com/v1/sub-tokens \ --header "Authorization: Bearer $CURSOR_SERVICE_ACCOUNT_API_KEY" \ --header "Content-Type: application/json" \ --data '{ "forUserEmail": "alice@company.com" }'ユーザー ID で指定:
curl --request POST \ --url https://api.cursor.com/v1/sub-tokens \ --header "Authorization: Bearer $CURSOR_SERVICE_ACCOUNT_API_KEY" \ --header "Content-Type: application/json" \ --data '{ "forUserId": 42 }'レスポンス:
{ "accessToken": "eyJ...", "expiresAt": "2026-04-24T19:00:00.000Z", "userId": 42, "teamId": 456}ワーカーとプール
プール向けに、ワーカーの使用率を監視し、オートスケーリングを構築します。永続プールは最後のワーカーが切断された後も登録されたままとなるため、ゼロまでスケールダウンし、保留中のリクエストが発生した際にキャパシティを戻すことができます。
エンドポイントパスには古い private-workers という名前が残っていますが、同じワーカーを指します。
���ールのサービスアカウントの API キーを使用し、Basic auth または Bearer トークン で認証します。その他の API キー種別は受け付けられません。
ワーカーを一覧表示
/v0/private-workers認証済みサービスアカウントのチームに属するプールワーカーを、新しい順に取得します。
クエリパラメータ
status string (任意、デフォルト: all)
all、in_use、idle のいずれかです。scope string (任意、デフォルト: all)
all、team_pool、personal のいずれかです。limit integer (任意、デフォルト: 50)
pageToken string (任意)
nextPageToken を渡します。レスポンスフィールド
workers array
workerIdstring — 一意のワーカー識別子。自動生成されたIDはUUIDです。CURSOR_AGENT_WORKER_IDで起動したワーカーは、そのカスタムIDを報告します。isInUseboolean — ワーカーに現在エージェントが割り当てられているかどうか。repoOwner,repoNamestring — ワーカーがGitリモートを登録している場合のメインリポジトリのメタデータ。任意のリポジトリに対応するワーカーでは空文字列です。repoUrlstring (任意) — メインリポジトリのURL。任意のリポジトリに対応するワーカーでは省略されます。workspaceRootPathstring — ワーカー上のメインワークスペースのパス。connectedAtMsinteger — Unix 時間 (ミリ秒) の接続時刻。userIdinteger — 所有ユーザーのID。サービスアカウントキーで認証されたワーカーでは0。teamIdinteger (任意) — チームプールワーカーのチームID。serviceAccountIdstring (任意) — ワーカーの認証に使用したサービスアカウント。activeBcIdstring (任意) — 使用中の場合にワーカー上で現在実行中のエージェントのID。namestring (任意) — ワーカーの表示名 (--name、デフォルトはマシンのホスト名)。
totalCount integer
nextPageToken string (任意)
pageToken 用のページネーションカーソル。次のページがない場合は省略されます。curl --request GET \ --url "https://api.cursor.com/v0/private-workers?status=idle&scope=team_pool&limit=50" \ -u "$CURSOR_API_KEY:"レスポンス:
{ "workers": [ { "workerId": "a8574fe8-248e-424a-a078-7584a2b93724", "repoOwner": "acme", "repoName": "payments-service", "repoUrl": "https://github.com/acme/payments-service", "workspaceRootPath": "/home/agent/payments-service", "connectedAtMs": 1737306880000, "userId": 0, "teamId": 456, "serviceAccountId": "sa_abc123", "isInUse": false, "name": "gpu-worker-1" } ], "totalCount": 1}ワーカーの概要を取得
/v0/private-workers/summary認証済みユーザーとそのチームについて、接続済みおよび使用中のワーカー数を返します。使用率が高いときのスケーリング判断に使用します。
curl --request GET \ --url "https://api.cursor.com/v0/private-workers/summary" \ -u "$CURSOR_API_KEY:"スケーリング確認の例:
const summary = await response.json();const team = summary.teamSummary;if (team && team.totalConnected > 0) { const utilization = team.inUse / team.totalConnected; if (utilization >= 0.9) { // スケールアップ: 追加の��ーカーをプロビジョニング }}ID でワーカーを取得
/v0/private-workers/{id}ID でプールワーカーを 1 つ取得します。
パスパラメータ
id string
pw_123) 。curl --request GET \ --url "https://api.cursor.com/v0/private-workers/pw_123" \ -u "$CURSOR_API_KEY:"プールを一覧表示
/v0/private-workers/pools認証済みサービスアカウントのチームに属する永続プールを一覧表示します。最後のワーカーが切断された後もプールは登録されたままのため、ゼロまでスケールダウンするワーカー群を監視し、キャパシティをプロビジョニングするタイミングを判断できます。
クエリパラメータ
scope string (任意)
all、team_pool、personal のいずれかです。includeStale boolean (任意、デフォルト: false)
true の場合、長期間の非アクティブ状態により古いものとしてマークされたプールを含めます。レスポンスフィールド
pools array
scopestring — プールの所有スコープ (userまたはteam) 。ownerIdinteger — スコープに対応する所有ユーザーまたはチームの ID。poolNamestring — プール名 (例:defaultまたはgpu) 。connectedWorkerCountinteger — 現在このプールに接続されているワーカー数。inUseWorkerCountinteger — 現在エージェントが割り当てられている接続済みワーカー数。アイドルキャパシティはconnectedWorkerCount - inUseWorkerCountです。firstSeenAtMs,lastSeenAtMsinteger — Unix 時間 (ミリ秒) での最初と最後の検出時刻。isStaleboolean — 長期間の非アクティブ状態によりプールが古いものとしてマークされているかどうか。repoOwner,repoName,repoUrlstring (任意) — プールがリポジトリに紐付いている場合のリポジトリメタデータ。任意のリポジトリ対応プールでは省略されます。workerReadyTimeoutSecondsinteger — 要求の確保が期限切れになる前に、そのプールのオフラインワーカーが再接続するまで、確保済みのリクエストが待機する秒数。0は、オフラインワーカーへのフォローアップが直ちにプールから再取得されることを意味します。
curl --request GET \ --url "https://api.cursor.com/v0/private-workers/pools?scope=team_pool&includeStale=false" \ -u "$CURSOR_API_KEY:"レスポンス:
{ "pools": [ { "scope": "team", "ownerId": 456, "poolName": "gpu", "repoOwner": "acme", "repoName": "payments-service", "repoUrl": "https://github.com/acme/payments-service", "connectedWorkerCount": 2, "inUseWorkerCount": 1, "firstSeenAtMs": 1737000000000, "lastSeenAtMs": 1737306880000, "isStale": false, "workerReadyTimeoutSeconds": 900 }, { "scope": "team", "ownerId": 456, "poolName": "sandbox", "connectedWorkerCount": 0, "inUseWorkerCount": 0, "firstSeenAtMs": 1737100000000, "lastSeenAtMs": 1737200000000, "isStale": false, "workerReadyTimeoutSeconds": 0 } ]}sandbox エントリは任意のリポジトリ対応です。リポジトリフィールドは省略され、接続済みワーカーがゼロでもプールは選択可能なままです。
プールを登録
/v0/private-workers/poolsワーカーを起動せずに、永続プールを登録します。たとえば、コントローラーがオンデマンドでキャパシティをプロビジョニングする場合に、ワーカーが接続する前からプールを選択できるようにします。--pool を指定してワーカーを起動すると、プールは自動的に登録されます。このエンドポイントは、プールをあらかじめ作成する場合にのみ必要です。
リクエストボディ
scope string (必須)
user または team のいずれか。poolName string (必須)
gpu) 。repoOwner, repoName string (任意)
repoUrl string (任意)
repoOwner と repoName が必要です。workerReadyTimeoutSeconds integer (任意、デフォルト: 0)
0 の場合、オフラインワーカーへのフォローアップは直ちにプールから再取得されます。0 以上の整数である必要があります。レスポンスフィールド
registered boolean
curl --request POST \ --url "https://api.cursor.com/v0/private-workers/pools" \ -u "$CURSOR_API_KEY:" \ --header 'Content-Type: application/json' \ --data '{ "scope": "team", "poolName": "payments-pool", "repoOwner": "acme", "repoName": "payments-service", "repoUrl": "https://github.com/acme/payments-service" }'レスポンス:
{ "registered": true}プールの登録解除
/v0/private-workers/pools永続プールを登録解除 (論理削除) すると、プールピッカーおよびプールを一覧表示に表示されなくなります。現在プールに接続しているワーカーには影響しません。チームプールにはチーム管理者、ユーザープールにはその所有者が必要です。
クエリパラメータ
scope string (必須)
user または team を指定します。pool_name string (必須)
repo_owner string (任意)
repo_name string (任意)
repo_owner と repo_name は両方とも指定するか、任意のリポジトリ対応プールでは両方とも省略します。curl --request DELETE \ --url "https://api.cursor.com/v0/private-workers/pools?scope=team&pool_name=sandbox" \ -u "$CURSOR_API_KEY:"レスポンス:
{ "deregistered": true}保留中のプールリクエストを一覧表示
/v0/private-workers/pending-requestsまだワーカーに割り当てられていないプールリクエストを一覧表示します。ユーザーが利用可能なプールワーカーを待っているときにキャパシティを拡張する場合や、エフェメラルワーカーを開始する前に 保留中のリクエストをクレーム と組み合わせる場合に、このエンドポイントを使用します。
workerReadyTimeoutSeconds が設定されているプールでは、クレーム済みだがオフラインのエントリも一覧に表示されます。これは、再接続ウィンドウが開いている間にクレーム済みワーカーがオフラインになっているリクエストです。これらのエントリには claimedWorkerId と wakeTimeoutMs が含まれるため、コントローラーが マシンを復帰 させることができます。
このエンドポイントにはサービスアカウントの API キーが必要です。キーに紐づくチームのリクエストを返し、マイマシンのリクエストは除外します。キーが特定のリポジトリにスコープされている場合は、repository を指定してください。リポジトリはキーの許可スコープに含まれている必要があります。
レスポンスには streamCursor が含まれます。このスナップショット以降のキューの変更をリアルタイムで追跡するには、これを 保留中のプールリクエストを監視 に渡します。
クエリパラメータ
limit 数値 (任意)
pageToken string (任意)
repository および pool フィルターに紐づきます。repository string (任意)
pool string (任意)
pool ラベルと完全一致し、大文字と小文字は区別されます。チーム内のすべてのプールのリクエストを一覧表示する場合は省略します。レスポンスフィールド
requests array
idstring — 保留中のリクエスト / エージェント ID (クレーム または クレームを解放 にidとして渡します) 。userIdinteger — リクエストを作成した Cursor の数値ユーザー ID。userEmailstring (任意) — 利用可能な場合は、リクエスト元ユーザーのメールアドレス。追加の検索なしで、ユーザーに紐づくキャパシティを選択できます。serviceAccountIdstring (任意) — 指定されている場合、リクエストに関連付けられたサービスアカウント。repoOwner,repoName,repoUrlstring (任意) — リクエストの対象がリポジトリである場合のリポジトリメタデータ。任意のリポジトリを対象とするプールリクエストでは省略されます。labelsarray —{ key, value }のペアで表されるリクエストラベル (設定されている場合はrepo=とpool=を含みます) 。createdAtMsinteger — リクエストの作成時刻 (Unix ミリ秒) 。claimedWorkerIdstring (任意) — クレーム済みだがオフラインのエントリに含まれます。このリクエストは、現在オフラインのこのワーカーによってクレームされています。エージェントをそのマシンで再開するには、この ID (CURSOR_AGENT_WORKER_ID) を指定してワーカーを開始します。wakeTimeoutMsinteger (任意) — クレーム済みでオフラインになっているエントリの再接続ウィンドウの残り時間 (ミリ秒) 。ウィンドウが終了するとクレームは期限切れになり、リクエストは未クレームのエントリとして再通知されます。
nextPageToken string (任意)
streamCursor string
streamCursor が含まれます。ページネーションの完了後、この値から監視を開始してください。発行した一覧表示から 5 分後に期限切れになります。curl --request GET \ --url "https://api.cursor.com/v0/private-workers/pending-requests?limit=50&repository=https%3A%2F%2Fgithub.com%2Facme%2Fpayments-service" \ -u "$CURSOR_API_KEY:"レスポンス:
{ "requests": [ { "id": "bc-00000000-0000-0000-0000-000000000002", "userId": 321, "userEmail": "owner@acme.example", "serviceAccountId": "sa_abc123", "repoOwner": "acme", "repoName": "payments-service", "repoUrl": "https://github.com/acme/payments-service", "labels": [ { "key": "repo", "value": "acme/payments-service" }, { "key": "pool", "value": "gpu" }, { "key": "env", "value": "production" } ], "createdAtMs": 1737306880000 } ], "nextPageToken": "eyJjcmVhdGVkQXRNcyI6MTczNzMwNjg4MDAwMH0=", "streamCursor": "djQuZXhhbXBsZS1vcGFxdWUtY3Vyc29y"}元のリポジトリ URL に userinfo が含まれている場合、repoUrl から埋め込み認証情報は除外されます。
保留中のプールリクエストを監視
/v0/private-workers/pending-requests/streamServer-Sent Events (SSE) を介して保留中リクエストのライフサイクルイベントをストリーミングし、コントローラーがポーリングせずにキューの変更に対応できるようにします。
このエンドポイントにはサービスアカウントの API キーが必要です。コントローラーは、まず一覧を取得してから監視します。保留中のプールリクエストを一覧表示を呼び出してキューの状態を構築し、レスポンスの streamCursor を保持してから、その位置から監視を開始します。一覧表示と監視には同じ repository および pool フィルターを使用してください。カーソルは、それを発行したフィルターに紐付けられます。
クエリパラメータ
cursor string (必須)
streamCursor、または処理した最後のイベントの SSE id: です。再接続時、ネイティブの EventSource はその ID を Last-Event-ID ヘッダーとして再送し、これはクエリパラメータより優先されます。repository string (任意)
pool string (任意)
pool ラベルに完全一致し、大文字と小文字は区別されます。カーソルを発行した一覧表示で使用したフィルターと一致する必要があります。省略すると、チーム内のすべてのプールを監視します。イベント
監視ではカーソル以降に保持されている遷移を再生した後、ライブイベントを追跡します。各イベントの SSE id: は、接続が切断された場合に再開するためのカーソルです。
createdイベント — リクエストがキューに追加されました。これには、取得済みだがオフラインで、再接続ウィンドウの期限切れにより取得が失効したリクエストも含まれます。ペイロード: 保留中のプールリクエストを一覧表示と同じリクエストオブジェクト。claimedイベント — ワーカーがリクエストを取得したか、オフラインだったワーカーが再接続して取得済みのリクエストを再開しました。ペイロード:{ id }。claimed_offlineイベント — リクエストを取得したワーカーがオフラインになった場合のフォローアップが到着しました。ペイロード:claimedWorkerIdとwakeTimeoutMsを含む、保留中のプールリクエストを一覧表示と同じリクエストオブジェクト。猶予期間が過ぎる前にマシンを復帰させてください。そうしない場合、取得の有効期限が切れ、新しいcreatedイベントでリクエストが再通知されます。expiredイベント — リクエストは取得されずにキューから削除されました。ペイロード:{ id }。heartbeatイベント — 状態変更のないカーソルチェックポイントです。静かなストリームでは約20秒ごとに送信されます。ペイロード:{}。ハートビートはアイドル状態の監視の再開位置を進めますが、カーソルの有効期間は延長しません。
カーソルの有効期間
監視チェーン内のすべてのカーソルは、それを発行した一覧表示から5分後に期限切れになります。ハートビートと再接続では延長されません。カーソルの期限が切れた場合、または保持されているイベントウィンドウがカーソルをカバーしなくなった場合、エンドポイントは {"code": "cursor_expired"} を含む HTTP 410 Gone を返します。再度一覧表示し、新しい streamCursor から監視してください。これは通常の動作であり、エラー処理ではありません。コントローラー群の一覧表示呼び出しが同期しないよう、410 を受けるまで待つのではなく、ジッターを含む5分タイマーで事前に再一覧表示してください。
配信保証
配信はベストエフォートであり、一覧表示が信頼できる情報源です。イベントは各遷移のコミット後にリトライ付きで公開されますが、まれな障害でイベントが欠落することがあり、欠落したイベントが再配信されることはありません。再一覧表示の間は、イベントを低レイテンシのヒントとして扱ってください。冪等に適用し (created および claimed_offline リクエストはアップサートし、claimed および expired リクエストは id で削除) 、次回の一覧表示で差異を修正します。一度も確認していないリクエストに対する claimed イベントは何も行いません。ローカルの状態にかかわらず、取得処理はサーバー側でアトミックに行われます。
カーソルを永続化しないでください。サービスアカウントは同時に最大4つのストリームを保持できます。コントローラーごとに1つのストリームを使用し、ローカルでファンアウトしてください。
curl --request GET --no-buffer \ --url "https://api.cursor.com/v0/private-workers/pending-requests/stream?cursor=$STREAM_CURSOR" \ --header 'Accept: text/event-stream' \ -u "$CURSOR_API_KEY:"ストリームの例:
: connected
event: heartbeat
id: djQuY3Vyc29yLWNoZWNrcG9pbnQ
data: {}
event: created
id: djQuY3Vyc29yLWFmdGVyLWNyZWF0ZWQ
data: {"id":"bc-00000000-0000-0000-0000-000000000002","userId":321,"userEmail":"owner@acme.example","repoOwner":"acme","repoName":"payments-service","repoUrl":"https://github.com/acme/payments-service","labels":[{"key":"pool","value":"gpu"}],"createdAtMs":1737306880000}
event: claimed
id: djQuY3Vyc29yLWFmdGVyLWNsYWltZWQ
data: {"id":"bc-00000000-0000-0000-0000-000000000002"}
コントローラーループ:
- 保留中のリクエストを一覧取得して完了し、結果でローカルビューを置き換えます。レスポンスの
streamCursorを保持します。 ?cursor=<streamCursor>を指定して監視を開始し、イベントをローカルビューに適用します。処理した最新イベントのid:を追跡します。- 切断した場合は、最新イベント ID を
?cursor=に指定して再接続するか、ネイティブのEventSourceを使用します。EventSourceはLast-Event-IDを自動的に再送します。 - HTTP
410 Goneの場合は、ステップ 1 に戻って再度一覧取得します。
保留中のリクエストを確保
/v0/private-workers/claimワーカーを起動する前に、特定のワーカー用に保留中のプールリクエストを確保します。コントローラーはこれを使用して、レプリカ間で作業をアトミックに割り当てます。保留中のリクエストを取得し、1 件を確保してから、確保した内容と一致する安定したワーカー ID でワーカーを起動します。
有効な確保が存在する間は、2 回目の確保は拒否されます。まず確保を解除してから、新しい workerId を確保します。
このエンドポイントにはサービスアカウントの API キーが必要です。
リクエストボディ
id string (必須)
id と同じ値です。workerId string (必須)
CURSOR_AGENT_WORKER_ID (または非表示の --worker-id フラグ) で同じ ID を指定してワーカーを起動します。curl --request POST \ --url "https://api.cursor.com/v0/private-workers/claim" \ -u "$CURSOR_API_KEY:" \ --header 'Content-Type: application/json' \ --data '{ "id": "bc-00000000-0000-0000-0000-000000000002", "workerId": "pw_123" }'レスポンス:
{ "id": "bc-00000000-0000-0000-0000-000000000002", "workerId": "pw_123"}確保に成功したら、予約した ID でワーカーを起動します。
export CURSOR_API_KEY="your-service-account-api-key"export CURSOR_AGENT_WORKER_ID="pw_123"agent worker --pool gpu --worker-dir /workspace start確保を解放
/v0/private-workers/claims/{id}/releaseエージェントをセルフホストワーカーに紐付ける長期確保を解除します。解除後、Cursor はそのエージェントに対してそのマシンを優先しなくなります。
確保はルーティングのヒントであり、実行中のプロセス状態ではありません。解除時にワーカーの接続状態は確認されません。待機中のフォローアップは、次のスケジューリング時にプールキューへ戻されます。接続中のワーカーは、現在のターンを中断されることなく完了します。解除後はすぐに、別のワーカーが同じエージェントを確保できます。
有効な確保が存在する間に 保留中のリクエストを確保 を再度実行すると拒否されます。先に解除してから、新しい workerId を確保してください。
--idle-release-timeout (環境変数 CURSOR_WORKER_IDLE_RELEASE_TIMEOUT) を指定すると、ワーカー CLI はアイドル状態になると終了します。このエンドポイントはルーティング確保のみを解除します。
このエンドポイントにはサービスアカウントの API キーが必要です。
パスパラメータ
id string
id と同じ値です。リクエストボディはありません。curl --request POST \ --url "https://api.cursor.com/v0/private-workers/claims/bc-00000000-0000-0000-0000-000000000002/release" \ -u "$CURSOR_API_KEY:"レスポンス:
{ "id": "bc-00000000-0000-0000-0000-000000000002", "workerId": "pw_123"}HTTP 404 は、有効な確保が存在しないことを示します。すでに解除済み、期限切れ、または他のワーカーに引き継がれています。404 を再試行しないでください。
メタデータエンドポイント
API Key Info
/v1/me認証に使用中の API キーに関する情報を取得します。
レスポンスフィールド
apiKeyName string
createdAt string
userId integer (user-scoped keys)
userEmail string (user-scoped keys)
userFirstName, userLastName string (user-scoped keys)
curl --request GET \ --url https://api.cursor.com/v1/me \ -u YOUR_API_KEY:レスポンス (user-scoped key) :
{ "apiKeyName": "Production API Key", "userId": 42, "createdAt": "2026-04-13T18:30:00.000Z", "userEmail": "developer@example.com", "userFirstName": "Alex", "userLastName": "Rivera"}レスポンス (service-account key) :
{ "apiKeyName": "Production Service Account", "createdAt": "2026-04-13T18:30:00.000Z"}モデル一覧
/v1/modelsエージェントを作成 の model.id フィールドに指定できる推奨モデルを返します。あわせて、各モデルで使用できるパラメータとバリアントも返します。モデルのパラメータは、TypeScript SDK ModelSelection と同じ model.params の形式です。
設定済みのデフォルトモデルを使用するには、リクエストボディから model を完全に省略してください。Cursor はまずユーザーのデフォルトモデル、次にチームのデフォルトモデル、最後にシステムのデフォルトモデルを解決します。
レスポンスフィールド
items の各項目は 1 つのモデルを表します。
id string
model.id として指定します。displayName string
description string (optional)
aliases array (optional)
composer-latest) 。parameters array (optional)
id、任意の displayName、および使用可能な { value, displayName? } エントリを含む values 配列があります。これらを使って、作成リクエストの model.params を設定します。variants array (optional)
id+params の組み合わせです。各エントリには params 配列 (空の場合あり) 、displayName、任意の description、および任意の isDefault フラグがあります。curl --request GET \ --url https://api.cursor.com/v1/models \ -u YOUR_API_KEY:レスポンス:
{ "items": [ { "id": "composer-2", "displayName": "Composer 2", "aliases": ["composer-latest", "composer"], "parameters": [ { "id": "fast", "displayName": "Fast", "values": [ { "value": "false" }, { "value": "true", "displayName": "Fast" } ] } ], "variants": [ { "params": [{ "id": "fast", "value": "true" }], "displayName": "Composer 2", "isDefault": true }, { "params": [{ "id": "fast", "value": "false" }], "displayName": "Composer 2" } ] }, { "id": "claude-4.6-sonnet-thinking", "displayName": "Claude 4.6 Sonnet (Thinking)", "variants": [ { "params": [], "displayName": "Claude 4.6 Sonnet (Thinking)", "isDefault": true } ] } ]}GitHub リポジトリ一覧
/v1/repositoriesCursor の GitHub App インストールを通じて、認証済みユーザーがアクセスできる GitHub リポジトリを一覧表示します。
このエンドポイントには非常に厳しいレート制限があります。
リクエストは 1 / user / minute、30 / user / hour 以内に制限してください。
多数のリポジトリにアクセスできるユーザーの場合、このリクエストのレスポンスには数十秒かかることがあります。
この情報が利用できない場合でも、適切に処理できるようにしてください。
curl --request GET \ --url https://api.cursor.com/v1/repositories \ -u YOUR_API_KEY:レスポンス:
{ "items": [ { "url": "https://github.com/your-org/your-repo" } ]}