Skip to main content
A schema is a JSON Schema file at .kiwi/schemas/<type>.json. When enforcement is on, every markdown write is checked against the schema named by the page’s discriminator field (type by default), and invalid writes return 422. See Schemas for how validation works.
.kiwi/config.toml

List schemas

Return the type names that have a schema file.
Returns a JSON array of type names. The array is empty when .kiwi/schemas/ does not exist.

Get a schema

Return one schema document.
string
required
Type name. Letters, digits, -, and _ only.
Returns 400 for an invalid type name and 404 if no schema exists. The response is the stored JSON Schema.

Save a schema

Create or replace a schema. The body is the JSON Schema document. The validator reloads right away, so the next write uses the new schema.
string
required
Type name. Letters, digits, -, and _ only.
Returns 400 for an invalid type name or a body that isn’t JSON.
string
Always ok.
string
Type name saved.
Schema files live under .kiwi/ and are written directly, not through the write pipeline, so saving a schema does not create a git commit.

Schemas concepts

Discriminators, enforcement levels, and error format.

Files

Writes that schemas validate.
Last modified on October 19, 2026