profound-logoProfound CMS
⌘K
Admin
Theme
DocsTutorialBlogPhilosophy
DocsTutorialBlogPhilosophy

Hybrid

Collection of Pages with ComponentsTypes of ComponentsSetup server sent events (SSE) content refetchInstall Profound CMS as a proxyCEL Scripting in Template BuilderProject ScaffoldingMedia Library

Headless

Quick startSplit Screen JSON Component Builder with LLMComponent Zod Pull

REST API

REST API OverviewgetConnect your websitegetGET /routesgetGET /routegetGET /blocksgetGET /blocks/with-cel-cachegetGET /blocks/generatedgetGET /componentsgetGET /components/{name}getGET /dataset/{schema_name}getGET /content-changes (SSE)patchPATCH /dataset/{schema_name}postPOST /translationpatchPATCH /translationsgetGET /usagepostPOST /csvpatchPATCH /csv
All Systems Operational
Powered Byprofound-logo
Theme

GET /dataset/{schema_name}

Fetch published documents for a schema β€” all, one, a batch, or a page β€” as a streamed JSON array.

Fetch published documents for a schema β€” all, a single document, a batch by IDs, or a page β€” streamed as a JSON array. Also available at /schemas/{schema_name}. Image references are resolved to URLs, and when language is set the matching translation is merged over the base content.

Auth: API key. A key is only required when the server sets require_schema_api_key = true; otherwise anonymous reads are allowed.

Path parameters

ParamTypeRequiredNotes
schema_namestringyesThe document schema, e.g. post.

Query parameters

ParamTypeRequiredNotes
websiteIduuidnoTarget website; falls back to Host header / config.
iduuidnoFetch a single document. Wins over ids.
idsstringnoComma-separated UUIDs (batch, max 200). Wins over pagination.
languagestringnoMerge the translation for this locale over base content.
limitintegernoPage size, default 200, capped at 200.
offsetintegernoRows to skip (only applied with a positive limit).
api_keystringnoAlternative to the x-api-key header.

When neither id nor ids is set, documents are returned ordered by published_at DESC.

Response

A streamed JSON array. Each element is the document's published content spread at the top level, plus injected keys _id, _title, and _publishedAt:

[
  {
    "_id": "...",
    "_title": "Getting Started",
    "_publishedAt": "2026-06-23T20:36:31Z",
    "title": "Getting Started",
    "description": "...",
    "content": "..."
  }
]

Content fields win over the injected keys on collision. Image references of the shape { alt, _asset: { id } } get a resolved url injected into _asset.

Example

curl '{CMS_API_URL}/dataset/post?websiteId=<uuid>&limit=50' \
  -H 'x-api-key: <key>'

Errors

  • 400 β€” invalid websiteId, invalid id, or bad ids (empty, more than 200, or an invalid UUID)
  • 401 β€” invalid API key (or missing when required)
  • 500 β€” query failure
Continue Reading
Previousβ€ΉGET /components/{name}NextGET /content-changes (SSE)β€Ί