Headless CMS
An API-first, headless content management system — for developers.
Define projects and collections with typed fields (string, number, date, asset…), manage content from the workshop, then render it on your site or app through secure per-project API keys. You own the data, we run the infrastructure.
Core concepts
Projects
One workspace per site or app — each project gets its own API key.
Collections
E.g. "articles" or "products" — each collection has a field schema that validates entries.
Entries
Content records: draft while editing, published when ready for the public.
API keys
Read key for public rendering, write key for management — shown only once.
Free tier
1 project · 3 collections per project · 1000 entries per project · 256 KB max per entry.
Field types
| Type | Description |
|---|---|
string | Short text (up to 5000 chars) |
text | Long text, uncapped |
number | Number |
boolean | True/false |
date | ISO date (YYYY-MM-DD) |
asset | Cloud-storage file reference |
Start in minutes
From the workshop «Headless CMS» tab: create a project, then a collection with a field schema, then issue read and write keys.
Create an entry (write key)
curl -s -X POST https://securecelleouatine.com/api/cms/v1/myshop/collections/products/entries \
-H "Authorization: Bearer elcms_WRITE_KEY" \
-H "Content-Type: application/json" \
-d '{"title":"iPhone 15 Pro","price":899,"in_stock":true}'
Query entries (read key)
curl -s "https://securecelleouatine.com/api/cms/v1/myshop/collections/products/entries?filter[in_stock]=true&sort=price:asc&limit=10" \
-H "Authorization: Bearer elcms_READ_KEY"
Publish an entry
curl -s -X POST https://securecelleouatine.com/api/cms/v1/myshop/collections/products/entries/42/publish \
-H "Authorization: Bearer elcms_WRITE_KEY" \
-H "Content-Type: application/json" \
-d '{"status":"published"}'
Authentication
Every content-API request carries the header:
Authorization: Bearer elcms_…Asset fields
An asset field stores a cloud-storage object-key reference (e.g. mybucket/photos/x.jpg). Upload files first through the existing storage API /api/storage (docs at /storage) — the CMS only validates the reference format and never reimplements storage.
Limits & errors
- Quota exceeded (429)
- Invalid data (400) with per-field field_errors
- Missing or invalid key (401)
- Insufficient permission or wrong project (403)
- Entry over 256 KB (413)
Write limit: 60 requests / minute per key.