hosting
POST /v1/sites/{siteId}/redirects
Add a redirect to a site.
Authentification
Envoyez une clé API en tant que jeton du porteur. La clé doit posséder l'autorisation sites.view ; une clé qui ne l'a pas est refusée avec le code 403, et non 404.
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 POST https://api.zinndigital.com/v1/sites/{siteId}/redirects \
-H "Authorization: Bearer zdk_live_…" \
-H "Content-Type: application/json" \
-d '{ "domain": <string>, "path": <string>, "destination": <string> }'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
Adds one rule. ⛔ The vendor endpoint behind this is a whole-set write, so the engine reads the existing rules, appends, and sends the set back — last writer wins. Two people adding a redirect at the same moment is the one case where one of the two additions is lost, and there is no vendor primitive that would prevent it. destination is checked before anything is written to the customer's .htaccess: a protocol-relative //evil.example/ passes a naive "starts with a slash" test and redirects the site's visitors to somebody else's server, so it is refused 422 here. type is a closed set (301, 302) checked in this layer and in the driver, because the platform types it as a free string and an unreviewed token would be written straight into the file. 404 for a site with no managed hosting package. Requires sites.view and sites.panel_access.
Paramètres
| Nom | Type | Obligatoire | Qu'est-ce que c'est |
|---|---|---|---|
siteId (path) | Uuid | Oui | Site ID (UUIDv7). |
Corps de la requête
| Nom | Type | Obligatoire | Qu'est-ce que c'est |
|---|---|---|---|
domain | string | Oui | The domain or alias on the package the rule applies to. |
path | string | Oui | The path being redirected. ⛔ Named path and never source — source is a reserved attribute on every serializer field one layer down, and a field of that name silently reads… |
destination | string | Oui | Where the visitor is sent. A protocol-relative value is refused: it hands the customer's visitors to another server while looking like a local path. |
type | string<301, 302> | Non | The redirect status. 301 is permanent and is cached by browsers and search engines; 302 is temporary. Nothing else is accepted. |
Réponse
| Nom | Type | Obligatoire | Qu'est-ce que c'est |
|---|---|---|---|
id | string | Oui | ⛔ Ours, not the vendor's — this platform mints no identifier for a redirect, so this encodes the domain/type/path triple that addresses one. Opaque, stable across reads, and… |
domain | string | Oui | The domain or alias the rule applies to. |
path | string | Oui | The path being redirected. ⛔ Named path and never source, which is a reserved attribute one layer down and would silently read the wrong value. |
destination | string | Oui | Where the visitor is sent. |
type | string<301, 302> | Oui | The redirect status — permanent or temporary. |
Erreurs que cet point de terminaison peut renvoyer
401 · 403 · 404 · 409 · 422 · 429 · 503