Content & Entries
An entry is one record of a content type — one blog post, one product. This page covers the fields every entry has, how status works, slugs, and version history.
Entry anatomy
Every entry returned by the Delivery API has these system fields, plus its typed data:
| Param | Type | Description |
|---|---|---|
| id | string | Stable entry id. |
| type | string | The content type apiId, e.g. blog_post. |
| slug | string | Unique, URL-safe identifier used in get-by-slug requests. |
| data | object | The field values, keyed by each field’s key. Shape depends on the content type. |
| publishedAt | string | null | ISO timestamp of last publish, or null if never published. |
| updatedAt | string | ISO timestamp of the most recent change. |
Status lifecycle
An entry is always in one of three statuses:
| Param | Type | Description |
|---|---|---|
| draft | status | Work in progress. Invisible to the live site. |
| published | status | Live. The only status the Delivery API returns to a read key. |
| archived | status | Taken offline. Not returned by the Delivery API. |
published entries only. Drafts are reachable solely through a preview key — never on your production site.Slugs
Each entry has a system slug that is unique within its content type and project. It must be kebab-case (letters, numbers, hyphens). You read a single entry by slug:
| Param | Type | Description |
|---|---|---|
| GET | endpoint | /v1/projects/{projectId}/content/{apiId}/{slug} — returns one published entry. |
Two published entries of the same type cannot share a slug; saving a duplicate returns 409 CONFLICT.
Revisions
Wriven keeps a revision every time an entry is saved or published. You can browse and restore previous versions from the editor in the dashboard. Revisions are an authoring concern — they are part of the Management API, not the public Delivery API, so they never appear in what your site reads.
Rich Text