Docs
Get started

What is Capa

Projects, models, entries, drafts, keys and the CDN, on one page.

View as Markdown

Capa is a hybrid headless CMS. Your team writes and publishes in the admin. Your sites, apps and agents read the content as JSON from a cached API.

This page names the parts. Each one has a page of its own.

The parts

PartWhat it is
ProjectOne site's space: its models, entries, media, keys and members. Nothing crosses from one project to another.
ModelA content type you define, such as Article or Product. Each has a namespace, like article, that the API uses.
FieldOne value on a model: text, a number, a date, an image, a link to another entry.
EntryOne piece of content: one article, one product.
RelationA field that points at another entry, such as an article's author. Your content is a graph, not a set of tables.
VersionEvery save of an entry is kept. One version is live.
KeyThe credential your code reads with. It decides which project you read and what you see.

How content gets to your site

  1. An editor writes an entry in the admin at app.capacms.com and saves it as a draft.
  2. They publish it. That version becomes the live one.
  3. Your site asks for it with a key:
curl "https://cdn.capacms.com/api/entries/article?select=title,slug" \
  -H "x-api-key: $CAPA_KEY" \
  -H "Capa-Version: 2026-10-01"
  1. Capa's CDN answers from cache when it can. Publishing a change purges the cached copies, so the next read gets the new version.

Drafts and the live version

Saving never changes your site. Publishing does.

A production key sees published entries only. A draft key sees drafts too, for preview builds and staging sites. The key decides, never a query parameter. See Drafts and publishing.

Ways to read

SurfaceUse it for
GET /api/entries/{model}REST reads. Choose fields with select, filter, sort, page, and expand relations.
/api/graphqlGraphQL reads, typed from exactly the models your key can read.
@capacms/sdkA TypeScript client for both, with types generated from your models and helpers for Next.js.
/v2/api, /v3/apiThe legacy API that existing sites still use. It keeps working.

These are for reading. Content is written in the admin, or by an AI agent through the Agent API.

Who uses it

  • Developers model the content, make keys and build the site. Start with the Quickstart.
  • Editors write, schedule and publish. Start with Your first day.
  • Agencies run a project per client and hand it over. Start with the Agency playbook.

Words you will see

The admin says project and entry. Parts of the API say tenant and instance for the same things, such as the instance:read scope. See the Glossary.