# GitLab Merge requests API

**Canonical:** https://apis.io/apis/gitlab/gitlab-merge-requests-api/  
**Provider:** GitLab — https://apis.io/providers/gitlab/  
**Base URL:** https://gitlab.com/api/v4  
**Documentation:** https://docs.gitlab.com/api/rest/

GitLab Merge requests API is one of 189 APIs that [GitLab](https://apis.io/providers/gitlab/) publishes on the [APIs.io](https://apis.io/) network, described by a machine-readable OpenAPI specification and an AsyncAPI event-driven specification. This API exposes 16 JSON Schema definitions. Tagged areas include Merge Requests. The published artifact set on APIs.io includes an OpenAPI specification, API documentation, authentication docs, an API reference, rate-limit docs, an AsyncAPI specification, and 16 JSON Schemas.

Use this API to manage [merge requests](https://docs.gitlab.com/user/project/merge_requests/) in a project, and to list the merge requests across a group or an entire instance. You can: - Automate any part of the code review process. - Connect code changes to external tools. - Send merge request information to non-GitLab systems in your preferred format. - Update, approve, merge, or block merge requests based on data from external systems. - Add [commits from previous merge requests](https://docs.gitlab.com/user/project/merge_requests/commits/#show-commits-from-previous-merge-requests) to a merge request for more context. All API calls to non-public information require authentication.

## Operations (38)

| Method | Path | Summary |
|---|---|---|
| GET | `/api/v4/projects/{id}/merge_requests/{merge_request_iid}/blocks` | List all dependencies for a merge request |
| POST | `/api/v4/projects/{id}/merge_requests/{merge_request_iid}/blocks` | Create a merge request dependency |
| GET | `/api/v4/projects/{id}/merge_requests/{merge_request_iid}/blocks/{block_id}` | Retrieve a merge request dependency |
| DELETE | `/api/v4/projects/{id}/merge_requests/{merge_request_iid}/blocks/{block_id}` | Remove a merge request dependency |
| GET | `/api/v4/projects/{id}/merge_requests/{merge_request_iid}/blockees` | Retrieve blocked merge requests |
| GET | `/api/v4/projects/{id}/merge_requests/{merge_request_iid}/versions` | Retrieve merge request diff versions |
| GET | `/api/v4/projects/{id}/merge_requests/{merge_request_iid}/versions/{version_id}` | Retrieve a merge request diff version |
| POST | `/api/v4/projects/{id}/create_ci_config` | Create a CI configuration merge request |
| GET | `/api/v4/merge_requests` | List all merge requests |
| GET | `/api/v4/groups/{id}/merge_requests` | List all group merge requests |
| POST | `/api/v4/projects/{id}/merge_requests/{merge_request_iid}/time_estimate` | Set the estimated time for a merge request |
| POST | `/api/v4/projects/{id}/merge_requests/{merge_request_iid}/reset_time_estimate` | Reset the estimated time for a merge request |
| POST | `/api/v4/projects/{id}/merge_requests/{merge_request_iid}/add_spent_time` | Add spent time for a merge request |
| POST | `/api/v4/projects/{id}/merge_requests/{merge_request_iid}/reset_spent_time` | Reset spent time for a merge request |
| GET | `/api/v4/projects/{id}/merge_requests/{merge_request_iid}/time_stats` | Retrieve time tracking stats for a merge request |
| GET | `/api/v4/projects/{id}/merge_requests` | List all project merge requests |
| POST | `/api/v4/projects/{id}/merge_requests` | Create a merge request |
| DELETE | `/api/v4/projects/{id}/merge_requests/{merge_request_iid}` | Delete a merge request |
| GET | `/api/v4/projects/{id}/merge_requests/{merge_request_iid}` | Retrieve a merge request |
| PUT | `/api/v4/projects/{id}/merge_requests/{merge_request_iid}` | Update a merge request |
| GET | `/api/v4/projects/{id}/merge_requests/{merge_request_iid}/participants` | Retrieve merge request participants |
| GET | `/api/v4/projects/{id}/merge_requests/{merge_request_iid}/reviewers` | Retrieve merge request reviewers |
| GET | `/api/v4/projects/{id}/merge_requests/{merge_request_iid}/commits` | Retrieve merge request commits |
| GET | `/api/v4/projects/{id}/merge_requests/{merge_request_iid}/context_commits` | List all context commits for a merge request |
| POST | `/api/v4/projects/{id}/merge_requests/{merge_request_iid}/context_commits` | Create context commits for a merge request |
| DELETE | `/api/v4/projects/{id}/merge_requests/{merge_request_iid}/context_commits` | Delete context commits from a merge request |
| GET | `/api/v4/projects/{id}/merge_requests/{merge_request_iid}/changes` | Retrieve merge request changes |
| GET | `/api/v4/projects/{id}/merge_requests/{merge_request_iid}/diffs` | List all merge request diffs |
| GET | `/api/v4/projects/{id}/merge_requests/{merge_request_iid}/raw_diffs` | Retrieve merge request raw diffs |
| GET | `/api/v4/projects/{id}/merge_requests/{merge_request_iid}/pipelines` | List all merge request pipelines |
| POST | `/api/v4/projects/{id}/merge_requests/{merge_request_iid}/pipelines` | Create a merge request pipeline |
| PUT | `/api/v4/projects/{id}/merge_requests/{merge_request_iid}/merge` | Merge a merge request |
| GET | `/api/v4/projects/{id}/merge_requests/{merge_request_iid}/merge_ref` | Merge to default merge ref path |
| POST | `/api/v4/projects/{id}/merge_requests/{merge_request_iid}/cancel_merge_when_pipeline_succeeds` | Cancel merge when pipeline succeeds |
| POST | `/api/v4/projects/{id}/merge_requests/{merge_request_iid}/cancel_auto_merge` | Cancel auto merge |
| PUT | `/api/v4/projects/{id}/merge_requests/{merge_request_iid}/rebase` | Rebase a merge request |
| GET | `/api/v4/projects/{id}/merge_requests/{merge_request_iid}/closes_issues` | List all issues that close on merge |
| GET | `/api/v4/projects/{id}/merge_requests/{merge_request_iid}/related_issues` | List all issues related to the merge request |

## Machine-readable artifacts (65)

- **OpenAPI** — https://artifacts.apis.io/gitlab/openapi/gitlab-merge-requests-api-openapi.yml
- **Documentation** — https://docs.gitlab.com/api/openapi/
- **Documentation** — https://docs.gitlab.com/api/issues/
- **Authentication** — https://docs.gitlab.com/api/rest/authentication/
- **JSONSchema** — https://artifacts.apis.io/gitlab/json-schema/gitlab-put-api-v4-application-settings-request-schema.json
- **JSONSchema** — https://artifacts.apis.io/gitlab/json-schema/gitlab-apientities-geo-node-status-schema.json
- **JSONSchema** — https://artifacts.apis.io/gitlab/json-schema/gitlab-apientities-geo-site-status-schema.json
- **JSONSchema** — https://artifacts.apis.io/gitlab/json-schema/gitlab-apientities-application-setting-schema.json
- **JSONSchema** — https://artifacts.apis.io/gitlab/json-schema/gitlab-post-api-v4-geo-status-request-schema.json
- **JSONSchema** — https://artifacts.apis.io/gitlab/json-schema/gitlab-put-api-v4-projects-id-request-schema.json
- **Documentation** — https://docs.gitlab.com/api/merge_requests/
- **Documentation** — https://docs.gitlab.com/api/pipelines/
- **Documentation** — https://docs.gitlab.com/api/jobs/
- **Documentation** — https://docs.gitlab.com/api/runners/
- **Documentation** — https://docs.gitlab.com/api/users/
- **Documentation** — https://docs.gitlab.com/api/repositories/
- **Documentation** — https://docs.gitlab.com/api/commits/
- **Documentation** — https://docs.gitlab.com/api/branches/
- **Documentation** — https://docs.gitlab.com/api/tags/
- **Documentation** — https://docs.gitlab.com/api/releases/
- **Documentation** — https://docs.gitlab.com/api/environments/
- **Documentation** — https://docs.gitlab.com/api/deployments/
- **Documentation** — https://docs.gitlab.com/api/pipeline_schedules/
- **Documentation** — https://docs.gitlab.com/api/labels/
- **Documentation** — https://docs.gitlab.com/api/milestones/
- **Documentation** — https://docs.gitlab.com/api/notes/
- **Documentation** — https://docs.gitlab.com/api/snippets/
- **Documentation** — https://docs.gitlab.com/api/packages/
- **Documentation** — https://docs.gitlab.com/api/container_registry/
- **Documentation** — https://docs.gitlab.com/api/vulnerabilities/
- **Documentation** — https://docs.gitlab.com/api/deploy_keys/
- **Documentation** — https://docs.gitlab.com/api/protected_branches/
- **Documentation** — https://docs.gitlab.com/api/wikis/
- **Documentation** — https://docs.gitlab.com/api/events/
- **Documentation** — https://docs.gitlab.com/api/search/
- **Documentation** — https://docs.gitlab.com/api/namespaces/
- **Documentation** — https://docs.gitlab.com/api/groups/
- **Documentation** — https://docs.gitlab.com/api/projects/
- **Documentation** — https://docs.gitlab.com/api/applications/
- **Documentation** — https://docs.gitlab.com/api/avatar/
- …and 25 more, listed in full on the page.

## Other GitLab APIs (12)

- [GitLab Orbit gRPC API](https://apis.io/apis/gitlab/gitlab-orbit-api/)
- [GitLab GraphQL API](https://apis.io/apis/gitlab/gitlab-graphql-api/)
- [GitLab Applications API](https://apis.io/apis/gitlab/gitlab-applications-api/)
- [GitLab Authorization API](https://apis.io/apis/gitlab/gitlab-authorization-api/)
- [GitLab Broadcast Messages API](https://apis.io/apis/gitlab/gitlab-broadcast-messages-api/)
- [GitLab Groups API](https://apis.io/apis/gitlab/gitlab-groups-api/)
- [GitLab Metadata API](https://apis.io/apis/gitlab/gitlab-metadata-api/)
- [GitLab Project Webhooks API](https://apis.io/apis/gitlab/gitlab-project-webhooks-api/)
- [GitLab Projects API](https://apis.io/apis/gitlab/gitlab-projects-api/)
- [GitLab Tokens API](https://apis.io/apis/gitlab/gitlab-tokens-api/)
- [GitLab User Info API](https://apis.io/apis/gitlab/gitlab-user-info-api/)
- [GitLab Webhook Configuration API](https://apis.io/apis/gitlab/gitlab-webhook-configuration-api/)

## Tags

Merge Requests

---

Profiled by [API Evangelist](https://apievangelist.com) and published on [APIs.io](https://apis.io/apis/gitlab/gitlab-merge-requests-api/). The API's provider profile, Kin Score and agent-readiness rating are at https://apis.io/providers/gitlab/.
