Skip to main content
An IPA moves through a sequence of states as the agent qualifies the intent, searches, validates candidates, waits for approval, optionally monitors conditions, and executes. This page is the state-machine reference. For the API surface and request/response shape, see the IPA guide; for the concept and composition model, see IPAs.

State diagram

Status reference

StatusMeaning
qualifyingPre-flight is parsing the raw intent and validating the linked PINT’s scopes.
searchingThe agent is crawling for candidate products or services.
validatingCandidates are being scored against the IPA’s constraints.
pending_clarificationThe agent needs more information from the user. clarification_questions is populated and the answers link is available.
pending_approvalA valid candidate is ready; the decision link is available.
approvedThe user has approved. The IPA then transitions into monitoring.
monitoringEntered after approval regardless of autonomy level. When conditions are attached they are evaluated against live offers; when conditions are empty the monitor signals readiness immediately and the IPA advances to executing.
executingThe purchase transaction is in flight.
completedTerminal. Purchase was executed successfully.
failedTerminal. An error occurred during qualification, search, validation, or execution. failure_reason is populated.
cancelledTerminal. The user cancelled before completion.
expiredTerminal. monitor_until elapsed without conditions being met.

How transitions map to the public API

The following response fields are populated as the IPA advances:
FieldPopulated when
preflight_workflow_idOn create — identifies the durable workflow validating the intent and PINT scopes.
originating_agent_taskVia expand=originating_agent_task — the agent task that produced the IPA.
executing_agent_taskVia expand=executing_agent_task. Spawned during pre-flight, so available before approval is granted.
pint_urisThe PINTs linked to the originating and (once present) executing agent tasks.
failure_reasonPopulated when status reaches failed.
completed_atPopulated when status reaches any terminal state.
The _links map on every response declares which actions the current state allows:
LinkPresent when
selfAlways.
eventsAlways.
answersqualifying or pending_clarification.
decisionpending_approval.
cancelAny non-terminal status.

Event stream

Every state change is recorded as an event. Fetch them with GET /v0/user/ipa/{ipa_id}/events, or embed them via expand=events. Event types include ipa.status_change, ipa.clarification_sent, ipa.clarification_received, ipa.approval_requested, ipa.approval_received, ipa.workflow_started, ipa.workflow_completed, ipa.workflow_failed, ipa.cancelled, ipa.workflow_resumed, ipa.monitor_started, and ipa.price_checked.
  • IPA guide — request/response shape and drive-the-lifecycle recipes.
  • IPAs — concept page and composition with PINTs.
  • Enrol in perpetual search — an end-to-end quickstart that walks the diagram above.
  • PINTs and scopes — the primitives an IPA rides on.