CMS API
The CMS API is a read-only HTTP interface that exposes the content you publish from the AppAmbit dashboard to your mobile, web, or desktop applications. It is optimised for low latency reads, automatic caching, and predictable billing — most of your traffic will never count against your plan's request meter.
Prefer the SDK?
The easiest way to consume the CMS API is through the AppAmbit SDK, which handles authentication, caching, filtering, and pagination for you. See the CMS SDK Guide for platform-specific code samples. This section is aimed at integrators who want to call the HTTP endpoints directly.
Base URL
All CMS API endpoints are versioned and served from:
https://cms.appambit.com/api/v1
Every endpoint in this section is relative to that base URL.
Authentication
The CMS API does not use the Bearer-token flow described in Authentication. It uses a single header that identifies your tenant:
| Header | Value | Purpose |
|---|---|---|
X-App-Key |
{YOUR_APP_KEY} |
Identifies which application's published content you want to read. |
Your APP_KEY is the same one you use everywhere else in AppAmbit — you can find it in the App Settings page of the dashboard.
Why no Bearer token?
The CMS API returns only the content that has been explicitly published for a given application. Because that content is already public to every consumer of your app, there is no additional per-user authorization step — knowing the app key is enough.
Request Metering
This is the single most important concept for controlling your CMS costs. Not every API call counts against your plan's request meter.
| Request type | Counted toward your plan? |
|---|---|
| Served from our pre-computed cache | No — included in your plan |
| Served dynamically (cache miss or inherently dynamic, like search) | Yes |
Whenever you publish content from the dashboard, AppAmbit pre-computes the most common read patterns and stores the results in an edge cache. As long as a request can be answered from that cache, it is served instantly and is not counted against your plan.
What is pre-computed (free)
The following requests are normally served from cache and do not count against your plan:
- Listing all content types (
GET /_schemas) - Reading a single content type schema (
GET /_schemas/{contentType}) - Listing entries of a content type, with pagination (
GET /{contentType}?page=N) - Fetching a single entry by its UUID (
GET /{contentType}/{uuid}) - Simple equality filters on fields marked filterable (
GET /{contentType}?filter[category]=tech) - Single-field sorts that have been enabled on the content type
What is always dynamic (counted)
Some request shapes can never be pre-computed ahead of time and always count against your plan:
- Full-text search (
GET /{contentType}/search?q=...) — every search query is unique, so results can't be cached ahead of time. - Operator filters such as
gte,lt,in,contains— served from our live data store. - Combined filters (two or more filters at once) — the combination cannot be pre-computed.
- Population of related entries on the show endpoint (
?populate=...).
Rule of thumb
- If you know the field and value you're looking for → use
filter[field]=value. Pre-computed → free. - If the user is typing into a search box → use
search?q=.... Counted. - If you already have a UUID → use
GET /{contentType}/{uuid}. Always free.
Quick Start
1. Discover your content types
GET /api/v1/_schemas
GET /api/v1/_schemas HTTP/1.1
Host: cms.appambit.com
X-App-Key: {YOUR_APP_KEY}
This returns every content type you have published, along with the fields, filter options, and sort options each one exposes.
2. Read entries of a content type
GET /api/v1/{contentType}
GET /api/v1/blog_posts?filter[category]=tech&sort=-published_at&per_page=10
X-App-Key: {YOUR_APP_KEY}
3. Fetch a single entry when you already have its id
GET /api/v1/{contentType}/{uuid}
GET /api/v1/blog_posts/550e8400-e29b-41d4-a716-446655440000
X-App-Key: {YOUR_APP_KEY}
What's Next
-
Endpoints
The full endpoint reference with request and response examples for schemas, list, show, and search.
-
Query Parameters
Learn how to filter, sort, paginate, and shape the payloads returned by list endpoints.
-
Responses & Errors
Response envelope, media URL helpers, relations, field types, and the full error code table.
-
CMS SDK Integration
Ready to pull data into your app? See how the client SDK handles queries, filtering, and caching.