GitLab website screenshot

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.

41 APIs 16 Features
CodePlatformSoftware DevelopmentSource Control

APIs

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

The GitLab Groups API allows you to create, read, update, and delete groups and subgroups. Groups are used to manage access control and organize projects within a GitLab instanc...

GitLab Projects API

The GitLab Projects API provides programmatic access to GitLab projects, enabling you to create, list, update, and delete projects. It supports managing project settings, member...

GitLab Admin API

The GitLab Admin API provides administrative endpoints for managing a GitLab instance. It includes operations for managing runners, CI/CD variables, Sidekiq queues, and other in...

GitLab Applications API

The GitLab Applications API allows you to manage OAuth applications registered in GitLab. You can create, list, and delete OAuth applications that enable third-party services to...

GitLab Avatar API

The GitLab Avatar API allows you to retrieve avatar images for users and groups. It returns avatar URLs based on user email addresses, enabling applications to display profile i...

GitLab Broadcast Messages API

The GitLab Broadcast Messages API allows administrators to create and manage broadcast messages that appear as banners across all GitLab pages. These messages are used to commun...

GitLab Bulk Imports API

The GitLab Bulk Imports API enables migration of groups and projects between GitLab instances. It provides endpoints for initiating bulk import operations and tracking their pro...

GitLab Application Settings API

The GitLab Application Settings API provides access to instance-wide configuration settings for a GitLab installation. Administrators can retrieve and modify application setting...

GitLab Metadata API

The GitLab Metadata API provides information about the GitLab instance, including the version, revision, and other metadata about the running installation. It is useful for veri...

GitLab Version API

The GitLab Version API returns version and revision information for the GitLab instance. This endpoint is useful for verifying what version of GitLab is running and for checking...

GitLab REST API

The GitLab REST API provides programmatic access to GitLab resources, enabling you to build integrations, automate repetitive tasks, and extract data for custom reports. The API...

GitLab OAuth 2.0 API

The GitLab OAuth 2.0 API enables third-party services to access GitLab resources on behalf of users using the OAuth 2.0 protocol. It supports authorization code with PKCE, devic...

GitLab Webhooks

GitLab Webhooks allow you to receive real-time HTTP POST notifications when events occur in GitLab projects or groups. Webhooks can be configured to trigger on events such as pu...

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...

Collections

GitLab API

POSTMAN

Arazzo Workflows

GitLab Add and Preview a Group Badge

Render a group badge preview, add it to the group, and confirm the list.

ARAZZO

GitLab Add and Preview a Project Badge

Render a badge preview, then add it to a project and confirm the list.

ARAZZO

GitLab Approve a Pending Group Access Request

List a group's access requests and approve the first pending requester.

ARAZZO

GitLab Approve a Pending Project Access Request

List a project's access requests and approve the first pending requester.

ARAZZO

GitLab Attach a Metric Image to an Alert

Authorize an upload, attach a metric image to an alert, then list images.

ARAZZO

GitLab Clean Up a Merged Branch

Verify a branch has been merged, then unprotect and delete it.

ARAZZO

GitLab Create and Protect a Release Branch

Cut a new branch from a ref and immediately apply push/merge protection.

ARAZZO

GitLab Create a Feature Branch from the Default Branch

Resolve the default branch tip and cut a new feature branch from it.

ARAZZO

GitLab Ensure a Branch Exists

Check whether a branch exists and create it from a ref only when missing.

ARAZZO

GitLab Find and Run a Pending Manual Job

List project jobs, pick the first manual job, and trigger it.

ARAZZO

GitLab Inspect a Failed CI Job

List failed jobs in a project and fetch full detail for the first one.

ARAZZO

GitLab Prune Stale Merged Branches

Survey the branch list, then bulk-delete all merged branches.

ARAZZO

GitLab Publish and Verify a Broadcast Message

Create a broadcast banner, then read it back to confirm it was stored.

ARAZZO

GitLab Register an Existing Instance Cluster

Add an existing Kubernetes cluster, then confirm it in the cluster list.

ARAZZO

GitLab Request and Approve Project Access

Request access to a project, then approve that same requester.

ARAZZO

GitLab Retire an Instance-Level CI Variable

Confirm an instance CI variable exists, then delete it.

ARAZZO

GitLab Retire a Project Badge by Name

Find a project badge by name and remove it when present.

ARAZZO

GitLab Rotate the Active Broadcast Message

Retire the current broadcast message and publish a replacement.

ARAZZO

GitLab Rotate a Project Badge by Name

Find an existing project badge by name and update its link and image.

ARAZZO

GitLab Start a Migration and Poll to Completion

Kick off a direct-transfer migration, then poll the import until it finishes.

ARAZZO

GitLab Track a Migration's Entities

Read a migration's summary, then drill into a specific entity's detail.

ARAZZO

GitLab Trigger a Manual CI Job and Poll to Completion

Start a manual CI job, then poll its status until it finishes.

ARAZZO

GitLab Reschedule a Broadcast Message

Read an existing broadcast message, then update its window and text.

ARAZZO

GitLab Upsert an Instance-Level CI Variable

Look up an instance CI variable and update it or create it if missing.

ARAZZO

GraphQL

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, ...

GRAPHQL

Pricing Plans

Gitlab Plans Pricing

3 plans

PLANS

Rate Limits

Gitlab Rate Limits

5 limits

RATE LIMITS

FinOps

Gitlab Finops

FINOPS

Features

Free: 5 users, 400 compute minutes/mo, 10 GiB storage
Premium $29/user/mo: 10K compute minutes, $12 GitLab Credits/user
Ultimate custom: 50K compute minutes, $24 Credits/user, security testing
REST and GraphQL APIs
Authenticated API: 2,000 req/min/user
Unauthenticated API: 500 req/min/IP
Search API: 30 req/min/user
Self-hosted Community Edition (free OSS)
Self-hosted Enterprise Edition (paid)
GitLab Runner for shared/dedicated runners
OAuth 2.0 + personal access tokens + project access tokens
Webhooks for project, group, and system events
GitLab Duo AI assistant (separate add-on)
Container Registry, Package Registry, Helm Chart Registry
GitLab Pages static site hosting
Application Security Testing (Ultimate): SAST, DAST, secret detection

Use Cases

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.

Solutions

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.

Event Specifications

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...

ASYNCAPI

Semantic Vocabularies

Gitlab Context

38 classes · 268 properties

JSON-LD

API Governance Rules

GitLab API Rules

24 rules · 15 errors 6 warnings 3 info

SPECTRAL

JSON Structure

Gitlab Issue Structure

29 properties

JSON STRUCTURE

Gitlab Merge Request Structure

33 properties

JSON STRUCTURE

Gitlab Oauth2 Revoke Token Request Structure

3 properties

JSON STRUCTURE

Gitlab Oauth2 Token Info Structure

5 properties

JSON STRUCTURE

Gitlab Oauth2 Token Request Structure

10 properties

JSON STRUCTURE

Gitlab Oauth2 Token Response Structure

6 properties

JSON STRUCTURE

Gitlab Oauth2 User Info Structure

8 properties

JSON STRUCTURE

Gitlab Pipeline Structure

22 properties

JSON STRUCTURE

Gitlab Project Structure

33 properties

JSON STRUCTURE

Gitlab Webhooks Webhook Event Structure

10 properties

JSON STRUCTURE

Gitlab Webhooks Webhook Input Structure

19 properties

JSON STRUCTURE

Gitlab Webhooks Webhook Structure

24 properties

JSON STRUCTURE

Example Payloads

Gitlab Issue Example

10 fields

EXAMPLE

Gitlab Merge Request Example

10 fields

EXAMPLE

Gitlab Pipeline Example

10 fields

EXAMPLE

Gitlab Project Example

10 fields

EXAMPLE

Visuals

View API subway map

Resources

🔗
PostmanWorkspace
PostmanWorkspace
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
LinkedIn
LinkedIn
🔗
Website
Website
🌐
Portal
Portal
🔗
Documentation
Documentation
🔑
Authentication
Authentication
👥
GitHubOrganization
GitHubOrganization
📰
Blog
Blog
🟢
StatusPage
StatusPage
💰
Pricing
Pricing
📜
TermsOfService
TermsOfService
📜
PrivacyPolicy
PrivacyPolicy
💬
Support
Support
💬
IDESupport
IDESupport
📄
ReleaseNotes
ReleaseNotes
🌐
Portal
Portal
🔗
Documentation
Documentation
🚀
GettingStarted
GettingStarted
🟢
StatusPage
StatusPage
📝
Signup
Signup
📰
Blog
Blog
💬
Support
Support
📄
ChangeLog
ChangeLog
🔑
Authentication
Authentication
📦
SDKs
SDKs
💬
Support
Support
🔗
RateLimits
RateLimits
🔗
JSONLD
JSONLD
🔗
JSONSchema
JSONSchema
🔗
JSONSchema
JSONSchema
🔗
JSONSchema
JSONSchema
🔗
JSONSchema
JSONSchema
💰
Pricing
Pricing
🔗
Security
Security
🔗
Security
Security
🔗
Documentation
Documentation
🔗
Partners
Partners
🔗
Documentation
Documentation
🔗
Marketplace
Marketplace
🔧
Tools
Tools
👥
GitHubRepository
GitHubRepository
🔗
LlmsText
LlmsText

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: GitLab Webhooks API
  version: '4'
request:
  auth:
    type: apikey
    key: PRIVATE-TOKEN
    value: '{{PRIVATE-TOKEN}}'
    placement: header
items:
- info:
    name: Project Webhooks
    type: folder
  items:
  - info:
      name: GitLab List Project Webhooks
      type: http
    http:
      method: GET
      url: https://gitlab.com/api/v4/projects/:id/hooks
      params:
      - name: id
        value: ''
        type: path
        description: The ID or URL-encoded path of the project. For example, 42 or namespace%2Fproject-name.
    docs: Returns a list of all webhooks configured for the specified project. Each webhook entry includes its URL, enabled
      event triggers, and SSL verification settings.
  - info:
      name: GitLab Add a Webhook to a Project
      type: http
    http:
      method: POST
      url: https://gitlab.com/api/v4/projects/:id/hooks
      params:
      - name: id
        value: ''
        type: path
        description: The ID or URL-encoded path of the project. For example, 42 or namespace%2Fproject-name.
      body:
        type: json
        data: '{}'
    docs: Creates a new webhook for the specified project. The webhook will receive HTTP POST requests for the configured
      event triggers. A secret token can be specified for payload verification.
  - info:
      name: GitLab Get a Project Webhook
      type: http
    http:
      method: GET
      url: https://gitlab.com/api/v4/projects/:id/hooks/:hook_id
      params:
      - name: id
        value: ''
        type: path
        description: The ID or URL-encoded path of the project. For example, 42 or namespace%2Fproject-name.
      - name: hook_id
        value: ''
        type: path
        description: The ID of the webhook.
    docs: Returns configuration details for a specific webhook in a project, including the URL, enabled triggers, and SSL
      verification setting.
  - info:
      name: GitLab Update a Project Webhook
      type: http
    http:
      method: PUT
      url: https://gitlab.com/api/v4/projects/:id/hooks/:hook_id
      params:
      - name: id
        value: ''
        type: path
        description: The ID or URL-encoded path of the project. For example, 42 or namespace%2Fproject-name.
      - name: hook_id
        value: ''
        type: path
        description: The ID of the webhook.
      body:
        type: json
        data: '{}'
    docs: Modifies the configuration of an existing project webhook. You can update the URL, secret token, SSL verification
      setting, and which events trigger the webhook.
  - info:
      name: GitLab Delete a Project Webhook
      type: http
    http:
      method: DELETE
      url: https://gitlab.com/api/v4/projects/:id/hooks/:hook_id
      params:
      - name: id
        value: ''
        type: path
        description: The ID or URL-encoded path of the project. For example, 42 or namespace%2Fproject-name.
      - name: hook_id
        value: ''
        type: path
        description: The ID of the webhook.
    docs: Removes a webhook from the specified project. Deleted webhooks will no longer receive event deliveries.
- info:
    name: Webhook Events
    type: folder
  items:
  - info:
      name: GitLab List Webhook Events
      type: http
    http:
      method: GET
      url: https://gitlab.com/api/v4/projects/:id/hooks/:hook_id/events
      params:
      - name: id
        value: ''
        type: path
        description: The ID or URL-encoded path of the project. For example, 42 or namespace%2Fproject-name.
      - name: hook_id
        value: ''
        type: path
        description: The ID of the webhook.
    docs: Returns a list of all delivery events for a specified project webhook from the past 7 days. Each event includes
      the trigger type, response status code, request and response headers, and payload body.
  - info:
      name: GitLab Resend a Webhook Event
      type: http
    http:
      method: POST
      url: https://gitlab.com/api/v4/projects/:id/hooks/:hook_id/events/:hook_event_id/resend
      params:
      - name: id
        value: ''
        type: path
        description: The ID or URL-encoded path of the project. For example, 42 or namespace%2Fproject-name.
      - name: hook_id
        value: ''
        type: path
        description: The ID of the webhook.
      - name: hook_event_id
        value: '42'
        type: path
        description: The ID of the webhook event to resend.
    docs: Resends a previously triggered webhook event to the configured URL. Useful for retrying failed deliveries or for
      debugging webhook configurations.
  - info:
      name: GitLab Test a Webhook Trigger
      type: http
    http:
      method: POST
      url: https://gitlab.com/api/v4/projects/:id/hooks/:hook_id/test/:trigger
      params:
      - name: id
        value: ''
        type: path
        description: The ID or URL-encoded path of the project. For example, 42 or namespace%2Fproject-name.
      - name: hook_id
        value: ''
        type: path
        description: The ID of the webhook.
      - name: trigger
        value: example_value
        type: path
        description: The event type to simulate. Supported values include push_events, tag_push_events, issues_events, confidential_issues_events,
          note_events, merge_requests_events, job_events, pipeline_events, wiki_page_events, releases_events, and member_events.
    docs: Sends a test webhook payload of the specified trigger type to the configured webhook URL. Use this to verify the
      webhook endpoint is reachable and handling payloads correctly.
- info:
    name: Webhook Configuration
    type: folder
  items:
  - info:
      name: GitLab Set a Webhook Custom Header
      type: http
    http:
      method: PUT
      url: https://gitlab.com/api/v4/projects/:id/hooks/:hook_id/custom_headers/:key
      params:
      - name: id
        value: ''
        type: path
        description: The ID or URL-encoded path of the project. For example, 42 or namespace%2Fproject-name.
      - name: hook_id
        value: ''
        type: path
        description: The ID of the webhook.
      - name: key
        value: example_value
        type: path
        description: The name of the custom header.
      body:
        type: json
        data: '{}'
    docs: Adds or updates a custom HTTP header sent with every webhook delivery for the specified webhook. Custom headers
      are useful for authentication or routing at the receiving endpoint.
  - info:
      name: GitLab Delete a Webhook Custom Header
      type: http
    http:
      method: DELETE
      url: https://gitlab.com/api/v4/projects/:id/hooks/:hook_id/custom_headers/:key
      params:
      - name: id
        value: ''
        type: path
        description: The ID or URL-encoded path of the project. For example, 42 or namespace%2Fproject-name.
      - name: hook_id
        value: ''
        type: path
        description: The ID of the webhook.
      - name: key
        value: example_value
        type: path
        description: The name of the custom header to delete.
    docs: Removes a custom HTTP header from the specified webhook. The header will no longer be included in future webhook
      deliveries.
  - info:
      name: GitLab Set a Webhook URL Variable
      type: http
    http:
      method: PUT
      url: https://gitlab.com/api/v4/projects/:id/hooks/:hook_id/url_variables/:key
      params:
      - name: id
        value: ''
        type: path
        description: The ID or URL-encoded path of the project. For example, 42 or namespace%2Fproject-name.
      - name: hook_id
        value: ''
        type: path
        description: The ID of the webhook.
      - name: key
        value: example_value
        type: path
        description: The name of the URL variable.
      body:
        type: json
        data: '{}'
    docs: Adds or updates a URL variable for the specified webhook. URL variables allow dynamic substitution in the webhook
      URL, enabling reuse of the same webhook configuration with different target endpoints.
  - info:
      name: GitLab Delete a Webhook URL Variable
      type: http
    http:
      method: DELETE
      url: https://gitlab.com/api/v4/projects/:id/hooks/:hook_id/url_variables/:key
      params:
      - name: id
        value: ''
        type: path
        description: The ID or URL-encoded path of the project. For example, 42 or namespace%2Fproject-name.
      - name: hook_id
        value: ''
        type: path
        description: The ID of the webhook.
      - name: key
        value: example_value
        type: path
        description: The name of the URL variable to delete.
    docs: Removes a URL variable from the specified webhook. The variable will no longer be substituted in future webhook
      deliveries.
bundled: true