# Overview

The Elements CMS Online Editor includes a token-authenticated JSON REST API for headless use. Your apps, mobile clients, static builds, and migration scripts can read and write CMS content over HTTPS with a simple `Authorization: Bearer api_...` header.

If you want Claude, Cursor, or another AI assistant to manage the CMS through conversation, use the [MCP Server](/elements-docs/cms/mcp-server/mcp.md) instead.

{% hint style="warning" %}
**Studio / JSON API access is required.** Every `/api/*` route, including public reads, requires an active license for the site's domain with JSON API access enabled. Without one, every request returns `402 Payment Required`.
{% endhint %}

### Start here

* [Installation](/elements-docs/cms/json-rest-api/installation.md) - prerequisites and how to verify the API is reachable.
* [Authentication and API Keys](/elements-docs/cms/json-rest-api/authentication.md) - creating keys in the Online Editor, header format, and how API keys differ from MCP tokens.
* [Quickstart](/elements-docs/cms/json-rest-api/quickstart.md) - a short walkthrough: list, create, update, and delete CMS content.

### Choose your path

| Building this                          | Start here                                                                                                                              |
| -------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| Headless frontend, static site, or SPA | [Headless Frontend](https://github.com/realmacsoftware/rapidweaver-elements-docs-cms/blob/main/json-api/guides/headless-frontend.md)    |
| Mobile or desktop client               | [Authentication](/elements-docs/cms/json-rest-api/authentication.md), then [Items](/elements-docs/cms/json-rest-api/reference/items.md) |
| Bulk migration script                  | [Content Migration](https://github.com/realmacsoftware/rapidweaver-elements-docs-cms/blob/main/json-api/guides/content-migration.md)    |
| Upload integration                     | [Uploads](https://github.com/realmacsoftware/rapidweaver-elements-docs-cms/blob/main/json-api/guides/uploads.md)                        |
| Webhook receiver                       | [Webhooks](https://github.com/realmacsoftware/rapidweaver-elements-docs-cms/blob/main/json-api/guides/webhooks.md)                      |

### Reference

The route reference is split by surface area:

* [Reference Overview](/elements-docs/cms/json-rest-api/reference.md)
* [Collections](/elements-docs/cms/json-rest-api/reference/collections.md)
* [Items](/elements-docs/cms/json-rest-api/reference/items.md)
* [Resources](/elements-docs/cms/json-rest-api/reference/resources.md)
* [Versions](/elements-docs/cms/json-rest-api/reference/versions.md)
* [Settings](/elements-docs/cms/json-rest-api/reference/settings.md)
* [Search and Feeds](/elements-docs/cms/json-rest-api/reference/search-and-feeds.md)

### Errors and versioning

* [Errors](/elements-docs/cms/json-rest-api/errors.md) - status codes, response shapes, and troubleshooting.
* [Changelog](/elements-docs/cms/json-rest-api/changelog.md) - API versioning policy and notable changes.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.realmacsoftware.com/elements-docs/cms/json-rest-api/json-api.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
