hosting

GET /v1/sites/{siteId}/cdn

Get a site's CDN configuration.

All hosting endpoints

Authentication

Send an API key as a bearer token. The key must carry the sites.view 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 GET https://api.zinndigital.com/v1/sites/{siteId}/cdn \
  -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

On the footprint-free line the CDN is platform-managed footprint machinery: `managed` is true and `provider` is always null, because naming the CDN in front of a PBN site would leak the footprint the line exists to hide (register #93). On other lines the customer picks a tier or brings their own connected account. Requires `sites.view`.

Parameters

NameTypeRequiredWhat it is
siteId (path)UuidYesSite ID (UUIDv7).

Response

NameTypeRequiredWhat it is
old_zone_removedbooleanNoOnly on a `switchSiteCdn` response: whether the site's **previous** zone was really deleted. ⛔ An observation, not an intention — a source account that refuses the delete does n…
nameserversstring[]NoOnly on a switch response, and only for a zone-owning CDN: the nameservers the destination zone is served from. ⛔ **The customer has to act on this.** Cloudflare assigns a names…
site_idUuidYesUUIDv7 identifier — sortable by creation time (docs/02 §8).
product_linestringYesThe site product line, which decides whether the CDN is managed.
managedbooleanYesTrue on the footprint-free line, where the CDN is platform-owned footprint machinery the customer neither configures nor sees.
enabledbooleanYes
tierCdnTierYes`byo` runs the site CDN on a CDN account the customer has **connected** — we hold the credential and drive it, so purge, TLS and zone state all work from the dashboard. ⛔⛔ `pass…
providerobjectYesDisplay name of the active CDN, or **null when managed is true** — naming the CDN in front of a footprint-free site would leak the footprint the line exists to hide (register #9…
accountCdnAccountYesWhich CDN account serves this site, and whether its credential still works. ⛔ Always present — never omitted for "we do not know", because an absent object is read by a client a…
passthrough_targetstringNoWhere a `passthrough` site's traffic is pointed — the edge hostname the customer's own CDN gave them, which we publish as this domain's answer. **Empty on every other tier**, wh…
passthrough_labelstringNoWhat the customer calls the CDN they run themselves. ⚠️ **Unverified** — we hold no credential for that edge, so this is their claim and a client must present it as theirs rathe…
price_minorintegerYesMonthly premium-tier price in integer minor units (§2.8).
currencystringYesISO-4217 code the price_minor above is expressed in.
edgeCdnEdgeYesWhich edge is **actually** in front of this site, and which of the CDN screen's controls will do anything. ⛔⛔ **`enabled` above is not the same question and the two disagree on…

Errors this endpoint can return

401 · 403 · 404 · 429

GET /v1/sites/{siteId}/cdn — Zinn Digital® API