links

GET /v1/content/runs/{runId}

One run, with every site's outcome.

All links endpoints

Authentication

Send an API key as a bearer token. This endpoint does not state a specific permission in the specification, so give your key the least it needs and check the response rather than assuming.

This endpoint takes no organisation id. Your key already identifies the organisation it belongs to, and the response is scoped to it.

Try it

Replace anything in angle brackets with your own values, and the key placeholder with a key from your dashboard.

curl -X GET https://api.zinndigital.com/v1/content/runs/{runId} \
  -H "Authorization: Bearer zdk_live_…"

Signed in? The API console in your dashboard fills in your real organisation id and your own key, and runs the request against the live API so you can see the actual response. Open this endpoint in the API console

Details

The whole run screen in one call. Gated on `links.view`. 404 rather than 403 for a run in another tenant — a 403 would confirm the row exists.

Parameters

NameTypeRequiredWhat it is
runId (path)stringYes

Response

NameTypeRequiredWhat it is
idstringYes
stateContentRunStateYesWhere a run got to. `partial` is a real, honest, terminal answer and not a euphemism: some sites published and some did not, nothing is left to try, and the failures can be resu…
publish_policyContentRunPublishPolicyYesHow far a run may go on its own. `draft_only` is the default and puts nothing live.
recipe_idstringNo
briefstringYes
categorystringNo
post_idstringNoThe article this run wrote. Written once and reused for every site, so a resumed run places the SAME copy rather than paying for a second generation.
attemptintegerYesWhich pass over the failures this is. 0 is the original run.
workflow_idstringNo
totalsContentRunTotalsYes
reasonContentRunFailureReasonNo
providerstringNo
messagestringNoAn English sentence for the customer. Clients should render their own localised text from `reason` and fall back to this only for a code they do not know.
resumablebooleanYesWhether a resume would actually do anything. False on a paused run with nothing failed — do not offer the button when this is false.
started_atstringNo
finished_atstringNo
created_atstringYes
itemsContentRunItem[]Yes

Errors this endpoint can return

401 · 403 · 404