Skip to content

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.

    View Guide ➔

  • Query Parameters


    Learn how to filter, sort, paginate, and shape the payloads returned by list endpoints.

    View Guide ➔

  • Responses & Errors


    Response envelope, media URL helpers, relations, field types, and the full error code table.

    View Guide ➔

  • CMS SDK Integration


    Ready to pull data into your app? See how the client SDK handles queries, filtering, and caching.

    View SDK Guide ➔