links

POST /v1/content/runs/{runId}/resume

Retry the sites that failed — never the ones that worked.

All links endpoints

All developer docs →

Authentication

Send an API key as a bearer token. The key must carry the links.edit permission; a key without it is refused with 403, not 404.

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 POST https://api.zinndigital.com/v1/content/runs/{runId}/resume \
  -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

Puts a paused or partly-done run back to work on its failures only. The posts that already published stay published and are never touched again; a site that succeeded cannot be attempted a second time, because duplicate content on a private network is a footprint rather than an inconvenience. Gated on links.edit. ⛔ skipped items are not revived: a skip means the site is suspended, has no CMS, or has moved to another account, and retrying it would fail identically — or, after a transfer, would publish the previous owner's content onto somebody else's domain. Refused with 422 if the run is still going, or if nothing failed. Read resumable on the run before offering the button. ⛔ Pressing this is usually unnecessary. A paused run re-probes what stopped it and restarts itself the moment the cause is gone — including after a replaced key or a topped-up balance.

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…
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 · 422 · 503