# Content types

A content type defines the content structure, or schema, for a page type and is tailored to a particular use case. It contains various field types, such as rich text, date and time, boolean, number, reference, and so on. For example, a product catalog typically includes individual pages for each product, with each page displaying a product image, a title, a short description, a price, and an inventory counter. The Product content type that supports this structure includes:
- A short text field (title)
- A rich text field (short description)
- A number field (price)
- A number field (inventory counter)
- A media fragment (product image)
- A reference field for a detailed specification PDF

Private fields are used by the Delivery API and are available in preview. They are not available in the delivery schema.
A content type can include a fragment. Fragments let you:
- Extend content types by reusing fields. This is useful when there are  multiple content types that use a similar set of fields. This lets you manage the common field set centrally.
- Define a common schema for a set of fields that can be used in multiple content types and which updates dynamically when changes are made.
- Initiate an action. For example, the `XMCMedia` content type includes a media fragment that retrieves media using its file ID from a defined URI and path.
- In GraphQL, an interface is created for every fragment. For example, for a fragment called `Page`, each specific page type can have its own fields. The `Page` interface provides a way to query all pages collectively.

When you change a fragment, you are changing the schema. When the fragment is published, your changes will be applied everywhere the fragment is used.

 - [DELETE /api/v2/cm/branches/{branchId}/content-types/{contentTypeId}](https://api-docs.sitecore.com/sai/xm-cloud-content/content-management-api/content-types/deletecontenttype.md): Deletes a content type that is no longer needed. The content type must have a `DRAFT` status and no linked content items.
 - [GET /api/v2/cm/branches/{branchId}/content-types/{contentTypeId}](https://api-docs.sitecore.com/sai/xm-cloud-content/content-management-api/content-types/contenttypebyidentifier.md): Retrieves a content type from a specific branch using its ID.
 - [PATCH /api/v2/cm/branches/{branchId}/content-types/{contentTypeId}](https://api-docs.sitecore.com/sai/xm-cloud-content/content-management-api/content-types/patchcontenttype.md): Partially updates the content type, replacing only those fields provided in the request.
 - [POST /api/v2/cm/branches/{branchId}/content-types/{contentTypeId}](https://api-docs.sitecore.com/sai/xm-cloud-content/content-management-api/content-types/addnewversioncontenttype.md): Creates a copy of a content type with the same ID as the original, but the version number is updated (for example, from `1` to `2`). You can work on the versions independently. During this process you
 - [PUT /api/v2/cm/branches/{branchId}/content-types/{contentTypeId}](https://api-docs.sitecore.com/sai/xm-cloud-content/content-management-api/content-types/updatecontenttype.md): Updates a content type with a specific ID. The Update method replaces the existing content type with the request body. It does not merge content. Therefore, your request must include the new version
 - [GET /api/v2/cm/branches/{branchId}/content-types](https://api-docs.sitecore.com/sai/xm-cloud-content/content-management-api/content-types/contenttypeslist.md): Lists all defined content types. If you don't specify any filtering parameters, you will retrieve all available content types.
 - [POST /api/v2/cm/branches/{branchId}/content-types](https://api-docs.sitecore.com/sai/xm-cloud-content/content-management-api/content-types/addcontenttype.md): Creates a content type to structure content for a particular purpose.
 - [GET /api/v2/cm/branches/{branchId}/content-types/{contentTypeId}/versions](https://api-docs.sitecore.com/sai/xm-cloud-content/content-management-api/content-types/contenttypeversionsstatusesbyid.md): Lists the versions and statuses of a content type from a specific branch.
 - [POST /api/v2/cm/branches/{branchId}/content-types/{contentTypeId}/copy](https://api-docs.sitecore.com/sai/xm-cloud-content/content-management-api/content-types/copycontenttype.md): Creates a copy of a content type with the same ID as the original, but the version number is updated (for example, from `1` to `2`). You can work on the versions independently. During this process you
