syndication

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

Approve, reject or retry one channel's post.

All syndication endpoints

All developer docs →

Authentication

Send an API key as a bearer token. The key must carry the syndication.manage 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/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>Yesapprove 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 string…
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…
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