---
title: "Create a new branch"
method: POST
path: "/groups/{groupId}/artifacts/{artifactId}/branches"
tags: ["Branches"]
---

# Create a new branch

`POST /groups/{groupId}/artifacts/{artifactId}/branches`

Creates a new branch for the artifact.  A new branch consists of metadata and a
list of versions.

This operation can fail for the following reasons:

* No artifact with this `groupId` and `artifactId` exists (HTTP error `404`)
* A branch with the given `branchId` already exists (HTTP error `409`)
* A server error occurred (HTTP error `500`)

## Request body

- CreateBranch
  - `description` string
  - `branchId` string, required — The ID of a single artifact branch.
  - `versions` Version[]

## Response `200`

Branch successfully created.

- BranchMetaData
  - `groupId` string, required — An ID of a single artifact group.
  - `artifactId` string, required — The ID of a single artifact.
  - `branchId` string, required — The ID of a single artifact branch.
  - `createdOn` string, date-time, required
  - `modifiedBy` string, required
  - `modifiedOn` string, date-time, required
  - `owner` string, required
  - `description` string
  - `systemDefined` boolean, required

## Other responses

- `401` — Common response for all operations that can return a `401` error indicating authentication is required.
- `403` — Common response for all operations that can return a `403` error indicating the user is authenticated but not authorized.
- `404` — Common response for all operations that can return a `404` error.
- `409` — Common response used when an input conflicts with existing data.
- `500` — Common response for all operations that can fail with an unexpected server error.

---

[API](https://skmtc.net/apicurio/apis/apicurio-registry-api-v3.md) · [All operations](https://skmtc.net/apicurio/apis/apicurio-registry-api-v3/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/apicurio/apicurio-registry-api-v3/revisions/c39cb56d7dbc/schema)
