Enable enforcement with [schema] enforce = true in config. See Schema Validation for the full concept.
List schema types
curl 'http://localhost:3333/api/kiwi/schemas'
["runbook", "concept", "episode"]
Get a schema
GET /api/kiwi/schemas/:type
Schema type name (matches the frontmatter type field).
curl 'http://localhost:3333/api/kiwi/schemas/runbook'
Returns the raw JSON Schema document.
Create or update a schema
PUT /api/kiwi/schemas/:type
The request body is a raw JSON Schema document.
curl -X PUT 'http://localhost:3333/api/kiwi/schemas/runbook' \
-H "Content-Type: application/json" \
-d '{
"type": "object",
"required": ["title", "status", "owner"],
"properties": {
"title": {"type": "string"},
"status": {"type": "string", "enum": ["draft", "reviewed", "verified"]},
"owner": {"type": "string"}
}
}'
When [schema] enforce = true, schema changes trigger a reload so subsequent writes use the updated schema immediately.