# 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": []
}
Status Page Design
Validate Design Draft
Validate current draft or a candidate payload against draft rules
POST
/
status-pages
/
{id}
/
design
/
draft
/
validate
# 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": []
}
Path Parameters
string
required
Status page ID.
Body Parameters
Body is optional:- No body: validates current draft/base state.
- With body: validates merged candidate payload.
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
boolean
true when no blocking errors were found.array
Blocking issues with
code, path, message, severity.array
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.