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.
| Param | Type | Required | Notes |
|---|---|---|---|
schema_name | string | yes | The document schema, e.g. post. |
| Param | Type | Required | Notes |
|---|---|---|---|
websiteId | uuid | no | Target website; falls back to Host header / config. |
id | uuid | no | Fetch a single document. Wins over ids. |
ids | string | no | Comma-separated UUIDs (batch, max 200). Wins over pagination. |
language | string | no | Merge the translation for this locale over base content. |
limit | integer | no | Page size, default 200, capped at 200. |
offset | integer | no | Rows to skip (only applied with a positive limit). |
api_key | string | no | Alternative to the x-api-key header. |
When neither id nor ids is set, documents are returned ordered by published_at DESC.
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.
curl '{CMS_API_URL}/dataset/post?websiteId=<uuid>&limit=50' \
-H 'x-api-key: <key>'
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