> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://contentful.com/developers/docs/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://contentful.com/_mcp/server. ### Entry object description Entry object consists of the following top-level properties: | Field | Type | Description | | -------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | metadata | Metadata | User-controlled metadata. **Note**: Currently holds `tags` and `concepts` property, which contains lists of [tags](/references/content-management-api/tags) and [taxonomy concepts](/references/content-management-api/taxonomy) assigned to an entry, respectively. | | sys | Sys | Common system properties. For detailed description of properties, please refer to [Common resource attributes](/references/content-management-api/overview#common-resource-attributes). | | fields | Object | Fields that are custom defined by a user through the definition of content types. | > **Info** > > `fields` object in CMA always includes locale. ## Entries collection Entries represent text content in a space, and the data structure of an entry must adhere to a certain content type. [Get all entries of a space](/references/content-management-api/entries/get-all-entries-of-a-space) To fetch specific entries like e.g. entries of a particular content type use [query search parameters](/references/content-management-api/search-parameters). [Create an entry](/references/content-management-api/entries/create-an-entry) Before you can create an entry you need to create and activate a content type as [outlined above](/references/content-management-api/content-types#content-type-collection). When creating a new entry, you need to pass the ID of the desired content type as the `X-Contentful-Content-Type` header and pass the field data as a JSON payload. When using this endpoint, an ID will be automatically generated for the created entry and returned in the response. If [default values](#default-values) are set for some field of the content type, they will be applied at entry creation, if the corresponding field isn't provided in the request body. Default values don't affect entry updates. > **Info** > > New entries are created as drafts. To make new content entries available via the CDA, create and publish them. ## Published Entries collection Use this endpoint to get all published entries of a given space. [Get all published entries of a space](/references/content-management-api/entries/get-all-published-entries-of-a-space) ## Entry [Create an entry with ID](/references/content-management-api/entries/create-an-entry-with-a-specified-id) Use this endpoint to create a new entry with a specified ID. When creating a new entry, you need to pass the ID of the entry's desired content type as the `X-Contentful-Content-Type` header. To update an entry, use the [Create an entry with ID](/references/content-management-api/entries/create-an-entry-with-a-specified-id) endpoint to update a specific entry via its ID. When updating an existing entry, you need to specify the last version of the entry you are updating with `X-Contentful-Version`. You do not need to pass the ID of the entry's content type. [Patch an entry](/references/content-management-api/entries/patch-an-entry) Use this endpoint to update a specific entry via its ID using [JSON Patch](http://jsonpatch.com/) format. When patching an entry, you need to specify the current version of the entry you are updating with `X-Contentful-Version`. > **Info** > > JSON Patch cannot perform operations on non-existing fields. If the field is defined on the Content Type but has not been set on the Entry yet, the API will return a validation error when you try to perform an operation on this field. The accepted workaround is to pass the entire sub-object to the top-most existing field, including locale and initial value. ```js // may result in the validation error if `description` field is undefined: [{"op": "add", "path": "/fields/description/en-US", "value": "initial value"}] // if `description` field is not defined on Entry, but defined in the Content Type, make sure to provide the locale in the payload: [{"op": "add", "path": "/fields/description", "value": {"en-US": "initial value"}}] ``` [Get an entry](/references/content-management-api/entries/get-an-entry) Use this endpoint to fetch an entry with a specified ID. All empty entry fields are omitted from the response, which means that if a field is empty, its key is not present in the response. If the entry has no set fields, the corresponding key is also missing. To update an entry with empty fields, add all keys that need to be updated to the entry object. [Delete an entry](/references/content-management-api/entries/delete-an-entry) ## Entry references Recursively collects references of an entry and their descendants, up to 10 levels deep, and returns them. **Limitations** * Collect all descendants, up to 10 levels deep. * The maximum size of includes array is 1000. [Get entry references](/references/content-management-api/entries/get-entry-references) ## Entry publishing After publishing the entry, it will be available via the Content Delivery API. [Publish an entry](/references/content-management-api/entries/publish-an-entry) [Unpublish an entry](/references/content-management-api/entries/unpublish-an-entry) ## Locale-based publishing > **Info** > > This feature is only available on the [Premium/Enterprise pricing plans](https://www.contentful.com/pricing/). To publish or unpublish entry's fields in certain locales, use the Entry publishing endpoints and pass in the locales in the payload as show in the examples below: Publish entry locales: ``` { "add": { "fields": { "*": [ "en-US", "de-DE" ] } } } ``` Unpublish entry locales: ``` { "remove": { "fields": { "*": [ "en-US", "de-DE" ] } } } ``` ## Entry archiving You can only archive an entry when it's not published. [Archive an entry](/references/content-management-api/entries/archive-an-entry) [Unarchive an entry](/references/content-management-api/entries/unarchive-an-entry) ## API Docs - Entries [Get all entries of a space](https://contentful.com/developers/docs/references/content-management-api/entries/get-all-entries-of-a-space.md) - Entries [Create an entry](https://contentful.com/developers/docs/references/content-management-api/entries/create-an-entry.md) - Entries [Get all published entries of a space](https://contentful.com/developers/docs/references/content-management-api/entries/get-all-published-entries-of-a-space.md) - Entries [Get an entry](https://contentful.com/developers/docs/references/content-management-api/entries/get-an-entry.md) - Entries [Create an entry with a specified ID](https://contentful.com/developers/docs/references/content-management-api/entries/create-an-entry-with-a-specified-id.md) - Entries [Delete an entry](https://contentful.com/developers/docs/references/content-management-api/entries/delete-an-entry.md) - Entries [Patch an entry](https://contentful.com/developers/docs/references/content-management-api/entries/patch-an-entry.md) - Entries [Get entry references](https://contentful.com/developers/docs/references/content-management-api/entries/get-entry-references.md) - Entries [Publish an entry](https://contentful.com/developers/docs/references/content-management-api/entries/publish-an-entry.md) - Entries [Unpublish an entry](https://contentful.com/developers/docs/references/content-management-api/entries/unpublish-an-entry.md) - Entries [Archive an entry](https://contentful.com/developers/docs/references/content-management-api/entries/archive-an-entry.md) - Entries [Unarchive an entry](https://contentful.com/developers/docs/references/content-management-api/entries/unarchive-an-entry.md) ## OpenAPI Specification The raw OpenAPI 3.1 specification for this API is available at: - [OpenAPI JSON](https://contentful.com/developers/docs/openapi.json) - [OpenAPI YAML](https://contentful.com/developers/docs/openapi.yaml)