# Create a taxonomy

Creates a taxonomy. A taxonomy contains a list of terms that you can associate with content items, making it easier to find those items because of their common properties. For example, a taxonomy for a sporting goods  site can classify items into running clothes, running shoes, and accessories. As part of the taxonomy creation process, you create the associated taxonomy terms. You can add additional terms later if required.

Endpoint: POST /api/v2/cm/branches/{branchId}/taxonomies
Version: v2.0
Security: OAuth2.0

## Security:

  - `OAuth2.0` (unknown)
    oauth2

## Path parameters:

  - `branchId` (string, required)
    The ID of the branch, for example `prod`.

## Request body:

  - `application/json-patch+json, application/json, text/json, application/*+json` (unknown)
    Parameter containing the taxonomy request.

## Request fields (application/json-patch+json):

  - `name` (string, required)

  - `label` (string)

  - `versionTags` (array)

  - `terms` (array)

  - `terms.name` (string, required)

  - `terms.label` (string)

## Response 201:

  - `201` (unknown)
    Successful creation

## Response 201 fields (application/json):

  - `id` (string, required)

  - `name` (string, required)

  - `label` (string)

  - `version` (integer)

  - `versionTags` (array)

  - `terms` (array)

  - `terms.id` (string, required)

  - `terms.name` (string, required)

  - `terms.label` (string)

  - `system` (object, required)

  - `system.status` (string)
    Enum: "Draft", "Published", "Archived"

  - `system.availabilityDate` (string)

  - `system.unavailabilityDate` (string)

  - `system.publishedAt` (string)

  - `system.publishedBy` (string)

  - `system.archivedDate` (string)

  - `system.archivedBy` (string)

  - `system.environment` (string, required)

  - `system.type` (string, required)

  - `system.hash` (string, required)

  - `system.createdAt` (string, required)

  - `system.createdBy` (string, required)

  - `system.updatedAt` (string)

  - `system.updatedBy` (string)

## Response 400:

  - `400` (unknown)
    Request not valid or error during operation

## Response 400 fields (application/json):

  - `type` (string)

  - `title` (string)

  - `status` (integer)

  - `detail` (string)

  - `instance` (string)

## Response 401:

  - `401` (unknown)
    Unauthorized request or invalid access token

## Response 401 fields (application/json):

  - `type` (string)

  - `title` (string)

  - `status` (integer)

  - `detail` (string)

  - `instance` (string)

## Response 403:

  - `403` (unknown)
    Request does not contain required scopes

## Response 403 fields (application/json):

  - `type` (string)

  - `title` (string)

  - `status` (integer)

  - `detail` (string)

  - `instance` (string)

## Response 409:

  - `409` (unknown)
    Conflict

## Response 409 fields (application/json):

  - `type` (string)

  - `title` (string)

  - `status` (integer)

  - `detail` (string)

  - `instance` (string)

## Response 500:

  - `500` (unknown)
    Server-side exception during request execution

