links

POST /v1/content/runs

Start a multi-site posting run.

Tüm links uç noktaları

Kimlik Doğrulama

Bir API anahtarını bearer token olarak gönderin. Bu uç nokta, teknik özelliklerde belirli bir yetki belirtmemektedir; bu nedenle, varsaymak yerine anahtarınıza ihtiyaç duyduğu en az yetkiyi verin ve yanıtı kontrol edin.

Bu uç nokta hiçbir organizasyon kimliği almaz. Anahtarınız zaten ait olduğu organizasyonu tanımlar ve yanıt bu organizasyonla sınırlandırılır.

Dene

Köşeli parantez içindeki her şeyi kendi değerlerinizle ve anahtar yer tutucusunu panonuzdan bir anahtarla değiştirin.

curl -X POST https://api.zinndigital.com/v1/content/runs \
  -H "Authorization: Bearer zdk_live_…" \
  -H "Content-Type: application/json" \
  -d '{ "brief": <string>, "site_ids": <string[]> }'

Oturum açtınız mı? Panonuzdaki API konsolu, gerçek organizasyon kimliğinizi ve kendi anahtarınızı otomatik olarak doldurur ve isteği canlı API üzerinde çalıştırarak gerçek yanıtı görmenizi sağlar. Bu uç noktayı API konsolunda açın

Ayrıntılar

Writes one article from the brief and places it on every site named, eight at a time. Answers **201 immediately** with the run row — the work itself happens on the durable queue, and the run screen shows it progressing. Gated on `links.edit`, the same key as scheduling a post by hand, because that is what this creates. ⛔ `publish_policy` defaults to `draft_only`, so a request that omits it produces scheduled drafts and puts nothing live. `unattended` is the only value that publishes without a human, and it is the mode the durability guarantees are written for. ⛔ Every site id must belong to this organisation. A run naming a site that does not is refused whole with 422 rather than quietly posting to the rest — *"it only posted to some of them"* is not a state a customer can act on. Sites that cannot receive a post (suspended, a non-WordPress stack, transferred away) are recorded as `skipped` with a reason and do not stop the run.

İstek gövdesi

AdTürZorunluNe olduğu
briefstringEvet
site_idsstring[]Evet
anchorsContentRunAnchor[]Hayır
categorystringHayır
publish_policyContentRunPublishPolicyHayır
recipe_idstringHayır

Yanıt

AdTürZorunluNe olduğu
idstringEvet
stateContentRunStateEvetWhere 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_policyContentRunPublishPolicyEvetHow far a run may go on its own. `draft_only` is the default and puts nothing live.
recipe_idstringHayır
briefstringEvet
categorystringHayır
post_idstringHayırThe 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.
attemptintegerEvetWhich pass over the failures this is. 0 is the original run.
workflow_idstringHayır
totalsContentRunTotalsEvet
reasonContentRunFailureReasonHayır
providerstringHayır
messagestringHayırAn 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.
resumablebooleanEvetWhether a resume would actually do anything. False on a paused run with nothing failed — do not offer the button when this is false.
started_atstringHayır
finished_atstringHayır
created_atstringEvet
itemsContentRunItem[]Evet

Bu uç noktanın dönderebileceği hatalar

401 · 403 · 422 · 503