This document is a detailed reference to DatoCMS's Content Management API.
The Content Management API (CMA) is used to manage the content of your DatoCMS projects. This includes creating, updating, deleting, and fetching content of your projects.
If you want to programmatically create or update your schema/content, this is the API to use, while if you need to deliver content to your public-facing web or mobile projects, it is highly recommended that you use the GraphQL Content Delivery API instead, as it is under CDN and heavily optimized for fast response times!
The Content Management API features 40+ resources, for a total of 150+ endpoints. Check the following sections of this documentation for a complete reference. For each single resource you will find:
The resource object and its fields, attributes and relationships;
The allowed CRUD operations you can perform on the related endpoint with basic examples of the request/response format.
Due to historical reasons and backward compatibility, the name of some specific resources in the Content Management API is different from what you'll find in the interface of the product.
Specifically, Models are called Item Types, Records are called Items, and Assets are called Uploads.
All API requests must be made over HTTPS to the following base endpoint:
https://site-api.datocms.com
The API follows the JSON:API specification and provides an uniform and coherent way of working with every resource.
To perform an HTTP request with a body, you need to pass an Accept: application/json
header:
curl \-H 'Accept: application/json' \-H 'X-Api-Version: 3' \https://site-api.datocms.com/site
To perform an HTTP request with a body, you need to pass a Content-Type: application/vnd.api+json
header:
curl \-X PUT-H 'Accept: application/json' \-H 'X-Api-Version: 3' \-H 'Content-Type: application/vnd.api+json' \-d '{ ... }' \https://site-api.datocms.com/site
The header Content-Type: application/json
is also valid, but not suggested.
To use the Content Management API, you will need to authenticate yourself with an API token. Read more about it in the Authentication section.
We expose a machine-readable JSON schema that describes what resources are available via the API, what their URLs are, how they are represented and what operations they support. This schema follows the JSON Schema format, combined with the draft Validation and Hypertext extensions.
The latest version of the API schema will always be available at the following URL:
https://site-api.datocms.com/docs/site-api-hyperschema.json