links
GET /v1/content/targets
Which of your sites can receive a post, and why the rest cannot.
Autentikasi
Kirimkan kunci API sebagai token bearer. Titik akhir ini tidak menyatakan izin tertentu dalam spesifikasi, jadi berikan kunci Anda izin minimum yang diperlukan dan periksa responsnya alih-alih berasumsi.
Tempat ID organisasi Anda dimasukkan
Titik akhir ini menerima org_id sebagai parameter kueri. Kosongkan parameter tersebut dan panggilan ini akan mencakup seluruh subpohon penyewa Anda; kirimkan untuk mempersempit panggilan ke satu organisasi.
ID organisasi Anda berada di layar kunci API di dasbor Anda, di sebelah kunci itu sendiri. Itu adalah ID yang sama dalam setiap panggilan yang Anda buat.
Coba
Ganti apa pun di dalam tanda kurung sudut dengan nilai Anda sendiri, dan placeholder kunci dengan kunci dari dasbor Anda.
curl -X GET https://api.zinndigital.com/v1/content/targets \
-H "Authorization: Bearer zdk_live_…"Sudah masuk? Konsol API di dasbor Anda akan mengisi ID organisasi asli dan kunci Anda sendiri, serta menjalankan permintaan terhadap API langsung sehingga Anda dapat melihat respons aktualnya. Buka titik akhir ini di konsol API
Detail
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`.
Parameter
| Nama | Jenis | Wajib | Tentang apa ini |
|---|---|---|---|
org_id (query) | string | Tidak | Narrow to one organisation in a reseller subtree. Can never widen scope. |
q (query) | string | Tidak | Match on domain or site name. |
suitability (query) | string<ready, needs_setup, unknown, unsuitable, blocked> | Tidak | — |
product_line (query) | string | Tidak | — |
stack_type (query) | string | Tidak | — |
group_id (query) | string | Tidak | Only sites in this site group. |
cms (query) | string<wordpress, headless_rest, git_static> | Tidak | Only sites whose target is this kind. |
requires (query) | string | Tidak | Comma-separated capability ids a recipe requires, e.g. `cms_target:featured_image,cms_target:category`. |
limit (query) | integer | Tidak | — |
offset (query) | integer | Tidak | — |
Tanggapan
| Nama | Jenis | Wajib | Tentang apa ini |
|---|---|---|---|
items | SiteTarget[] | Ya | — |
total | integer | Ya | Every site matching the filters, not the page. This is the number a select-all-matching control shows. |
offset | integer | Ya | — |
limit | integer | Ya | — |
has_more | boolean | Ya | — |
Kesalahan yang dapat dikembalikan oleh titik akhir ini
401 · 403 · 422