https://app.agentlinkops.com. Shared cloud operations use POST /v1/commands/{name}.
Read the authenticated catalog with GET /v1/commands.
Request contract
Send a workspace API key inAuthorization: Bearer .... Optional X-Workspace-ID must match that key’s workspace.
Human Clerk sessions require workspace selection and membership checks. MCP OAuth tokens belong to the MCP endpoint and cannot replace an HTTP API key.
A browser Origin must match the API’s configured public origin. See human access.
JSON bodies must be objects, UTF-8, with Content-Type: application/json. The request cap is 256 KiB and body-read timeout is ten seconds.
The command index accepts only ?include=schemas, which returns full definitions instead of compact rows. GET /v1/commands/{name} describes one command without a request body. Generic command calls reject query parameters and the Idempotency-Key header: put every argument, including idempotencyKey, in the body.
A successful generic call returns the operation’s JSON result directly, with HTTP 200 and Cache-Control: no-store. It does not add a data envelope.
Resource-route statuses and raw-evidence download behavior appear in the route index.
Errors
The operation page lists its source-derived error codes. Keep
requestId and the X-Request-ID response header with diagnostic reports.
Where returned, details.next explains recovery and Retry-After gives the wait before another attempt. Permission denial and disabled supplier admission are not fixed by repeated requests.
Pagination and retained history
Use an operation’s documentedcursor and limit. Store returned cursors unchanged; do not construct or edit them.
Keep cursors bound to the same workspace, filters and feed. Follow next_cursor until the page says there is no continuation.
Event feeds retain a checkpoint in next_cursor even when has_more is false; stop paging when has_more is false and save that checkpoint for the next poll. Not every list uses identical pagination: member lists and the command catalog are not cursor feeds.
Placement events and target_events have independent sequence spaces. Keep two checkpoints.
On CURSOR_EXPIRED, preserve the gap, fetch the instructed snapshot and resume from the supplied cursor. A snapshot restores current state; it does not recover expired events. EVIDENCE_EXPIRED means raw bytes are unavailable, while retained observation metadata may still be readable.
Asynchronous work and retries
An accepted job means work was queued. Poll its documented job/run/batch reader until the returned state is terminal. Read observations and errors from that result before reporting success. Local source coverage does not prove a hosted supplier is admitted. For operations that acceptidempotencyKey, reuse the same value and the same arguments when retrying an uncertain write. Resource aliases take that value in the Idempotency-Key header where listed.
Do not invent that argument for other commands. Read current state before repeating a write without an idempotency contract.
The CLI cloud client uses a 30-second timeout per attempt and rejects redirects. GET reads retry network failures and HTTP 429/503 up to three attempts.
It honors Retry-After within a five-second wait ceiling; a longer requested wait stops retries. POST, PATCH, PUT and DELETE receive one attempt, including generic commands that perform reads.
After an uncertain write, reconcile the original operation before replaying it. Sync owns its cursor recovery.
These retry limits describe API-key HTTP mode; Linux CLI OAuth dispatches shared commands through MCP and has its own authentication recovery. Webhook dispatch has a separate delivery retry contract.
Check the selected environment and workspace access before calling hosted operations. See capability status.