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.