hosting
GET /v1/sites/{siteId}/certificate
The TLS certificate serving this site.
Authentification
Envoyez une clé d'API en tant que jeton du porteur (bearer token). Cet endpoint n'indique pas de permission spécifique dans la spécification, attribuez donc à votre clé le minimum requis et vérifiez la réponse plutôt que de faire des suppositions.
Cet endpoint ne prend aucun identifiant d'organisation. Votre clé identifie déjà l'organisation à laquelle elle appartient, et la réponse y est limitée.
Essayer
Remplacez tout ce qui se trouve entre crochets par vos propres valeurs, et le espace réservé à la clé par une clé de votre tableau de bord.
curl -X GET https://api.zinndigital.com/v1/sites/{siteId}/certificate \
-H "Authorization: Bearer zdk_live_…"Connecté ? La console d'API de votre tableau de bord saisit votre véritable ID d'organisation ainsi que votre propre clé, et exécute la requête sur l'API de production afin que vous puissiez voir la réponse réelle. Ouvrir ce point de terminaison dans la console API
Détails
Whether this site is served over HTTPS on its own name, and if not, why not. Sites on our own fleet are served a per-vhost certificate the platform obtains itself by ACME (owner ruling 2026-09-07, docs/537), because not every site sits behind a CDN and a site with DNS pointed straight at our fleet needs a publicly-trusted certificate of its own. ⛔ state is never simply "no". issued / pending / failed with a reason are three different facts, and the failure directions are asymmetric: behind Cloudflare Full (strict) an uncovered host answers HTTP 526 — a hard outage — while behind plain Full it is a silent downgrade. A payload that could only say "no" would leave a customer looking at a broken site with no explanation. ⛔ covered and serving are DIFFERENT and both are returned. covered means a CA signed it; serving means the box actually presents it. A certificate that exists and is not installed serves nobody, and a screen built from covered alone would report a healthy site to a customer whose visitors see a name-mismatch warning. scope is shared when the site is covered by one platform certificate for a registrable domain we own — the ordinary case for a preview hostname, where a single wildcard covers every site on that domain rather than one certificate each.
Paramètres
| Nom | Type | Obligatoire | Qu'est-ce que c'est |
|---|---|---|---|
siteId (path) | Uuid | Oui | Site ID (UUIDv7). |
Réponse
| Nom | Type | Obligatoire | Qu'est-ce que c'est |
|---|---|---|---|
site_id | string | Oui | — |
state | string<none, pending, issued, failed, retired> | Oui | ⛔ none means nothing has been attempted, which is a DIFFERENT fact from failed. Collapsing them would leave a screen unable to tell a new site from a broken one. |
scope | string<site, shared> | Oui | shared when one platform certificate for a registrable domain we own covers this site — the ordinary case for a preview hostname. |
shared_suffix | string | Non | The registrable domain a shared certificate covers. Empty when scope is site. |
hostnames | string[] | Oui | Read back off the ISSUED artefact, never from what was requested — a CA that trimmed a name must not be reported as covering it. |
covered | boolean | Oui | A certificate authority has signed a certificate for this site. |
serving | boolean | Oui | ⛔ The box actually presents it. DIFFERENT from covered: a certificate that exists in Vault and is not installed serves nobody. |
failure_reason | string | Non | — |
failure_detail | string | Non | — |
not_after | string | Non | — |
installed_at | string | Non | — |
environment | string | Non | ⛔ Travels because a staging certificate is trusted by NO browser. A screen showing one as simply "issued" would report green for a site every visitor sees a warning on. |
wildcard_covered | boolean | Non | Whether subdomains are covered. A wildcard needs DNS-01, which needs a TXT record in the zone, so a domain whose DNS we do not manage cannot have one. |
Erreurs que cet point de terminaison peut renvoyer
401 · 403 · 404