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 Projects API

The Projects API from GitLab — 17 operation(s) for projects.

GitLab Projects API is one of 44 APIs that GitLab publishes on the APIs.io network, described by a machine-readable OpenAPI specification and an AsyncAPI event-driven specification.

Tagged areas include Project. The published artifact set on APIs.io includes an OpenAPI specification, API documentation, authentication docs, an API reference, rate-limit docs, and an AsyncAPI specification.

This API exposes 26 operations across 17 paths, and defines 9 schemas. It is described by OpenAPI 3.0.1, at version v4.

Requests are made against a single base URL, https://www.gitlab.com/api/.

26 operations 17 paths 9 schemas 5 DELETE9 GET1 HEAD6 POST5 PUT

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.0.1
API Version
v4
Base URL
https://gitlab.com/api/graphql
Authentication
API Key
Terms of Service
Resource Areas
1

Authentication & Security 1

GitLab Projects API declares 1 security scheme for authenticating requests. An API key is passed in the header as Private-Token (ApiKeyAuth). By default, every request must be authenticated.

Paths & Operations 26

Across 17 paths, the API surfaces 26 operations — 5 DELETE, 9 GET, 1 HEAD, 6 POST, 5 PUT. Each is listed below with its method, path, parameters, and response codes.

Projects 26
DELETE
/api/v4/projects/{id}/repository/merged_branches
Delete all merged branches
deleteApiV4ProjectsIdRepositoryMergedBranches 1 param → 202404
GET
/api/v4/projects/{id}/repository/branches/{branch}
Get a single repository branch
getApiV4ProjectsIdRepositoryBranchesBranch 2 params → 200404
DELETE
/api/v4/projects/{id}/repository/branches/{branch}
Delete a branch
deleteApiV4ProjectsIdRepositoryBranchesBranch 2 params → 204404
HEAD
/api/v4/projects/{id}/repository/branches/{branch}
Check if a branch exists
headApiV4ProjectsIdRepositoryBranchesBranch 2 params → 204404
GET
/api/v4/projects/{id}/repository/branches
Get a project repository branches
getApiV4ProjectsIdRepositoryBranches 7 params → 200404
POST
/api/v4/projects/{id}/repository/branches
Create branch
postApiV4ProjectsIdRepositoryBranches 3 params → 201400
PUT
/api/v4/projects/{id}/repository/branches/{branch}/unprotect
Unprotect a single branch
putApiV4ProjectsIdRepositoryBranchesBranchUnprotect 2 params → 200404
PUT
/api/v4/projects/{id}/repository/branches/{branch}/protect
Protect a single branch
putApiV4ProjectsIdRepositoryBranchesBranchProtect 2 params body → 200404
GET
/api/v4/projects/{id}/badges/{badge_id}
GitLab Gets a Badge of a Project.
getApiV4ProjectsIdBadgesBadgeId 2 params → 200
PUT
/api/v4/projects/{id}/badges/{badge_id}
GitLab Updates a Badge of a Project.
putApiV4ProjectsIdBadgesBadgeId 2 params body → 200
DELETE
/api/v4/projects/{id}/badges/{badge_id}
GitLab Removes a Badge from the Project.
deleteApiV4ProjectsIdBadgesBadgeId 2 params → 204
GET
/api/v4/projects/{id}/badges
GitLab Gets a List of Project Badges Viewable by the Authenticated User.
getApiV4ProjectsIdBadges 4 params → 200
POST
/api/v4/projects/{id}/badges
GitLab Adds a Badge to a Project.
postApiV4ProjectsIdBadges 1 param body → 201
GET
/api/v4/projects/{id}/badges/render
GitLab Preview a Badge from a Project.
getApiV4ProjectsIdBadgesRender 3 params → 200
DELETE
/api/v4/projects/{id}/access_requests/{user_id}
GitLab Denies an Access Request for the Given User.
deleteApiV4ProjectsIdAccessRequestsUserId 2 params → 204
PUT
/api/v4/projects/{id}/access_requests/{user_id}/approve
GitLab Approves an Access Request for the Given User.
putApiV4ProjectsIdAccessRequestsUserIdApprove 2 params body → 200
GET
/api/v4/projects/{id}/access_requests
GitLab Gets a List of Access Requests for a Project.
getApiV4ProjectsIdAccessRequests 3 params → 200
POST
/api/v4/projects/{id}/access_requests
GitLab Requests Access for the Authenticated User to a Project.
postApiV4ProjectsIdAccessRequests 1 param → 200
PUT
/api/v4/projects/{id}/alert_management_alerts/{alert_iid}/metric_images/{metric_image_id}
Update a metric image for an alert
putApiV4ProjectsIdAlertManagementAlertsAlertIidMetricImagesMetricImageId 3 params body → 200403422
DELETE
/api/v4/projects/{id}/alert_management_alerts/{alert_iid}/metric_images/{metric_image_id}
Remove a metric image for an alert
deleteApiV4ProjectsIdAlertManagementAlertsAlertIidMetricImagesMetricImageId 3 params → 204403422
GET
/api/v4/projects/{id}/alert_management_alerts/{alert_iid}/metric_images
Metric Images for alert
getApiV4ProjectsIdAlertManagementAlertsAlertIidMetricImages 2 params → 200404
POST
/api/v4/projects/{id}/alert_management_alerts/{alert_iid}/metric_images
Upload a metric image for an alert
postApiV4ProjectsIdAlertManagementAlertsAlertIidMetricImages 2 params body → 200403
POST
/api/v4/projects/{id}/alert_management_alerts/{alert_iid}/metric_images/authorize
Workhorse authorize metric image file upload
postApiV4ProjectsIdAlertManagementAlertsAlertIidMetricImagesAuthorize 2 params → 200403
GET
/api/v4/projects/{id}/jobs
GitLab List Jobs for a Project
listProjectJobs 2 params → 200
GET
/api/v4/projects/{id}/jobs/{job_id}
GitLab Get a Single Job by ID
getSingleJob 2 params → 200
POST
/api/v4/projects/{id}/jobs/{job_id}/play
GitLab Run a Manual Job
triggerManualJob 3 params → 200

Schemas 9

The contract defines 9 schemas that model the data the API accepts and returns. The most detailed are API_Entities_Job (19 properties), API_Entities_Commit (14 properties), API_Entities_AccessRequester (10 properties), API_Entities_UserBasic (9 properties). Each schema is shown below with its type and property counts.

API_Entities_Job
object
APIEntitiesJob model
19 properties
API_Entities_Branch
object
APIEntitiesBranch model
9 properties
API_Entities_MetricImage
object
APIEntitiesMetricImage model
6 properties
API_Entities_CustomAttribute
object
2 properties
API_Entities_BasicBadgeDetails
object
APIEntitiesBasicBadgeDetails model
5 properties
API_Entities_AccessRequester
object
APIEntitiesAccessRequester model
10 properties
API_Entities_Commit
object
14 properties
API_Entities_UserBasic
object
9 properties
API_Entities_Badge
object
APIEntitiesBadge model
7 properties

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

gitlab-projects-api-openapi.yml Raw ↑

Other APIs GitLab publishes across the network.

GitLab GraphQL API
GitLab Issues API
GitLab Merge Requests API
GitLab Pipelines API
GitLab Jobs API
GitLab Runners API
GitLab Users API
GitLab Repositories API
GitLab Commits API
GitLab Branches API
GitLab Tags API
GitLab Releases API
Where this information came from

This is an independent, third-party profile of GitLab Projects 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.