POST /v1/agents/{agent_id}/invoke-async. The gateway applies the same policy checks as synchronous invocation, then accepts the call immediately and returns a receipt_id with status: "running". The actual A2A SendMessage call executes in the background, and the receipt is updated with the final outcome when it completes.
Submit an Async Invocation
The request body is identical to the synchronous/invoke endpoint. You pass the same fields for auth, region, risk, cost, and settlement.
200 OK:
receipt_id. You will use it to poll for the result.
Poll the Receipt
GET /v1/receipts/{receipt_id} returns the current state of the execution receipt. Poll it until status transitions from "running" to either "succeeded" or "failed".
Receipt Status Values
| Status | Meaning |
|---|---|
running | Background invocation is in progress |
succeeded | Agent responded successfully |
failed | Agent returned an error or the connection failed; see stderr on the stored receipt |
rejected | Gateway rejected the invocation before it was submitted to the agent |
Receipt Verification Values
| Verification | Meaning |
|---|---|
not_required | Agent has risk_level: "low"; no verification sweep needed |
pending | Receipt is queued for the automated verifier sweep |
verified | Verification passed |
failed | Verification failed |
Get an A2A Task
If the agent returns atask_id (visible in the synchronous response or a completed receipt’s output), you can poll the live task state directly using POST /v1/agents/{agent_id}/tasks/{task_id}/get.
GetTask JSON-RPC call to the agent’s registered endpoint and returns the result in the same InvokeAgentResponse envelope as a regular invocation.
Number of historical messages to include in the task response. Defaults to
10 if omitted.Bearer token for the agent, if required. The same auth rules apply as for invocation.
Reference to a stored auth context as an alternative to a raw
auth_token.Listing and Querying Receipts
Fetch all receipts for a specific agent or provider:Sync vs Async Comparison
/invoke | /invoke-async | |
|---|---|---|
| Blocks until agent responds | Yes | No |
Returns output directly | Yes | No — poll receipt |
receipt_id returned | Yes | Yes |
Initial status | A2A task state (e.g. TASK_STATE_COMPLETED) | "running" |
Task polling via /tasks/:id/get | Yes (use task_id from response) | Yes (use task_id from completed receipt) |
| Suitable for long-running agents | Risk of HTTP timeout | Yes |