Sorry, no results found for "".

Content Management API > Content Management API Overview

Content Management API Overview

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.

Content Management vs Content Delivery API

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!

Core resources

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.

Some names might be different from what you expect!

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.

Base endpoint

All API requests must be made over HTTPS to the following base endpoint:

https://site-api.datocms.com

Basic headers

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:

Terminal window
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:

Terminal window
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.

Authentication

To use the Content Management API, you will need to authenticate yourself with an API token. Read more about it in the Authentication section.

Machine-readable API specification

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