links

GET /v1/content/targets

Which of your sites can receive a post, and why the rest cannot.

Alle links-eindpunten

Authenticatie

Stuur een API-sleutel mee als bearer token. Dit eindpunt vermeldt geen specifieke toestemming in de specificatie, dus geef uw sleutel de minimale rechten die nodig zijn en controleer het antwoord in plaats van zomaar wat aan te nemen.

Waar je organisatie-id komt te staan

Dit eindpunt accepteert org_id als queryparameter. Laat deze achterwege en de aanroep destilleert je gehele tenant-substructie; stuur deze mee om de aanroep te beperken tot één organisatie.

Uw organisatie-id staat op het scherm met API-sleutels in uw dashboard, naast de sleutel zelf. Dit is in elke aanroep die u doet dezelfde id.

Probeer het

Vervang alles tussen punthaakjes door uw eigen waarden en de sleutelplaatsvervanger door een sleutel uit uw dashboard.

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

Ingelogd? De API-console in je dashboard vult je echte organisatie-id en je eigen sleutel in, en voert het verzoek uit tegen de live API zodat je de daadwerkelijke respons kunt zien. Open dit eindpunt in de API-console

Details

Every live site in scope with its **suitability**: can it take an article, and — when it cannot — whose fact that is. Gated on `links.view`. ⛔⛔ `suitability` has five values and the difference between two of them is the whole point of this endpoint. `unsuitable` is **measured**: every adapter was asked which sites it claims and each one declined, so this kind of site genuinely has nowhere to put an article. `unknown` means **we could not determine it** — the box was unreachable, the credential has never been tested, or nothing has checked this site yet. A client MUST NOT render `unknown` as a refusal, MUST NOT silently exclude it from a selection, and SHOULD count it separately in any confirmation ("9 ready, 3 unchecked"). Treating "we could not look" as "no" is the defect this endpoint exists to prevent. ⛔ This endpoint makes **no outbound calls**. Suitability is served from the last stored probe with `checkedAt` beside it, because probing every row of a 500-site page would be an uncached external call in an interactive path. `checkedAt: null` means never checked and MUST be shown as such, not as a fresh result. Use `probeContentTargets` to refresh. ⭐ `requires` takes capability ids a recipe needs; each row then carries `missingCapabilities`, so an editor can grey a site out and say what it cannot do. A site whose capabilities are not established reports **nothing** missing rather than everything missing — for the same reason `unknown` is not `unsuitable`.

Parameters

NaamTypeVerplichtWat dit is
org_id (query)stringNeeNarrow to one organisation in a reseller subtree. Can never widen scope.
q (query)stringNeeMatch on domain or site name.
suitability (query)string<ready, needs_setup, unknown, unsuitable, blocked>Nee
product_line (query)stringNee
stack_type (query)stringNee
group_id (query)stringNeeOnly sites in this site group.
cms (query)string<wordpress, headless_rest, git_static>NeeOnly sites whose target is this kind.
requires (query)stringNeeComma-separated capability ids a recipe requires, e.g. `cms_target:featured_image,cms_target:category`.
limit (query)integerNee
offset (query)integerNee

Reactie

NaamTypeVerplichtWat dit is
itemsSiteTarget[]Ja
totalintegerJaEvery site matching the filters, not the page. This is the number a select-all-matching control shows.
offsetintegerJa
limitintegerJa
has_morebooleanJa

Fouten die dit eindpunt kan retourneren

401 · 403 · 422