links

GET /v1/content/targets

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

Все эндпоинты links

Аутентификация

Передайте API-ключ в качестве маркера носителя (bearer token). Эта конечная точка не указывает конкретное разрешение в спецификации, поэтому предоставьте своему ключу минимум необходимых прав и проверьте ответ, вместо того чтобы делать предположения.

Идентификатор вашей организации

Этот эндпоинт принимает org_id в качестве параметра запроса. Оставьте его пустым, и вызов охватит все поддерево вашей аренды; передайте его, чтобы сузить область вызова до одной организации.

Идентификатор вашей организации находится на экране ключей API в вашей панели управления, рядом с самим ключом. Это один и тот же идентификатор для каждого вашего запроса.

Попробовать

Замените всё в угловых скобках на собственные значения, а плейсхолдер ключа — на ключ из вашей панели управления.

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

Вошли в систему? Консоль API в вашей панели управления автоматически подставляет реальный идентификатор вашей организации и ваш собственный ключ, а также выполняет запрос к работающему API, чтобы вы могли увидеть актуальный ответ. Откройте эту конечную точку в API-консоли

Подробнее

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`.

Параметры

ИмяТипОбязательноЧто это
org_id (query)stringНетNarrow to one organisation in a reseller subtree. Can never widen scope.
q (query)stringНетMatch on domain or site name.
suitability (query)string<ready, needs_setup, unknown, unsuitable, blocked>Нет
product_line (query)stringНет
stack_type (query)stringНет
group_id (query)stringНетOnly sites in this site group.
cms (query)string<wordpress, headless_rest, git_static>НетOnly sites whose target is this kind.
requires (query)stringНетComma-separated capability ids a recipe requires, e.g. `cms_target:featured_image,cms_target:category`.
limit (query)integerНет
offset (query)integerНет

Ответ

ИмяТипОбязательноЧто это
itemsSiteTarget[]Да
totalintegerДаEvery site matching the filters, not the page. This is the number a select-all-matching control shows.
offsetintegerДа
limitintegerДа
has_morebooleanДа

Ошибки, которые может возвращать этот эндпоинт

401 · 403 · 422