status is terminal for its phase. For live progress,
prefer the thread stream.
Authentication
Requires anx-api-key header. See Authentication.
Response by status
Every response carriesrun_id, status, and created_at. Once you’ve answered
the agent, the response also echoes answers (your reply, read back). The rest
depends on status:
One of
queued, running, blocked, awaiting_approval, completed,
failed, or canceled.Present once you’ve answered a block — a normalized read-back of your last
reply, so a UI can show what was submitted. Absent before the first answer.
execute carries a report:
Total rows imported across all sheets.
Per-template counts —
{ templateName, sheetId, rowCount }.The number of rows that still have at least one cell that failed validation
— not a count of individual cells. The import succeeded; those rows are simply
flagged. The default CSV download (
?filter=valid) excludes any flagged row
entirely, so a single bad cell drops its whole row. See
Export CSV.An optional value-completeness profile — per-column fill/distinct stats for the
source inputs and the imported outputs — so a hollow import (right row count,
dropped fields) is detectable programmatically.
null when profiling wasn’t
available for the run.A blocked run
Ablocked run is waiting on you. blocked_reason tells you which kind of
block it is and which sub-resource resumes it:
A question block
blocked_reason: "question" carries the questions you render in your own
UI. Each is self-describing — { id, question, context?, options[], allowCustom }:
A credential block
blocked_reason: "credentials" means a connected live
source needs secrets. The response carries a
credential_request — the connection it’s for, plus a schema and guidance
you render into a form — and no question:
Recovering a run
If you lose arun_id (a crash, a dropped response, a page reload), re-issue the
same run you were running. Because only one run
runs at a time per migration, the call returns 409 with the active run’s ID:
run_id as usual.
A run whose engine dies without writing a terminal status is swept to
failed
(“Import timed out”) once it goes stale — so a lookup never reports a zombie run
as forever-running.Cancel a run
canceled) shape.
Errors
Example
Next
- Answer the agent — resume a question block.
- Submit credentials — resume a credential block.
- Get the preview — read what a generate/update produced.
- Export CSV — get the validated rows out.