Core Concepts

How Ondros organizes content — familiar if you've used Contentful, with a few extras.

Organizations (accounts)

The account is the top-level tenant: it owns members, roles, billing, SSO configuration, and spaces. Users can belong to several accounts and switch between them; every API token is scoped to exactly one account.

Roles: ORG_ADMIN, SPACE_ADMIN, EDITOR, AUTHOR, VIEWER (plus custom roles), assigned org-wide or per space. Every endpoint checks a capability derived from your role.

Spaces

A space is one project: content model + entries + media + locales + API keys + webhooks. Plans limit how many spaces an account can have.

Environments

Each space contains isolated environments (master, staging, …). Content types and entries are environment-scoped, and cloning an environment copies both — with reference ids remapped — so you can trial a model change on a clone before it touches production.

Content types & fields

A content type is a schema of typed fields:

TypeNotes
text, longtext, richtextstrings; rich text stores HTML
number, boolean, datetimescalars
selectenum of allowed values
media, media_manylinks to media assets
reference, reference_manylinks to entries — the building block of assemblies
jsonarbitrary structured data
slugURL-safe identifier, auto-generated from the display field

Any field can be localized (stored as {locale: value} maps) and carry validations (required, min/max length, pattern, allowed content types for references).

Entries & workflow

Entries hold draft fields and, separately, the frozen published_fields snapshot. The workflow is draft → in_review → published → archived; the delivery API only ever sees the published snapshot. Every save creates a version you can diff and restore from the history panel.

Locales & fallbacks

Locales are first-class rows per space, picked from an ISO catalog. Each locale may define a fallback (e.g. hi-IN → en → default), and the delivery API walks that chain per field. Request locale=* to get raw locale maps.

API keys — delivery vs preview vs management

KeyPrefixGrants
Deliverycms_del_read published content in its space
Previewcms_pre_read drafts + published (adds status info)
Managementcms_mgm_full space CRUD from scripts/CI

Keys are hashed at rest, shown once at creation, and can be restricted to specific environments. User sessions use short-lived JWTs with refresh rotation instead.

Continue with the SDK Reference or the raw API Reference.