---
title: "Create a repository branch"
method: POST
path: "/api/v4/projects/{id}/repository/branches"
tags: ["branches"]
---

# Create a repository branch

`POST /api/v4/projects/{id}/repository/branches`

## Request

- Base URL: `https://gitlab.com`
- URL: `https://gitlab.com/api/v4/projects/{id}/repository/branches`
- Auth: none declared

Creates a branch in the repository.

## Path parameters

- `id` string, required

## Request body

- PostApiV4ProjectsIdRepositoryBranches: Create a repository branch
  - `branch` string, required: The name of the branch
  - `ref` string, required: Create branch from commit sha or existing branch

## Response `201`

Create a repository branch

- APIEntitiesBranch: API_Entities_Branch model
  - `name` string, required
  - `commit` APIEntitiesCommit, required: API_Entities_Commit model
    - `id` string, required
    - `short_id` string, required
    - `created_at` string, date-time, required
    - `parent_ids` string[], required
    - `title` string, required
    - `message` string, required
    - `author_name` string, required
    - `author_email` string, required
    - `authored_date` string, date-time, required
    - `committer_name` string, required
    - `committer_email` string, required
    - `committed_date` string, date-time, required
    - `trailers` object, required
    - `extended_trailers` object, required
    - `web_url` string, required
  - `merged` boolean, required
  - `protected` boolean, required
  - `developers_can_push` boolean, required
  - `developers_can_merge` boolean, required
  - `can_push` boolean, required
  - `default` boolean, required
  - `web_url` string, required

## Other responses

- `400`: Failed to create branch

---

[API](https://skmtc.dev/gitlab/apis/gitlab-api.md) - [All operations](https://skmtc.dev/gitlab/apis/gitlab-api/llms.txt) - [OpenAPI document](https://skmtc.dev/gitlab/apis/gitlab-api/revisions/b234947ef3f2?raw)
