---
title: "Content Management API"
slug: "content-management-api"
abstract: "Introduction to the Content Management API."
---
# Content Management API

The Content Management API is a REST API that you can use to create, manage, and deliver content and media. This includes creating, updating, and deleting content types and content items as well as adding media items. Content types make up the content model while content items contain the data itself. The API definitions are written in JSON.

Before you start working with the Content Management API, here are some important things to note.

> [!tip]
> An [overview of how to use the Content Management API and the Media Upload API](https://www.youtube.com/watch?v=qxXTiVd8rZ8) is available on the Discover Sitecore channel.

> [!note]
> For guidance on the API syntax, see [Syntax](https://doc.sitecore.com/ch-one/en/developers/content-hub-one/content-management-api/syntax.html "Syntax").

## API development environment

You can use the Content Management API with the development tool of your choice such as [Swagger](https://content-api.sitecorecloud.io/swagger/index.html) or Postman.

## Authentication

In the Content Management API, tokens are used for API security. To use the API, generate an OAuth client bearer token and use it [to authenticate](https://doc.sitecore.com/ch-one/en/developers/content-hub-one/content-management-api/authentication.html "Authentication").

## Methods

The [Content Management API](https://content-api.sitecorecloud.io/swagger/index.html) supports the following methods:

| Method | Description |
| --- | --- |
| **GET** | Retrieves a content type, content item, or media item using the ID. Retrieves a list of all content types, content items, or media items. |
| **POST** | Creates a content type, content item, or media item. Publishes content items and media items. |
| **PUT** | Updates a content type, content item, or media item. |
| **DELETE** | Deletes content type, content item, or media item. |

## Endpoints

In the Content Management API, the following endpoints are available:

| Endpoint | Base URL | Description |
| --- | --- | --- |
| Content management | `https://content-api.sitecorecloud.io/` | This endpoint is used when creating and editing content types, content items, and media items. |
| Media upload | `https://mms-upload.sitecorecloud.io` | This endpoint is used when uploading media assets. |
| Media delivery | `https://mms-delivery.sitecorecloud.io` | This endpoint is used when retrieving media assets. |

Endpoints are categorized as follows:

- Content types
- Content items
- Media items
- [API keys](https://doc.sitecore.com/ch-one/en/developers/content-hub-one/content-management-api/api-keys.html "API keys")
- Users
- [Statistics](https://doc.sitecore.com/ch-one/en/developers/content-hub-one/content-management-api/statistics.html "Statistics")
- Taxonomies
- [Locales](https://doc.sitecore.com/ch-one/en/developers/content-hub-one/content-management-api/locales.html "Locales")

Endpoints have the following structure:

```http
https://<BASE_URL>/api/<DATA_TYPE>/<VERSION>/<ENDPOINT_NAME>/<PATH_PARAMETER>?<QUERY_PARAMETER>
```

Where:

- <`BASE_URL`\> is the hostname of the Content Hub ONE application backend, which is part of the endpoint.
- <`DATA_TYPE`\> is either `content` or `media`.
- <`VERSION`\> is the version of the Content Management API.
- <`ENDPOINT_NAME`\> is the name of the endpoint that covers one specific domain.
- <`PATH_PARAMETER`\> includes additional parameters from path.
- <`QUERY_PARAMETER`\> includes additional parameters from query string.

## Request headers

The following header is used to track content versions.

```shell
x-ch1-version
```

## Response headers

All responses contain the following response headers:

```shell
access-control-allow-origin: *
 api-supported-versions: 1.0
 cache-control: no-store
 cf-cache-status: DYNAMIC
 cf-ray: 730eb8ff88d13ff1-YYZ
 content-encoding: gzip
 content-type: application/json; charset=utf-8
 date: Tue,26 Jul 2022 `17:05`:53 GMT
 expect-ct: max-age=604800,report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
 server: cloudflare
 strict-transport-security: max-age=15724800; includeSubDomains
```

## API rate limits

The following response headers show the allowed limits, the number of available requests, and the time remaining until the limits are reached.

| Header | Description |
| --- | --- |
| `via` | The software used for API rate limits, including the version. |
| `x-kong-proxy-latency` | Proxy latency or overhead. |
| `x-kong-upstream-latency` | Upstream latency or overhead. |
| `x-ratelimit-limit-second` | The maximum number of requests per second. |
| `x-ratelimit-remaining-second` | The number of requests per second remaining. |

> [!note]
> Content Hub ONE supports 10 requests per second per tenant.

## Status codes

The following table lists the status codes that you might see after executing an operation:

| Status code | Message | Description |
| --- | --- | --- |
| `200` | `OK` | Content item or media item was successfully retrieved or updated; or content type was successfully updated. |
| `201` | `Created` | Content type, content item, or media item was successfully created. |
| `204` | `No content` | Content type, content item, or media item was successfully deleted. |
| `400` | `Bad request` | Invalid query string, invalid object or missing content type in request body, or invalid request. |
| `401` | `Unauthorized` | Invalid access token. |
| `403` | `Forbidden` | Request does not contain required scopes. |
| `404` | `Not Found` | Content type, content item, or media item was not found using the specified ID. |
| `500` | `Internal server error` | Server-side exception during request execution. |