hosting

POST /v1/sites/{siteId}/error-pages

Add or replace the custom page for one status code.

All hosting endpoints

Authentication

Send an API key as a bearer token. The key must carry the sites.panel_access 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 POST https://api.zinndigital.com/v1/sites/{siteId}/error-pages \
  -H "Authorization: Bearer zdk_live_…" \
  -H "Content-Type: application/json" \
  -d '{ "status": <integer>, "value": <string> }'

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

Sends **one** rule; the others are preserved. ⛔ The vendor endpoint underneath is a **whole-set** write — it replaces every rule on every call — so the engine reads the current set, applies this one change and sends the whole thing back. Two edits made inside one vendor round trip are therefore last-writer-wins, which cannot be fixed from our side: there is no per-rule identifier and no conditional write. A client should re-read after a write rather than assume its own optimistic copy is current. Only `400`–`599` may carry a custom page: a rule on any other code would replace a working response. Requires `sites.panel_access`.

Parameters

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

Request body

NameTypeRequiredWhat it is
statusintegerYes
valuestringYes

Response

NameTypeRequiredWhat it is
dataSiteErrorPage[]Yes

Errors this endpoint can return

401 · 403 · 404 · 422 · 429 · 503