syndication

POST /v1/syndication/posts/{postId}/{action}

Approve, reject or retry one channel's post.

All syndication 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 POST https://api.zinndigital.com/v1/syndication/posts/{postId}/{action} \
  -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

Approving queues the post for the next sweep; rejecting settles it `skipped` because nothing went wrong; retrying re-queues a `failed` or `needs_reconnect` post — reconnect the account first, or it will settle the same way again. Gated on `syndication.manage`.

Parameters

NameTypeRequiredWhat it is
postId (path)stringYes
action (path)string<approve, reject, retry>Yes`approve` clears a held post for sending, `reject` marks it `skipped` (nothing went wrong — the customer said no), `retry` re-queues a failed one.

Response

NameTypeRequiredWhat it is
idstringYes
channelstringYes
connection_idstringYes
connection_labelstringYes
statusstring<drafting, awaiting_approval, queued, posted, failed, needs_reconnect, skipped>Yes⛔⛔ `needs_reconnect` is NOT `failed`. `skipped` means the customer said no or the connection was removed — nothing went wrong.
textstringYes
remote_urlstringYesThe live post, read back from the channel where it returns one. ⛔ Empty where the vendor gives us nothing to build a URL from (a Slack incoming webhook answers the literal strin…
droppedstring[][]Yes`[[field, reason], …]` — what this channel could not carry, and WHY. The reason travels: "no image endpoint" and "the upload was refused" are different problems with different n…
errorstringYesA machine code, never a sentence.
cost_microsintegerYesWhat this post cost us, in USD micros. One line per channel per post.
character_limitintegerYes
posted_atstringYes

Errors this endpoint can return

401 · 403 · 404