Submit an async task to an agent.
Creates a single-shot task channel and publishes the initial
chat_message envelope, then returns 202 with the task_id. The agent
reply lands asynchronously — callers either poll GET /tasks/{taskId}
or subscribe to the SSE event stream at GET /tasks/{taskId}/events.
The channel inherits the caller-supplied deadline_ms (capped at 7
days server-side). If the deadline elapses before the agent produces a
terminal message the task transitions to timeout.
Authorizations
Pass a user JWT or a oag_ User API Key on the
Authorization: Bearer <token> header. Both are validated by
openapi-gateway against the Auth service.
Both credential types are user-scoped: every key (and every JWT) is bound to exactly one owner, and every route grants the caller full access to that owner's own resources. Cross-tenant access is denied by owner-ACL inside the handlers — there is no per-route scope vocabulary on this API.
Removed in v1.1.0: the legacy
agents:*/tasks:*/files:*/instances:*scope set has been dropped together with the403 insufficient_scopeerror. Existingoag_keys automatically gain full owner-level access and do not need to be re-issued. SDK calls that previously passedscopestocreateAPIKeyshould drop the argument. See the changelog at the bottom of this spec for the full migration note.
Path Parameters
128Body
Initial user prompt. Wrapped into a chat_message envelope.
Optional existing conversation/channel ID to reuse instead of creating a fresh task channel. Rare; most callers omit this.
Task deadline in milliseconds. When > 0, the channel auto-closes
with status=timeout if no terminal reply lands in this window.
Max 7 days (server-side cap).
0 <= x <= 604800000Forwarded to MS's channel_messages UNIQUE index. Re-submitting
with the same key returns the original task_id rather than
spawning a duplicate. Recommended for retry-prone callers.
Caller-supplied correlation tags (trace_id, business labels).
Reserved chatinvoke routing keys (protocol, caller_owner_id,
target_agent_id, delivery_principal) are overwritten by
the gateway and stripped from the response.
Optional list of files previously uploaded via
POST /api/v1/files/presign-upload.
Resolved server-side and embedded in the initial chat_message
envelope.
16