---
title: "Create a merge request"
method: POST
path: "/v2/storage/merge-request"
tags: ["Development Branches"]
---

# Create a merge request

`POST /v2/storage/merge-request`

## Request

- Base URL: `https://connection.keboola.com`
- URL: `https://connection.keboola.com/v2/storage/merge-request`
- Auth: one of:
  - API key in header `X-StorageApi-Token`
  - API key in header `X-KBC-ManageApiToken`
  - HTTP bearer
- TypeScript: <https://skmtc.dev/keboola/apis/keboola-storage-api/docs/v2/storage/merge-request/post.ts> (a function with typed inputs; its response is checked against the schema)

Creates a merge request for a development branch. Only one open merge request per branch is allowed.

## Request body

- MergeRequestCreateRequest
  - `branchFromId` integer, required
  - `branchIntoId` integer, required
  - `title` string, required
  - `description` string, nullable
  - `externalId` string, nullable
  - `autoMergeStrategy` 'immediately' | 'scheduled' | 'none', nullable
  - `autoMergeAt` string, date-time, nullable: Required when autoMergeStrategy is "scheduled"
  - `reviewerIds` integer[]

## Response `201`

Created merge request.

- MergeRequestResponse
  - `id` integer, required
  - `creator` object, required
    - `id` integer, required
    - `name` string, required
  - `title` string, required
  - `description` string, required
  - `state` 'development' | 'in_review' | 'approved' | 'in_merge' | 'published' | 'canceled', required
  - `branches` object, required
    - `branchFromId` integer, nullable, required
    - `branchIntoId` integer, nullable, required
  - `merge` object, required
    - `mergedAt` string, nullable, required: When the merge request was merged, ISO 8601 with a `+hhmm` offset.
    - `mergerId` integer, nullable, required
    - `mergerName` string, required
  - `createdAt` string, required: ISO 8601 with a `+hhmm` offset.
  - `externalId` string, required
  - `autoMergeStrategy` 'immediately' | 'scheduled' | 'none', required
  - `autoMergeAt` string, nullable, required: Scheduled auto-merge time in UTC, ISO 8601 with a `+hhmm` offset.
  - `approvals` object[], required
    - `approverId` string, required
    - `approverName` string, required
    - `createdAt` string, required: ISO 8601 with a `+hhmm` offset.
  - `reviewers` object[], required
    - `id` integer, required
    - `name` string, required
    - `email` string, required
    - `status` 'approved' | 'rejected', nullable, required

## Other responses

- `403`: Returned when the token does not have the required role or the project feature is not enabled.
- `404`: Returned when the specified branch does not exist.
- `422`: Returned when a reviewer ID is not eligible for this project.

---

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