Errors

Standard HTTP status codes and JSON error bodies.

Errors return `{ "error": "message" }` unless noted. Retry 429 and 5xx with exponential backoff.

401 Unauthorized

Missing Bearer token, invalid key, revoked key, or siteId mismatch

404 Not Found

Slug not found (wrong siteId returns 401, not 404)

429 Too Many Requests

Daily API quota exceeded for your plan

400 Bad Request

Webhook test called without a configured webhook URL

500 Internal Server Error

Unexpected failure — contact support with timestamp and siteId

Validation and auth errors use the same JSON shape for predictable client handling.