Every document is returned as a flat JSON object. Reserved keys are always present; user content adds additional flat fields. User content cannot override reserved keys — they are silently dropped on write.
| Key | Type | Description |
|---|---|---|
_id | string | Full document id, including drafts. prefix when a draft |
_type | string | Document type (matches schema name) |
_rev | string | 32-char hex; changes on every write |
_draft | boolean | true when _id starts with drafts. |
_publishedId | string | Id with drafts. prefix stripped |
_createdAt | string | ISO 8601 UTC, Z suffix |
_updatedAt | string | ISO 8601 UTC, Z suffix |
{
"_id": "p1",
"_type": "post",
"_rev": "a3f8c2d1e9b04567f2a1c3e5d7890abc",
"_draft": false,
"_publishedId": "p1",
"_createdAt": "2026-04-12T09:11:20Z",
"_updatedAt": "2026-04-12T10:03:45Z",
"title": "Hello World",
"category": "Tech"
}