Endpoints
You can also answer with
POST /v1/runs/{run_id}/input and an attention_id. The two are equivalent.
How it works
- Policy returns ASK, or the run needs data, reaches its budget, gets an inconclusive verification, falls below a confidence threshold, or cannot safely resume an interrupted effect. The run emits an attention request and moves to
needs_attention. - The request has a
kind:approval(a policy ask) orinformational. - The attention controller delivers it under the applicable attention policy.
- A person answers. The first valid answer wins. The answer is written as a receipt before it takes effect.
- If nobody answers before
expires_at: anapprovalresolves as a rejection (fail closed,outcome: rejected); aninformationalrequest becomesexpiredwith no rejection implied (outcome: none).
403 ERR_POLICY_DENIED).
The AttentionRequest object
Attention IDs match^att_[A-Za-z0-9]+$.
Reasons
Status
AttentionStatusProposed action
proposed_action (ProposedAction) describes what an approval would allow.
Resolution
resolution (AttentionResolution) is set once the request is no longer open.
List attention
Parameters
status takes a comma-separated list, for example ?status=open.
Responses
AttentionPage:Example
List attention for a run
Parameters
Responses
Example
Get an attention request
Parameters
Responses
Example
Respond to an attention request
POST /v1/runs/{run_id}/input with this attention_id. The first valid response wins; later ones get 409 ERR_ATTENTION_RESOLVED. Expired requests resolve as expired and, for approvals, are treated as a rejection.
Parameters
Request body
AttentionResponse.type must be one of the request’s response_options.
Responses
Examples
Approve:202 response is the updated AttentionRequest (shortened):
budget_exhausted by supplying data. The shape of value for a given request is described by that request’s summary and proposed_action; the v0.3 contract leaves value untyped.
Attention policy
Delivery limits are set by an AttentionPolicy, which a campaign can supply. The numeric defaults are versioned platform defaults (defaults_version), not fixed constants.