hosting
GET /v1/sites/{siteId}/cdn/profile
Read a site's recommended CDN profile and where the zone has drifted from it.
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/profile \
-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
Every site is given a recommended edge configuration at provision time — settings plus ordered cache rules — chosen by product line and built entirely from **free** provider features. This reads what the provider currently has and names the difference. `drifted` lists the knobs whose live value differs from the recommendation, and includes `cache_rules` when a recommended rule is missing at the provider. A read **never** re-applies anything: a setting a customer or operator deliberately changed in the provider's own dashboard is shown as drift rather than silently overwritten, and putting it back is an explicit `POST`. `settings_supported` and `cache_rules_supported` are separate booleans because a provider may express one and not the other. A site that is not served through our CDN is a `404`. Requires `sites.view`.
Parameters
| Name | Type | Required | What it is |
|---|---|---|---|
siteId (path) | Uuid | Yes | Site ID (UUIDv7). |
Response
| Name | Type | Required | What it is |
|---|---|---|---|
site_id | Uuid | Yes | UUIDv7 identifier — sortable by creation time (docs/02 §8). |
profile | string | Yes | Which recommended profile applies to this site, chosen by product line — `footprint_free` caches HTML aggressively, `mainstream` leaves that decision to the origin. |
settings_supported | boolean | Yes | Whether this site's CDN can express the profile's zone settings. |
cache_rules_supported | boolean | Yes | Whether this site's CDN can express per-request cache rules. Separate from `settings_supported` because a provider may offer one and not the other. |
drifted | string[] | Yes | Setting keys whose live value differs from the recommendation, plus `cache_rules` when a recommended rule is missing at the provider. Empty means the zone matches what we recomm… |
settings | SiteCdnProfileSetting[] | Yes | — |
rules | SiteCdnProfileRule[] | Yes | The recommended rules, in evaluation order. Bypasses come first. |
managed | boolean | Yes | Whether the customer has asked us to keep this profile applied. `false` — the default — means drift is reported and nothing is corrected without a person pressing the button. `t… |
Errors this endpoint can return
401 · 403 · 404 · 429 · 503