Landing changes
Submit changes and follow their checks and landing results.
| Operation | Request |
|---|---|
| Landing status | GET /v1/land |
| Submit landing | POST /v1/land |
| Show landing | GET /v1/land/{id} |
| Withdraw landing | DELETE /v1/land/{id} |
Landing status
GET /v1/land · landingStatus
Uses the configured repository's CLI landing queue. Requires an account allowed to run agent work. Reuse the request ID and exact inputs on retry. Only the submitter or an administrator may withdraw a queued change.
Sign-in: a bearer credential in the Authorization header.
appBearer: A live app sess_ session or oa_sk_ sign-in key. Account-bound oak_ keys are accepted only where the operation declares them and their scopes permit it. API cookies are ignored.
Response
200 — Landing queue result.
Type: LandStatus
| Field | Type | Required | Description |
|---|---|---|---|
queue | string | No | Default: |
integrator | object | Yes | Whether the integrator has sent a recent heartbeat, and its latest report. |
integrator.running | boolean | Yes | |
integrator.heartbeat | object or null | No | The integrator's latest report of its work and capacity. |
integrator.heartbeat.machine | string | Yes | |
integrator.heartbeat.at | integer (uint64) | Yes | |
integrator.heartbeat.current | string or null | No | |
integrator.heartbeat.instance | object or null | No | The cloud computer that runs the integrator. |
integrator.heartbeat.instance.project | string | Yes | |
integrator.heartbeat.instance.zone | string | Yes | |
integrator.heartbeat.instance.name | string | Yes | |
integrator.heartbeat.slots | array of object | No | |
integrator.heartbeat.slots[].slot | string | Yes | |
integrator.heartbeat.slots[].lane | string | Yes | |
integrator.heartbeat.slots[].entry | string | Yes | |
integrator.heartbeat.slots[].since | integer (uint64) | Yes | |
integrator.heartbeat.capacity | integer (uint32) or null | No | |
integrator.heartbeat.draining | boolean | No | Default: |
waiting | array of object | No | Default: |
waiting[].id | string | Yes | |
waiting[].branch | string | Yes | |
waiting[].target | string | Yes | |
waiting[].issue | integer (uint64) or null | No | |
waiting[].close | boolean | No | Default: |
waiting[].author | string | Yes | |
waiting[].machine | string | Yes | |
waiting[].summary | string | Yes | |
waiting[].head | string | Yes | |
waiting[].submitted_at | integer (uint64) | Yes | |
waiting[].state | one of "queued", "landing", "landed", "bounced", "withdrawn" | Yes | Where a submitted change stands. |
waiting[].updated_at | integer (uint64) | Yes | |
waiting[].tries | integer (uint32) | No | Default: |
waiting[].commit | string or null | No | |
waiting[].reason | string or null | No | |
waiting[].worker | string or null | No | |
waiting[].lane | one of "fast", "code", null | No | Which checks the integrator runs for a change. |
waiting[].slot | string or null | No | |
waiting[].started_at | integer (uint64) or null | No | |
waiting[].waiting_for | string or null | No | |
waiting[].records | array of object | No | |
waiting[].records[].entry | string | Yes | |
waiting[].records[].number | integer (uint32) | Yes | |
waiting[].records[].worker | string | Yes | |
waiting[].records[].started_at | integer (uint64) | Yes | |
waiting[].records[].ended_at | integer (uint64) | Yes | |
waiting[].records[].outcome | string | Yes | |
waiting[].records[].target_before | string | Yes | |
waiting[].records[].commit | string or null | No | |
waiting[].records[].landing | array of string | No | Default: |
waiting[].records[].checks | array of string | No | Default: |
waiting[].records[].problems | array of string | No | Default: |
waiting[].records[].repaired | boolean | No | Default: |
waiting[].records[].notes | array of string | No | Default: |
waiting[].records[].lane | string | No | |
waiting[].records[].slot | string | No | |
waiting[].records[].regenerated | array of string | No | |
landing | array of object | No | Default: |
landing[].id | string | Yes | |
landing[].branch | string | Yes | |
landing[].target | string | Yes | |
landing[].issue | integer (uint64) or null | No | |
landing[].close | boolean | No | Default: |
landing[].author | string | Yes | |
landing[].machine | string | Yes | |
landing[].summary | string | Yes | |
landing[].head | string | Yes | |
landing[].submitted_at | integer (uint64) | Yes | |
landing[].state | one of "queued", "landing", "landed", "bounced", "withdrawn" | Yes | Where a submitted change stands. |
landing[].updated_at | integer (uint64) | Yes | |
landing[].tries | integer (uint32) | No | Default: |
landing[].commit | string or null | No | |
landing[].reason | string or null | No | |
landing[].worker | string or null | No | |
landing[].lane | one of "fast", "code", null | No | Which checks the integrator runs for a change. |
landing[].slot | string or null | No | |
landing[].started_at | integer (uint64) or null | No | |
landing[].waiting_for | string or null | No | |
landing[].records | array of object | No | |
landing[].records[].entry | string | Yes | |
landing[].records[].number | integer (uint32) | Yes | |
landing[].records[].worker | string | Yes | |
landing[].records[].started_at | integer (uint64) | Yes | |
landing[].records[].ended_at | integer (uint64) | Yes | |
landing[].records[].outcome | string | Yes | |
landing[].records[].target_before | string | Yes | |
landing[].records[].commit | string or null | No | |
landing[].records[].landing | array of string | No | Default: |
landing[].records[].checks | array of string | No | Default: |
landing[].records[].problems | array of string | No | Default: |
landing[].records[].repaired | boolean | No | Default: |
landing[].records[].notes | array of string | No | Default: |
landing[].records[].lane | string | No | |
landing[].records[].slot | string | No | |
landing[].records[].regenerated | array of string | No | |
failed | array of object | No | Default: |
failed[].id | string | Yes | |
failed[].branch | string | Yes | |
failed[].target | string | Yes | |
failed[].issue | integer (uint64) or null | No | |
failed[].close | boolean | No | Default: |
failed[].author | string | Yes | |
failed[].machine | string | Yes | |
failed[].summary | string | Yes | |
failed[].head | string | Yes | |
failed[].submitted_at | integer (uint64) | Yes | |
failed[].state | one of "queued", "landing", "landed", "bounced", "withdrawn" | Yes | Where a submitted change stands. |
failed[].updated_at | integer (uint64) | Yes | |
failed[].tries | integer (uint32) | No | Default: |
failed[].commit | string or null | No | |
failed[].reason | string or null | No | |
failed[].worker | string or null | No | |
failed[].lane | one of "fast", "code", null | No | Which checks the integrator runs for a change. |
failed[].slot | string or null | No | |
failed[].started_at | integer (uint64) or null | No | |
failed[].waiting_for | string or null | No | |
failed[].records | array of object | No | |
failed[].records[].entry | string | Yes | |
failed[].records[].number | integer (uint32) | Yes | |
failed[].records[].worker | string | Yes | |
failed[].records[].started_at | integer (uint64) | Yes |
Errors
| Status | Meaning | Body |
|---|---|---|
| 400, 401, 403, 404, 409, 413, 503 | Invalid request, signed out, denied, missing, conflict, too large, or unavailable. | AppAccountError |
Example
curl 'https://api.openagents.com/v1/land' \
-H "Authorization: Bearer $OPENAGENTS_TOKEN"
Submit landing
POST /v1/land · submitLanding
Uses the configured repository's CLI landing queue. Requires an account allowed to run agent work. Reuse the request ID and exact inputs on retry. Only the submitter or an administrator may withdraw a queued change.
Sign-in: a bearer credential in the Authorization header.
appBearer: A live app sess_ session or oa_sk_ sign-in key. Account-bound oak_ keys are accepted only where the operation declares them and their scopes permit it. API cookies are ignored.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
Idempotency-Key | header | string | Yes |
Request body
Content type: application/json
Type: LandSubmit
| Field | Type | Required | Description |
|---|---|---|---|
repo | string | Yes | |
branch | string | Yes | |
issue | integer (uint64) or null | No | |
summary | string or null | No |
Response
201 — Landing queue result.
Type: LandEntry
| Field | Type | Required | Description |
|---|---|---|---|
id | string | Yes | |
branch | string | Yes | |
target | string | Yes | |
issue | integer (uint64) or null | No | |
close | boolean | No | Default: |
author | string | Yes | |
machine | string | Yes | |
summary | string | Yes | |
head | string | Yes | |
submitted_at | integer (uint64) | Yes | |
state | one of "queued", "landing", "landed", "bounced", "withdrawn" | Yes | Where a submitted change stands. |
updated_at | integer (uint64) | Yes | |
tries | integer (uint32) | No | Default: |
commit | string or null | No | |
reason | string or null | No | |
worker | string or null | No | |
lane | one of "fast", "code", null | No | Which checks the integrator runs for a change. |
slot | string or null | No | |
started_at | integer (uint64) or null | No | |
waiting_for | string or null | No | |
records | array of object | No | |
records[].entry | string | Yes | |
records[].number | integer (uint32) | Yes | |
records[].worker | string | Yes | |
records[].started_at | integer (uint64) | Yes | |
records[].ended_at | integer (uint64) | Yes | |
records[].outcome | string | Yes | |
records[].target_before | string | Yes | |
records[].commit | string or null | No | |
records[].landing | array of string | No | Default: |
records[].checks | array of string | No | Default: |
records[].problems | array of string | No | Default: |
records[].repaired | boolean | No | Default: |
records[].notes | array of string | No | Default: |
records[].lane | string | No | |
records[].slot | string | No | |
records[].regenerated | array of string | No |
Errors
| Status | Meaning | Body |
|---|---|---|
| 400, 401, 403, 404, 409, 413, 503 | Invalid request, signed out, denied, missing, conflict, too large, or unavailable. | AppAccountError |
Example
curl -X POST 'https://api.openagents.com/v1/land' \
-H "Authorization: Bearer $OPENAGENTS_TOKEN" \
-H 'Idempotency-Key: ...' \
-H 'Content-Type: application/json' \
-d '{
"repo": "string",
"branch": "string"
}'
Show landing
GET /v1/land/{id} · showLanding
Uses the configured repository's CLI landing queue. Requires an account allowed to run agent work. Reuse the request ID and exact inputs on retry. Only the submitter or an administrator may withdraw a queued change.
Sign-in: a bearer credential in the Authorization header.
appBearer: A live app sess_ session or oa_sk_ sign-in key. Account-bound oak_ keys are accepted only where the operation declares them and their scopes permit it. API cookies are ignored.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | Yes |
Response
200 — Landing queue result.
Type: LandEntry
| Field | Type | Required | Description |
|---|---|---|---|
id | string | Yes | |
branch | string | Yes | |
target | string | Yes | |
issue | integer (uint64) or null | No | |
close | boolean | No | Default: |
author | string | Yes | |
machine | string | Yes | |
summary | string | Yes | |
head | string | Yes | |
submitted_at | integer (uint64) | Yes | |
state | one of "queued", "landing", "landed", "bounced", "withdrawn" | Yes | Where a submitted change stands. |
updated_at | integer (uint64) | Yes | |
tries | integer (uint32) | No | Default: |
commit | string or null | No | |
reason | string or null | No | |
worker | string or null | No | |
lane | one of "fast", "code", null | No | Which checks the integrator runs for a change. |
slot | string or null | No | |
started_at | integer (uint64) or null | No | |
waiting_for | string or null | No | |
records | array of object | No | |
records[].entry | string | Yes | |
records[].number | integer (uint32) | Yes | |
records[].worker | string | Yes | |
records[].started_at | integer (uint64) | Yes | |
records[].ended_at | integer (uint64) | Yes | |
records[].outcome | string | Yes | |
records[].target_before | string | Yes | |
records[].commit | string or null | No | |
records[].landing | array of string | No | Default: |
records[].checks | array of string | No | Default: |
records[].problems | array of string | No | Default: |
records[].repaired | boolean | No | Default: |
records[].notes | array of string | No | Default: |
records[].lane | string | No | |
records[].slot | string | No | |
records[].regenerated | array of string | No |
Errors
| Status | Meaning | Body |
|---|---|---|
| 400, 401, 403, 404, 409, 413, 503 | Invalid request, signed out, denied, missing, conflict, too large, or unavailable. | AppAccountError |
Example
curl 'https://api.openagents.com/v1/land/{id}' \
-H "Authorization: Bearer $OPENAGENTS_TOKEN"
Withdraw landing
DELETE /v1/land/{id} · withdrawLanding
Uses the configured repository's CLI landing queue. Requires an account allowed to run agent work. Reuse the request ID and exact inputs on retry. Only the submitter or an administrator may withdraw a queued change.
Sign-in: a bearer credential in the Authorization header.
appBearer: A live app sess_ session or oa_sk_ sign-in key. Account-bound oak_ keys are accepted only where the operation declares them and their scopes permit it. API cookies are ignored.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | Yes |
Response
204 — Landing queue result.
Errors
| Status | Meaning | Body |
|---|---|---|
| 400, 401, 403, 404, 409, 413, 503 | Invalid request, signed out, denied, missing, conflict, too large, or unavailable. | AppAccountError |
Example
curl -X DELETE 'https://api.openagents.com/v1/land/{id}' \
-H "Authorization: Bearer $OPENAGENTS_TOKEN"