Path Parameters
Body Parameters
Body is optional:
- No body: validates current draft/base state.
- With body: validates merged candidate payload.
Body fields match PUT /status-pages/{id}/design/draft.
Send no body to validate the current draft. Sending {} is invalid because at least one field is required when a body is present.
Response
true when no blocking errors were found.
Blocking issues with code, path, message, severity.
Non-blocking issues with code, path, message, severity.
# Validate current draft
curl -X POST "https://kodostatus.com/api/v1/status-pages/<page-id>/design/draft/validate" \
-H "X-API-Key: your_api_key"
# Validate candidate payload
curl -X POST "https://kodostatus.com/api/v1/status-pages/<page-id>/design/draft/validate" \
-H "X-API-Key: your_api_key" \
-H "Content-Type: application/json" \
-d '{ "template_mode": "custom", "template": "<main>{{services}}</main>" }'
{
"valid": true,
"errors": [],
"warnings": []
}
Common Errors
| Status | Code | Meaning |
|---|
400 | INVALID_SCHEMA | Invalid JSON or schema. Response includes details from Zod validation. |
404 | - | Status page not found |
Plan-restricted features (e.g. template_mode: custom on Starter) return PLAN_RESTRICTED errors inside the errors array in a 200 response, not as a 403 status code.