Product · Delivery API
One request from your frontend
The delivery API is read-only REST. A site API key decides which site you read, published content comes back as clean JSON, and drafts never leave through it.
Part of our guide Connect a headless CMS to any frontend.
GET /delivery/v1/entries/recipe?limit=10&sort=-publishedAt&depth=1
Authorization: Bearer cms_live_…
{
"data": [
{
"id": "9f8cfa9c-…",
"slug": "overnight-bagels",
"type": "recipe",
"publishedAt": "2026-10-29T19:10:08Z",
"data": {
"title": "Overnight bagels",
"cover": { "url": "…", "width": 1600, "height": 1067, "alt": "…" }
}
}
],
"nextCursor": null
}Live and preview keys
Live keys read published content; preview keys can also read drafts.
Query what you need
limit, cursor, sort, filter[field], depth 0–2, tree=true for menus.
Cache-friendly
Live reads are cacheable for 60 seconds; preview reads never are.
01Any framework
Next.js, Astro, Nuxt, SvelteKit, a mobile app or a static site generator: it is one GET with a bearer key. Allowed browser origins are set per site.
02Content that's ready to render
Media fields resolve to URL, size and alt text, relationships resolve up to the depth you ask for, and blocks come back inline in order.
Questions
Is there a GraphQL API?
Not today. The delivery API is REST; GraphQL is on the longer-term list.
Can a leaked key read drafts?
A live key can't: asking for drafts with a live key is refused. Keep preview keys on the server.
Back to the guide: Connect a headless CMS to any frontend
Keep exploring