リファレンスHTTP APIPush requests

Read one push request

GET
/v1/sessions/{id}/push-requests/{push_request_id}

One push request: what it pinned, its state (requested, approved, rejected, then pushing, pushed or failed once the platform pushes an approved one), and who resolved it (resolved_by).

The API pushes an approved request within seconds: exactly the pinned commit, to refs/heads/agent/<session-id> on the repository the request pinned, never by force. It refuses, as failed, when the catalog entry for the repository changed after the request, the target is the repository's default branch, or the remote branch holds a commit the pinned one does not build on. finished_at and push_receipt_id are set once it ends; that push receipt (GET /v1/receipts/{receipt_id}) names the remote, the ref, the commit it replaced, the approver, and on failure the refusal.

Scope: sessions:read (API key or cookie session).

Authorization

headerAuthorizationBearer <token>

For servers and scripts: an API key sent as an HTTP bearer token, Bearer <key>. It holds exactly the scopes it was issued with; a key issued before scopes existed holds none. It never needs the CSRF header, and it cannot manage agents, members, teams or API keys. Issue one in the web console under Settings → API keys; each operation names the scope it needs.

Scope: sessions:read

Path Parameters

id*string

The session's id.

Match^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
Formatuuid
push_request_id*string

The push request's id.

Match^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
Formatuuid

Response Body

The push request as it stands now.

application/json
  1. response
id*string
Match^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
Formatuuid
session_id*string
Match^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
Formatuuid
repository_id*string
Length1 <= length
checkpoint_revision*integer
Range0 <= value <= 2147483647
git_commit*string
Match^[0-9a-f]{40}$
target_branch*string
Length1 <= length
state*string
Value in"requested""approved""rejected""pushing""pushed""failed"
requested_by*
requested_at*string
Match^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
Formatdate-time
resolved_by*||null
resolved_at*|null
resolution_reason*string|null
request_receipt_id*string
Match^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
Formatuuid
resolution_receipt_id*|null
finished_at*|null
push_receipt_id*|null
origin*string
Default"direct"
Value in"direct""intent"
flow*string
Default"legacy"
Value in"legacy""actions"
pr_state*|
Defaultnull
pr_error*|
Defaultnull
pr_number*|
Defaultnull
pr_url*|
Defaultnull
approvability?

Whether an approval would pass the server's decision check now, and if not why (presentPushRequest). A hint for what to offer; the approval is judged again.

Example Request
curl -X GET 'https://example.com/v1/sessions/497f6eca-6276-4993-bfeb-53cbbbba6f08/push-requests/497f6eca-6276-4993-bfeb-53cbbbba6f08'
Example Response
{  "id": "5b9e2c17-4f3a-4d6e-8a1b-7c0d9e2f3a41",  "session_id": "0f8b6a52-3d1e-4c7a-9b2f-5e6d7c8a9b01",  "repository_id": "sample-app",  "checkpoint_revision": 3,  "git_commit": "4f2a9c1e7b3d5a8f0c6e2b9d1a4f7c3e5b8d0a2c",  "target_branch": "agent/0f8b6a52-3d1e-4c7a-9b2f-5e6d7c8a9b01",  "state": "requested",  "requested_by": {    "principal": {      "kind": "user",      "id": "3e7f1a90-5c2d-4b8e-8f61-2a9d0c4b7e35"    },    "actor_user_id": "3e7f1a90-5c2d-4b8e-8f61-2a9d0c4b7e35",    "agent_id": null  },  "requested_at": "2026-10-11T08:30:00Z",  "resolved_by": null,  "resolved_at": null,  "resolution_reason": null,  "request_receipt_id": "c4a1e9d2-7b3f-4e8a-a6c5-1d2e3f4a5b6c",  "resolution_receipt_id": null,  "finished_at": null,  "push_receipt_id": null}