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.

    The Content Management API also includes many GET requests. However, it is highly recommended that you use the GraphQL Content Delivery API to deliver content to your public-facing web or mobile projects, as it is 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.

    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:

    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.

    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