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:

ParamTypeDescription
idstringStable entry id.
typestringThe content type apiId, e.g. blog_post.
slugstringUnique, URL-safe identifier used in get-by-slug requests.
dataobjectThe field values, keyed by each field’s key. Shape depends on the content type.
publishedAtstring | nullISO timestamp of last publish, or null if never published.
updatedAtstringISO timestamp of the most recent change.

Status lifecycle

An entry is always in one of three statuses:

ParamTypeDescription
draftstatusWork in progress. Invisible to the live site.
publishedstatusLive. The only status the Delivery API returns to a read key.
archivedstatusTaken offline. Not returned by the Delivery API.
// DRAFTS NEVER SHIPThe Delivery API returns 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:

ParamTypeDescription
GETendpoint/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