How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

GitLab CI/CD merge_requests API

Operations related to merge requests

GitLab CI/CD merge_requests API is one of 98 APIs that GitLab CI/CD publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include Merge Requests. The published artifact set on APIs.io includes an OpenAPI specification, API documentation, an API reference, and authentication docs.

This API exposes 32 operations across 26 paths, and defines 27 schemas. It is described by OpenAPI 2.0, at version v4.

Requests are made against the base URL https://gitlab.com/api/v4.

32 operations 26 paths 27 schemas 2 DELETE18 GET9 POST3 PUT

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 2.0
API Version
v4
Base URL
https://gitlab.com/api/v4
Authentication
API Key, API Key
Resource Areas
1

Authentication & Security 2

GitLab CI/CD merge_requests API declares 2 security schemes for authenticating requests. An API key is passed in the header as PRIVATE-TOKEN (access_token_header). An API key is passed in the query as private_token (access_token_query).

Paths & Operations 32

Across 26 paths, the API surfaces 32 operations — 2 DELETE, 18 GET, 9 POST, 3 PUT. Each is listed below with its method, path, parameters, and response codes.

merge_requests 32

Operations related to merge requests

GET
/api/v4/groups/{id}/merge_requests
List group merge requests
getApiV4GroupsIdMergeRequests 49 params → 200401404422
POST
/api/v4/projects/{id}/create_ci_config
Create merge request for missing ci config in project
postApiV4ProjectsIdCreateCiConfig 1 param → 201
POST
/api/v4/projects/{id}/merge_requests/{merge_request_iid}/time_estimate
Set a time estimate for a mergerequest
postApiV4ProjectsIdMergeRequestsMergeRequestIidTimeEstimate 3 params → 201401400404
POST
/api/v4/projects/{id}/merge_requests/{merge_request_iid}/reset_time_estimate
Reset the time estimate for a project mergerequest
postApiV4ProjectsIdMergeRequestsMergeRequestIidResetTimeEstimate 2 params → 201401404
POST
/api/v4/projects/{id}/merge_requests/{merge_request_iid}/add_spent_time
Add spent time for a mergerequest
postApiV4ProjectsIdMergeRequestsMergeRequestIidAddSpentTime 3 params → 201401404
POST
/api/v4/projects/{id}/merge_requests/{merge_request_iid}/reset_spent_time
Reset spent time for a mergerequest
postApiV4ProjectsIdMergeRequestsMergeRequestIidResetSpentTime 2 params → 201401404
GET
/api/v4/projects/{id}/merge_requests/{merge_request_iid}/time_stats
Get time tracking stats
getApiV4ProjectsIdMergeRequestsMergeRequestIidTimeStats 2 params → 200401404
GET
/api/v4/projects/{id}/merge_requests
List project merge requests
getApiV4ProjectsIdMergeRequests 49 params → 200401404422
POST
/api/v4/projects/{id}/merge_requests
Create merge request
postApiV4ProjectsIdMergeRequests 2 params → 201400401404409422
DELETE
/api/v4/projects/{id}/merge_requests/{merge_request_iid}
Delete a merge request
deleteApiV4ProjectsIdMergeRequestsMergeRequestIid 2 params → 204401404412
GET
/api/v4/projects/{id}/merge_requests/{merge_request_iid}
Get single merge request
getApiV4ProjectsIdMergeRequestsMergeRequestIid 5 params → 200404
PUT
/api/v4/projects/{id}/merge_requests/{merge_request_iid}
Update merge request
putApiV4ProjectsIdMergeRequestsMergeRequestIid 3 params → 200400404409422
GET
/api/v4/projects/{id}/merge_requests/{merge_request_iid}/participants
Get single merge request participants
getApiV4ProjectsIdMergeRequestsMergeRequestIidParticipants 2 params → 200404
GET
/api/v4/projects/{id}/merge_requests/{merge_request_iid}/reviewers
Get single merge request reviewers
getApiV4ProjectsIdMergeRequestsMergeRequestIidReviewers 2 params → 200404
GET
/api/v4/projects/{id}/merge_requests/{merge_request_iid}/commits
Get single merge request commits
getApiV4ProjectsIdMergeRequestsMergeRequestIidCommits 4 params → 200404
GET
/api/v4/projects/{id}/merge_requests/{merge_request_iid}/context_commits
List merge request context commits
getApiV4ProjectsIdMergeRequestsMergeRequestIidContextCommits 2 params → 200404
POST
/api/v4/projects/{id}/merge_requests/{merge_request_iid}/context_commits
Create merge request context commits
postApiV4ProjectsIdMergeRequestsMergeRequestIidContextCommits 3 params → 201401404
DELETE
/api/v4/projects/{id}/merge_requests/{merge_request_iid}/context_commits
Delete merge request context commits
deleteApiV4ProjectsIdMergeRequestsMergeRequestIidContextCommits 3 params → 204400401404
GET
/api/v4/projects/{id}/merge_requests/{merge_request_iid}/changes
Get single merge request changes
getApiV4ProjectsIdMergeRequestsMergeRequestIidChanges 3 params → 200404
GET
/api/v4/projects/{id}/merge_requests/{merge_request_iid}/diffs
Get the merge request diffs
getApiV4ProjectsIdMergeRequestsMergeRequestIidDiffs 5 params → 200403404
GET
/api/v4/projects/{id}/merge_requests/{merge_request_iid}/raw_diffs
Get the merge request raw diffs
getApiV4ProjectsIdMergeRequestsMergeRequestIidRawDiffs 2 params → 200403404
GET
/api/v4/projects/{id}/merge_requests/{merge_request_iid}/pipelines
Get single merge request pipelines
getApiV4ProjectsIdMergeRequestsMergeRequestIidPipelines 2 params → 200404
POST
/api/v4/projects/{id}/merge_requests/{merge_request_iid}/pipelines
Create merge request pipeline
postApiV4ProjectsIdMergeRequestsMergeRequestIidPipelines 3 params → 201400404405
PUT
/api/v4/projects/{id}/merge_requests/{merge_request_iid}/merge
Merge a merge request
putApiV4ProjectsIdMergeRequestsMergeRequestIidMerge 3 params → 200400401404405409422
GET
/api/v4/projects/{id}/merge_requests/{merge_request_iid}/merge_ref
Returns the up to date merge-ref HEAD commit
getApiV4ProjectsIdMergeRequestsMergeRequestIidMergeRef 2 params → 200400
POST
/api/v4/projects/{id}/merge_requests/{merge_request_iid}/cancel_merge_when_pipeline_succeeds
Cancel Merge When Pipeline Succeeds
postApiV4ProjectsIdMergeRequestsMergeRequestIidCancelMergeWhenPipelineSucceeds 2 params → 201401404405406
PUT
/api/v4/projects/{id}/merge_requests/{merge_request_iid}/rebase
Rebase a merge request
putApiV4ProjectsIdMergeRequestsMergeRequestIidRebase 3 params → 200403404409
GET
/api/v4/projects/{id}/merge_requests/{merge_request_iid}/closes_issues
List issues that close on merge
getApiV4ProjectsIdMergeRequestsMergeRequestIidClosesIssues 4 params → 200403404
GET
/api/v4/projects/{id}/merge_requests/{merge_request_iid}/related_issues
List issues related to merge request
getApiV4ProjectsIdMergeRequestsMergeRequestIidRelatedIssues 4 params → 200403404
GET
/api/v4/projects/{id}/merge_requests/{merge_request_iid}/versions
Get a list of merge request diff versions
getApiV4ProjectsIdMergeRequestsMergeRequestIidVersions 4 params → 200
GET
/api/v4/projects/{id}/merge_requests/{merge_request_iid}/versions/{version_id}
Get a single merge request diff version
getApiV4ProjectsIdMergeRequestsMergeRequestIidVersionsVersionId 4 params → 200
GET
/api/v4/merge_requests
List merge requests
getApiV4MergeRequests 48 params → 200401422

Schemas 27

The contract defines 27 schemas that model the data the API accepts and returns. The most detailed are API_Entities_MergeRequestChanges (70 properties), API_Entities_MergeRequest (68 properties), API_Entities_MergeRequestBasic (55 properties), API_Entities_Ci_Pipeline (22 properties). Each schema is shown below with its type and property counts.

API_Entities_CustomAttribute
object
APIEntitiesCustomAttribute model
2 properties 2 required
API_Entities_MergeRequestReviewer
object
APIEntitiesMergeRequestReviewer model
3 properties 3 required
API_Entities_MRNote
object
APIEntitiesMRNote model
2 properties 2 required
API_Entities_UserBasic
object
APIEntitiesUserBasic model
10 properties 8 required
API_Entities_IssuableTimeStats
object
APIEntitiesIssuableTimeStats model
4 properties 4 required
API_Entities_DiffRefs
object
3 properties 3 required
API_Entities_MergeRequestDiffFull
object
APIEntitiesMergeRequestDiffFull model
11 properties 11 required
API_Entities_Milestone
object
13 properties 11 required
API_Entities_Ci_PipelineBasic
object
APIEntitiesCiPipelineBasic model
10 properties 10 required
postApiV4ProjectsIdMergeRequests
object
Create merge request
18 properties 3 required
API_Entities_MergeRequestDiff
object
APIEntitiesMergeRequestDiff model
9 properties 9 required
postApiV4ProjectsIdMergeRequestsMergeRequestIidAddSpentTime
object
Add spent time for a mergerequest
1 property 1 required
API_Entities_Commit
object
APIEntitiesCommit model
15 properties 15 required
API_Entities_MergeRequestChanges
object
APIEntitiesMergeRequestChanges model
70 properties 57 required
putApiV4ProjectsIdMergeRequestsMergeRequestIidMerge
object
Merge a merge request
8 properties
API_Entities_MergeRequest
object
APIEntitiesMergeRequest model
68 properties 55 required
API_Entities_MergeRequestBasic
object
APIEntitiesMergeRequestBasic model
55 properties 51 required
putApiV4ProjectsIdMergeRequestsMergeRequestIid
object
Update merge request
18 properties
API_Entities_Ci_Pipeline
object
APIEntitiesCiPipeline model
22 properties 22 required
postApiV4ProjectsIdMergeRequestsMergeRequestIidPipelines
object
Create merge request pipeline
1 property
DetailedStatusEntity
object
10 properties 9 required
API_Entities_Diff
object
APIEntitiesDiff model
11 properties 11 required
API_Entities_IssuableReferences
object
3 properties 3 required
putApiV4ProjectsIdMergeRequestsMergeRequestIidRebase
object
Rebase a merge request
1 property
postApiV4ProjectsIdMergeRequestsMergeRequestIidContextCommits
object
Create merge request context commits
1 property 1 required
postApiV4ProjectsIdMergeRequestsMergeRequestIidTimeEstimate
object
Set a time estimate for a mergerequest
1 property 1 required
API_Entities_TaskCompletionStatus
object
2 properties 2 required

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

gitlab-ci-merge-requests-api-openapi.yml Raw ↑

Other APIs GitLab CI/CD publishes across the network.

GitLab GraphQL API
GitLab CI/CD access_requests API
GitLab CI/CD access_tokens API
GitLab CI/CD agents API
GitLab CI/CD alert_management API
GitLab CI/CD applications API
GitLab CI/CD attestations API
GitLab CI/CD audit_events API
GitLab CI/CD avatars API
GitLab CI/CD award_emoji API
GitLab CI/CD badges API
GitLab CI/CD batched_background_migrations API
Where this information came from

This is an independent, third-party profile of GitLab CI/CD merge_requests API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.