status: "blocked" with blocked_reason: "credentials",
and this endpoint is the only way to answer it.
{migration_id} and {run_id} come from
starting and polling
the run.
Authentication
Requires anx-api-key header. See Authentication.
What you’re answering
A credential-blocked poll response tells you exactly what to collect:credential_request.schema, show the guidance, and post the
collected values back.
Request body
The secret values, keyed to match the request’s
schema (e.g.
{ "client_id": "…", "client_secret": "…" }). Must be a non-empty object.Optional guard. If sent, it must match the
credential_request.connection_id
the run asked about, or the call returns 409. The connection is always taken
from the run itself — a key can only ever fill the connection the agent
actually requested.Response
200 OK
Errors
| Status | Meaning |
|---|---|
400 | credentials missing or not a non-empty object; malformed JSON. |
401 | API key missing or invalid. |
404 | No such run, the migration isn’t in your account, or the run’s connection no longer exists. |
409 | The run isn’t awaiting credentials (not blocked, or blocked on a question instead); connection_id doesn’t match the run; or no active credential request to answer yet — retry shortly. |
429 | Rate limit hit — back off and retry. |
500 | Server error. |
Example
Next
- Poll a run — watch the resumed extraction.
- Connect a live source — manage the connection a credential request belongs to.
- Answer the agent — the non-secret question path.