GitLab
GitLab Inc. is an open-core company that develops GitLab, a DevOps software platform for building, securing, and managing applications. Created by Ukrainian developer Dmytro Zaporozhets and Dutch developer Sytse Sijbrandij, GitLab became the first partly-Ukrainian unicorn in 2018. Known for promoting remote work, it is one of the largest all-remote companies globally. GitLab has approximately 30 million registered users, including 1 million active licensed users.
Reference-quality API operations across every facet — a rich contract, published governance, transparent operations, and machine-readable commercial terms.
API Evangelist profiles GitLab the way a machine reads it — 283 machine-readable artifacts across 44 APIs, pulled from the provider's own public surface and indexed so a developer, an analyst, or an AI agent can evaluate it against every other provider on the network.
Every provider in the network is reduced to the same set of machine-readable artifacts — OpenAPI contracts, event specifications, GraphQL schemas, runnable collections, pricing and rate-limit signals, security posture, OAuth scopes, and the agent surfaces (MCP servers and skills) that let software drive the API on its own. We profile them because the interface is the part of a company you can actually inspect: it is a truer signal of what a provider does than any marketing page. From those artifacts we compute the Kin Score — GitLab scores 72.9/100 (exemplar), with a separate agent-readiness read of 80/100 (agent native). The full breakdown is below, followed by every artifact we hold — each card links through to its machine-readable definition on apis.io.
Kin Score
This is the API Evangelist rating — a single, repeatable read computed from the artifacts on this page. Green fill is points earned; the red track is points possible, so every bar shows earned-versus-possible at a glance.
How we profile GitLab
Each block below is one kind of artifact we hold for GitLab. For each we say what it is and why it earns a place in the profile, then list every one we've indexed — capped at two rows, scroll within the panel for the rest.
APIs 44
Each API is captured as its own OpenAPI definition — every operation, parameter, and response. This is the single most useful machine-readable description of what an API does, and it's what lets us score, lint, mock, and generate against it without asking the provider for anything.
Individual APIs this provider publishes, each with its own machine-readable definition.
GitLab GraphQL API
GraphQL is a query language for APIs. You can use it to request the exact data you need, and therefore limit the number of requests you need. GraphQL data is arranged in types, ...
GitLab Issues API
The GitLab Issues API provides programmatic access to manage issues across projects and groups. It supports creating, listing, updating, and deleting issues, as well as managing...
GitLab Merge Requests API
The GitLab Merge Requests API enables programmatic management of merge requests across projects and groups. It supports creating, listing, updating, approving, and merging merge...
GitLab Pipelines API
The GitLab Pipelines API provides programmatic access to CI/CD pipelines in GitLab projects. It supports listing, creating, retrying, and canceling pipelines, as well as retriev...
GitLab Jobs API
The GitLab Jobs API allows you to interact with CI/CD jobs in GitLab projects. It supports listing, retrieving, canceling, retrying, and erasing jobs, as well as downloading job...
GitLab Runners API
The GitLab Runners API provides endpoints for managing CI/CD runners registered to a GitLab instance. It supports listing, registering, updating, and deleting runners, as well a...
GitLab Users API
The GitLab Users API provides programmatic access to manage user accounts on a GitLab instance. It supports listing, creating, updating, and deleting users, managing SSH keys an...
GitLab Repositories API
The GitLab Repositories API provides access to Git repository data within GitLab projects. It supports listing repository tree structures, retrieving file contents, comparing br...
GitLab Commits API
The GitLab Commits API provides programmatic access to Git commits within GitLab projects. It supports listing, creating, and retrieving commits, viewing commit diffs and commen...
GitLab Branches API
The GitLab Branches API enables programmatic management of Git branches within GitLab projects. It supports listing, creating, and deleting branches, as well as retrieving branc...
GitLab Tags API
The GitLab Tags API provides programmatic access to manage Git tags within GitLab projects. It supports listing, creating, and deleting tags, as well as retrieving tag details f...
GitLab Releases API
The GitLab Releases API enables programmatic management of project releases. It supports creating, listing, updating, and deleting releases, as well as managing release assets a...
GitLab Environments API
The GitLab Environments API provides programmatic access to manage deployment environments within GitLab projects. It supports creating, listing, updating, stopping, and deletin...
GitLab Deployments API
The GitLab Deployments API enables programmatic access to deployment records in GitLab projects. It supports listing, creating, and updating deployments, as well as retrieving d...
GitLab Pipeline Schedules API
The GitLab Pipeline Schedules API provides programmatic access to manage scheduled CI/CD pipelines. It supports creating, listing, updating, and deleting pipeline schedules, as ...
GitLab Labels API
The GitLab Labels API provides programmatic access to manage project labels. It supports creating, listing, updating, deleting, and subscribing to labels used for categorizing i...
GitLab Milestones API
The GitLab Milestones API provides programmatic access to manage project milestones. It supports creating, listing, updating, and deleting milestones, as well as retrieving issu...
GitLab Notes API
The GitLab Notes API provides programmatic access to manage comments and system notes on issues, merge requests, epics, and snippets. It supports creating, listing, updating, an...
GitLab Snippets API
The GitLab Snippets API provides programmatic access to manage code snippets. It supports creating, listing, updating, and deleting both personal and project snippets, enabling ...
GitLab Packages API
The GitLab Packages API provides programmatic access to the GitLab Package Registry. It supports listing, retrieving, and deleting packages across projects and groups, with supp...
GitLab Container Registry API
The GitLab Container Registry API provides programmatic access to manage container images stored in the GitLab Container Registry. It supports listing repositories and tags, del...
GitLab Vulnerabilities API
The GitLab Vulnerabilities API provides programmatic access to manage security vulnerabilities detected in GitLab projects. It supports retrieving, confirming, resolving, and di...
GitLab Deploy Keys API
The GitLab Deploy Keys API provides programmatic access to manage deploy keys for GitLab projects. It supports listing, creating, updating, and deleting SSH deploy keys that gra...
GitLab Protected Branches API
The GitLab Protected Branches API provides programmatic access to manage branch protection rules. It supports listing, creating, updating, and removing protection settings that ...
GitLab Wikis API
The GitLab Wikis API provides programmatic access to manage project wiki pages. It supports listing, creating, updating, and deleting wiki pages, as well as uploading attachment...
GitLab Events API
The GitLab Events API provides programmatic access to review event activity across GitLab. It supports listing all events, retrieving user contribution events, and viewing proje...
GitLab Search API
The GitLab Search API enables programmatic search across a GitLab instance, group, or project. It supports searching for projects, issues, merge requests, milestones, code blobs...
GitLab Namespaces API
The GitLab Namespaces API provides programmatic access to manage namespaces in GitLab. It supports listing namespaces, retrieving namespace details, and verifying namespace exis...
GitLab Admin API
The Admin API from GitLab — 11 operation(s) for admin.
GitLab Application API
The Application API from GitLab — 2 operation(s) for application.
GitLab Applications API
The Applications API from GitLab — 2 operation(s) for applications.
GitLab Authorization API
Endpoints for initiating OAuth authorization flows.
GitLab Avatar API
The Avatar API from GitLab — 1 operation(s) for avatar.
GitLab Broadcast Messages API
The Broadcast Messages API from GitLab — 2 operation(s) for broadcast messages.
GitLab Bulk Imports API
The Bulk Imports API from GitLab — 5 operation(s) for bulk imports.
GitLab Groups API
The Groups API from GitLab — 6 operation(s) for groups.
GitLab Metadata API
The Metadata API from GitLab — 1 operation(s) for metadata.
GitLab Project Webhooks API
Manage webhooks for a specific project.
GitLab Projects API
The Projects API from GitLab — 17 operation(s) for projects.
GitLab Tokens API
Endpoints for exchanging, refreshing, and revoking OAuth tokens.
GitLab User Info API
Endpoints for retrieving authenticated user information via OAuth.
GitLab Version API
The Version API from GitLab — 1 operation(s) for version.
GitLab Webhook Configuration API
Manage custom headers and URL variables for webhooks.
GitLab Webhook Events API
Access webhook delivery history and resend events.
Scroll within the panel for all 44 ·
Postman Collections 13
A runnable collection turns the contract into something a developer can execute in seconds. We profile them because the fastest way to trust an API is to make a real call against it.
Ready-to-run Postman collections for exercising this provider's APIs.
GitLab api/v4/admin
POSTMANGitLab api/v4/application
POSTMANGitLab api/v4/applications
POSTMANGitLab api/v4/avatar
POSTMANGitLab api/v4/bulk imports
POSTMANGitLab api/v4/groups
POSTMANGitLab api/v4/metadata
POSTMANGitLab api/v4/projects
POSTMANGitLab api/v4/version
POSTMANGitLab OAuth 2.0 API
POSTMANGitLab API
POSTMANGitLab Webhooks API
POSTMANScroll within the panel for all 13 ·
Open Collections 2
Open, tool-agnostic collections carry the same runnable value as Postman without locking you to one client — the portable, forkable form of the same exercise.
Open, tool-agnostic API collections (OpenAPI-derived and Bruno).
GitLab OAuth 2.0 API
OPEN COLLECTIONGitLab Webhooks API
OPEN COLLECTIONArazzo Workflows 24
Real integrations are rarely a single call. Arazzo describes the multi-step sequences — auth, then create, then confirm — so both a human and an agent can follow the choreography, not just the endpoints.
Multi-step API workflows described with the Arazzo specification.
GitLab Add and Preview a Group Badge
Render a group badge preview, add it to the group, and confirm the list.
ARAZZOGitLab Add and Preview a Project Badge
Render a badge preview, then add it to a project and confirm the list.
ARAZZOGitLab Approve a Pending Group Access Request
List a group's access requests and approve the first pending requester.
ARAZZOGitLab Approve a Pending Project Access Request
List a project's access requests and approve the first pending requester.
ARAZZOGitLab Attach a Metric Image to an Alert
Authorize an upload, attach a metric image to an alert, then list images.
ARAZZOGitLab Create and Protect a Release Branch
Cut a new branch from a ref and immediately apply push/merge protection.
ARAZZOGitLab Create a Feature Branch from the Default Branch
Resolve the default branch tip and cut a new feature branch from it.
ARAZZOGitLab Ensure a Branch Exists
Check whether a branch exists and create it from a ref only when missing.
ARAZZOGitLab Find and Run a Pending Manual Job
List project jobs, pick the first manual job, and trigger it.
ARAZZOGitLab Inspect a Failed CI Job
List failed jobs in a project and fetch full detail for the first one.
ARAZZOGitLab Prune Stale Merged Branches
Survey the branch list, then bulk-delete all merged branches.
ARAZZOGitLab Publish and Verify a Broadcast Message
Create a broadcast banner, then read it back to confirm it was stored.
ARAZZOGitLab Register an Existing Instance Cluster
Add an existing Kubernetes cluster, then confirm it in the cluster list.
ARAZZOGitLab Request and Approve Project Access
Request access to a project, then approve that same requester.
ARAZZOGitLab Retire an Instance-Level CI Variable
Confirm an instance CI variable exists, then delete it.
ARAZZOGitLab Rotate the Active Broadcast Message
Retire the current broadcast message and publish a replacement.
ARAZZOGitLab Rotate a Project Badge by Name
Find an existing project badge by name and update its link and image.
ARAZZOGitLab Start a Migration and Poll to Completion
Kick off a direct-transfer migration, then poll the import until it finishes.
ARAZZOGitLab Track a Migration's Entities
Read a migration's summary, then drill into a specific entity's detail.
ARAZZOGitLab Trigger a Manual CI Job and Poll to Completion
Start a manual CI job, then poll its status until it finishes.
ARAZZOGitLab Reschedule a Broadcast Message
Read an existing broadcast message, then update its window and text.
ARAZZOGitLab Upsert an Instance-Level CI Variable
Look up an instance CI variable and update it or create it if missing.
ARAZZOScroll within the panel for all 24 ·
MCP Servers 1
Model Context Protocol servers expose these APIs directly to AI agents. We profile them because agent-native access is the fastest-growing way this provider's capabilities actually get used.
Model Context Protocol servers that expose these APIs to AI agents.
gitlab-mcp.yml
MCP SERVERGraphQL 1
Where a provider ships GraphQL, the schema is the contract. We profile it alongside the REST surface so the whole interface is legible in one place.
GraphQL schemas published by this provider.
GitLab GraphQL API
GraphQL is a query language for APIs. You can use it to request the exact data you need, and therefore limit the number of requests you need. GraphQL data is arranged in types, ...
GRAPHQLPricing Plans 1
Pricing is part of the interface. Machine-readable plans tell you what a tier costs and includes before you commit — one of the six things the Kin Score reads for commercial clarity.
Published pricing tiers and plan structures.
Gitlab Plans Pricing
PLANSRate Limits 1
Rate limits are the difference between a demo that works and a production integration that doesn't fall over. Publishing them is an operational-transparency signal — and a hard requirement for any agent that plans its own throughput.
Documented rate limits and quota policies.
Gitlab Rate Limits
RATE LIMITSFinOps 1
Cost, billing, and metering signals let a buyer model the financial operations of an API before it's live. We profile them for the same reason we profile pricing: the money is part of the contract.
Cost, billing, and metering signals for API financial operations.
Gitlab Finops
FINOPSFeatures 16
The notable capabilities this provider advertises, captured as structured features so they can be searched and compared instead of read one landing page at a time.
Notable capabilities this provider offers.
Scroll within the panel for all 16 ·
Event Specifications 1
Not every API is request/response. AsyncAPI describes the event-driven and streaming side — the webhooks and channels — so the asynchronous half of the interface is documented the same way the synchronous half is.
AsyncAPI definitions for this provider's event-driven and streaming APIs.
GitLab Webhooks
GitLab Webhooks deliver HTTP POST payloads to a configured URL whenever specified events occur in a GitLab project or group, such as pushes, merge requests, issues, pipeline sta...
ASYNCAPISemantic Vocabularies 1
JSON-LD contexts give the data shared meaning across APIs. We profile them because semantics are what let a machine reconcile 'customer' here with 'customer' somewhere else.
JSON-LD contexts and semantic vocabularies used across these APIs.
Gitlab Context
JSON-LDSpectral Rules 3
Governance rulesets we run against this provider's specs — the automated checks behind parts of the score. Profiling them makes the quality bar explicit and re-runnable, not a matter of opinion.
JSON Schema 52
Standalone JSON Schema definitions describe the data models behind the API. We profile them so the shapes are validatable on their own — useful long after a single request is forgotten.
Standalone JSON Schema definitions for this provider's data models.
API_Entities_BatchedBackgroundMigration
JSON SCHEMAAPI_Entities_Ci_Variable
JSON SCHEMAAPI_Entities_Cluster
JSON SCHEMAAPI_Entities_Dictionary_Table
JSON SCHEMAAPI_Entities_Appearance
JSON SCHEMAAPI_Entities_ApplicationWithSecret
JSON SCHEMAAPI_Entities_PlanLimit
JSON SCHEMAAPI_Entities_ApplicationWithSecret
JSON SCHEMAAPI_Entities_Avatar
JSON SCHEMAAPI_Entities_BroadcastMessage
JSON SCHEMAAPI_Entities_BulkImport
JSON SCHEMAAPI_Entities_BulkImports
JSON SCHEMAAPI_Entities_AccessRequester
JSON SCHEMAAPI_Entities_Badge
JSON SCHEMAAPI_Entities_BasicBadgeDetails
JSON SCHEMAAPI_Entities_Metadata
JSON SCHEMAAPI_Entities_AccessRequester
JSON SCHEMAAPI_Entities_Badge
JSON SCHEMAAPI_Entities_BasicBadgeDetails
JSON SCHEMAAPI_Entities_Branch
JSON SCHEMAAPI_Entities_Job
JSON SCHEMAAPI_Entities_MetricImage
JSON SCHEMAAPI_Entities_Metadata
JSON SCHEMAGitLab Issue
JSON SCHEMAGitLab Merge Request
JSON SCHEMADeviceAuthorizationRequest
JSON SCHEMADeviceAuthorizationResponse
JSON SCHEMARevokeTokenRequest
JSON SCHEMATokenInfo
JSON SCHEMATokenRequest
JSON SCHEMATokenResponse
JSON SCHEMAUserInfo
JSON SCHEMAAPI_Entities_AccessRequester
JSON SCHEMAAPI_Entities_Badge
JSON SCHEMAAPI_Entities_BasicBadgeDetails
JSON SCHEMAAPI_Entities_BatchedBackgroundMigration
JSON SCHEMAAPI_Entities_Branch
JSON SCHEMAAPI_Entities_Ci_Variable
JSON SCHEMAAPI_Entities_Cluster
JSON SCHEMAAPI_Entities_Commit
JSON SCHEMAAPI_Entities_CustomAttribute
JSON SCHEMAAPI_Entities_Dictionary_Table
JSON SCHEMAAPI_Entities_MetricImage
JSON SCHEMAAPI_Entities_Platform_Kubernetes
JSON SCHEMAAPI_Entities_ProjectIdentity
JSON SCHEMAAPI_Entities_Provider_Gcp
JSON SCHEMAAPI_Entities_UserBasic
JSON SCHEMAGitLab Pipeline
JSON SCHEMAGitLab Project
JSON SCHEMAWebhookEvent
JSON SCHEMAWebhookInput
JSON SCHEMAWebhook
JSON SCHEMAScroll within the panel for all 52 ·
JSON Structure 52
JSON Structure captures the data shapes in a form built for tooling — a complement to JSON Schema that keeps the model machine-legible.
JSON Structure definitions describing this provider's data shapes.
Gitlab Api V4 Admin Api_Entities_Ci_Variable Structure
JSON STRUCTUREGitlab Api V4 Admin Api_Entities_Cluster Structure
JSON STRUCTUREGitlab Api V4 Avatar Api_Entities_Avatar Structure
JSON STRUCTUREGitlab Api V4 Groups Api_Entities_Badge Structure
JSON STRUCTUREGitlab Api V4 Metadata Api_Entities_Metadata Structure
JSON STRUCTUREGitlab Api V4 Projects Api_Entities_Badge Structure
JSON STRUCTUREGitlab Api V4 Projects Api_Entities_Branch Structure
JSON STRUCTUREGitlab Api V4 Projects Api_Entities_Job Structure
JSON STRUCTUREGitlab Api V4 Version Api_Entities_Metadata Structure
JSON STRUCTUREGitlab Issue Structure
JSON STRUCTUREGitlab Merge Request Structure
JSON STRUCTUREGitlab Oauth2 Device Authorization Request Structure
JSON STRUCTUREGitlab Oauth2 Device Authorization Response Structure
JSON STRUCTUREGitlab Oauth2 Revoke Token Request Structure
JSON STRUCTUREGitlab Oauth2 Token Info Structure
JSON STRUCTUREGitlab Oauth2 Token Request Structure
JSON STRUCTUREGitlab Oauth2 Token Response Structure
JSON STRUCTUREGitlab Oauth2 User Info Structure
JSON STRUCTUREGitlab Openapi Original Api_Entities_Badge Structure
JSON STRUCTUREGitlab Openapi Original Api_Entities_Branch Structure
JSON STRUCTUREGitlab Openapi Original Api_Entities_Cluster Structure
JSON STRUCTUREGitlab Openapi Original Api_Entities_Commit Structure
JSON STRUCTUREGitlab Pipeline Structure
JSON STRUCTUREGitlab Project Structure
JSON STRUCTUREGitlab Webhooks Webhook Event Structure
JSON STRUCTUREGitlab Webhooks Webhook Input Structure
JSON STRUCTUREGitlab Webhooks Webhook Structure
JSON STRUCTUREScroll within the panel for all 52 ·
Examples 52
Real request and response payloads are what turn a spec from abstract into obvious — and they're one of the twelve things an agent needs to call an API correctly on the first try.
Example request and response payloads for these APIs.
Gitlab Issue Example
EXAMPLEGitlab Merge Request Example
EXAMPLEGitlab Pipeline Example
EXAMPLEGitlab Project Example
EXAMPLEScroll within the panel for all 52 ·
Security Posture 4
Authentication, domain security, vulnerability disclosure, and trust-center signals — the evidence that a provider takes security seriously enough to document it. We profile it because you can't govern what you can't see.
Authentication, domain security, vulnerability disclosure, and trust-center signals.
Scopes 1
OAuth scopes are the vocabulary of least-privilege access. Profiling them shows exactly what an integration — or an agent acting on a user's behalf — is allowed to do.
OAuth scopes governing access to this provider's APIs.
Agentic Access 1
An x-agentic-access contract marks which operations are safe for an agent to run on its own and which need a human in the loop. It is the difference between an API an agent can use and one it can use safely.
Recommended x-agentic-access execution contracts for AI agents.
Use Cases 8
What developers actually build with this provider — captured so the catalogue answers 'what is this for', not just 'what does this expose'.
What developers build with this provider.
DevOps Automation
Automate CI/CD pipeline creation, runner management, and deployment workflows.
Project Management
Programmatically manage issues, milestones, boards, and merge requests.
Infrastructure as Code
Manage GitLab configuration, groups, projects, and settings through APIs.
Security and Compliance
Access vulnerability reports, security scan results, and compliance data.
Migration and Integration
Bulk import projects, users, and data from other platforms.
Custom Tooling
Build custom developer tools, dashboards, and bots for GitLab workflows.
Container Management
Manage Docker images, Kubernetes clusters, and container deployments.
Analytics and Reporting
Extract project analytics, contribution data, and productivity metrics.
Scroll within the panel for all 8 ·
Solutions 4
Packaged solutions the provider offers on top of the raw API surface.
Packaged solutions this provider offers.
GitLab Free
Core DevOps platform with unlimited repositories, CI/CD, issue tracking, and API access.
GitLab Premium
Advanced DevOps with merge request approvals, code owners, and priority support.
GitLab Ultimate
Enterprise DevOps with security scanning, compliance, and advanced API features.
GitLab Dedicated
Single-tenant SaaS deployment with dedicated infrastructure and enhanced security.
Resources
Every other property we hold for GitLab — documentation, portals, status pages, policies, and corporate surface — grouped by the job it does, following the integrator's arc from getting started to running in production.
Get Started 4
Portal, sign-up, and the first successful call
Documentation 8
Reference material describing how the API behaves
Scroll within the panel for all 8 ·
Agent Surfaces 5
MCP servers, agent skills, and machine-readable catalogs
Design & Contract 30
Pagination, idempotency, versioning, errors, and events
Scroll within the panel for all 30 ·
Build 7
SDKs, sample code, and the tooling you integrate with
Scroll within the panel for all 7 ·
Access & Security 10
Authentication, authorization, and security posture
Scroll within the panel for all 10 ·
Operate 10
Status, limits, changes, and where to get help
Scroll within the panel for all 10 ·
Commercial 4
Pricing, plans, and the legal terms of use
Company 5
The organization behind the API
Other 1
Properties that don't map to a standard resource type
← All providers · Data indexed from github.com/api-evangelist/gitlab · machine-readable index on apis.io