GitLab · Schema

GitLab Pipeline

A GitLab CI/CD pipeline that runs automated jobs defined in a .gitlab-ci.yml configuration file.

CodePlatformSoftware DevelopmentSource Control

Properties

Name Type Description
id integer The unique identifier of the pipeline.
iid integer The project-scoped sequential ID of the pipeline.
project_id integer The ID of the project the pipeline belongs to.
name stringnull The user-defined name of the pipeline.
status string The current execution status of the pipeline.
source string The source that triggered the pipeline.
ref string The branch name, tag name, or commit SHA the pipeline runs on.
sha string The full SHA of the commit the pipeline runs on.
tag boolean Whether the pipeline was triggered by a tag push.
yaml_errors stringnull YAML configuration validation errors, if any.
user object
web_url string The URL to view the pipeline in a browser.
before_sha string The SHA of the commit before the pipeline was triggered.
duration integernull The total duration of the pipeline in seconds.
queued_duration numbernull The time in seconds the pipeline spent in the queue before starting.
coverage stringnull The code coverage percentage reported by the pipeline.
archived boolean Whether the pipeline has been archived.
created_at string The date and time the pipeline was created.
updated_at string The date and time the pipeline was last updated.
started_at stringnull The date and time the pipeline started execution.
finished_at stringnull The date and time the pipeline finished execution.
committed_at stringnull The date and time of the commit that triggered the pipeline.
View JSON Schema on GitHub

JSON Schema

gitlab-pipeline-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://gitlab.com/schemas/gitlab/pipeline.json",
  "title": "GitLab Pipeline",
  "description": "A GitLab CI/CD pipeline that runs automated jobs defined in a .gitlab-ci.yml configuration file.",
  "type": "object",
  "required": ["id", "project_id", "status", "ref", "sha"],
  "properties": {
    "id": {
      "type": "integer",
      "description": "The unique identifier of the pipeline."
    },
    "iid": {
      "type": "integer",
      "description": "The project-scoped sequential ID of the pipeline."
    },
    "project_id": {
      "type": "integer",
      "description": "The ID of the project the pipeline belongs to."
    },
    "name": {
      "type": ["string", "null"],
      "description": "The user-defined name of the pipeline."
    },
    "status": {
      "type": "string",
      "enum": ["created", "waiting_for_resource", "preparing", "pending", "running", "success", "failed", "canceled", "skipped", "manual", "scheduled"],
      "description": "The current execution status of the pipeline."
    },
    "source": {
      "type": "string",
      "enum": ["push", "web", "trigger", "schedule", "api", "external", "pipeline", "chat", "webide", "merge_request_event", "external_pull_request_event", "parent_pipeline", "ondemand_dast_scan", "ondemand_dast_validation"],
      "description": "The source that triggered the pipeline."
    },
    "ref": {
      "type": "string",
      "description": "The branch name, tag name, or commit SHA the pipeline runs on."
    },
    "sha": {
      "type": "string",
      "description": "The full SHA of the commit the pipeline runs on.",
      "pattern": "^[0-9a-f]{40}$"
    },
    "tag": {
      "type": "boolean",
      "description": "Whether the pipeline was triggered by a tag push."
    },
    "yaml_errors": {
      "type": ["string", "null"],
      "description": "YAML configuration validation errors, if any."
    },
    "user": {
      "$ref": "#/$defs/UserSummary"
    },
    "web_url": {
      "type": "string",
      "format": "uri",
      "description": "The URL to view the pipeline in a browser."
    },
    "before_sha": {
      "type": "string",
      "description": "The SHA of the commit before the pipeline was triggered."
    },
    "duration": {
      "type": ["integer", "null"],
      "minimum": 0,
      "description": "The total duration of the pipeline in seconds."
    },
    "queued_duration": {
      "type": ["number", "null"],
      "minimum": 0,
      "description": "The time in seconds the pipeline spent in the queue before starting."
    },
    "coverage": {
      "type": ["string", "null"],
      "description": "The code coverage percentage reported by the pipeline."
    },
    "archived": {
      "type": "boolean",
      "description": "Whether the pipeline has been archived."
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "The date and time the pipeline was created."
    },
    "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "The date and time the pipeline was last updated."
    },
    "started_at": {
      "type": ["string", "null"],
      "format": "date-time",
      "description": "The date and time the pipeline started execution."
    },
    "finished_at": {
      "type": ["string", "null"],
      "format": "date-time",
      "description": "The date and time the pipeline finished execution."
    },
    "committed_at": {
      "type": ["string", "null"],
      "format": "date-time",
      "description": "The date and time of the commit that triggered the pipeline."
    }
  },
  "$defs": {
    "UserSummary": {
      "type": "object",
      "description": "A simplified representation of the GitLab user who triggered the pipeline.",
      "required": ["id", "username"],
      "properties": {
        "id": {
          "type": "integer",
          "description": "The unique identifier of the user."
        },
        "username": {
          "type": "string",
          "description": "The username of the user."
        },
        "name": {
          "type": "string",
          "description": "The display name of the user."
        },
        "state": {
          "type": "string",
          "enum": ["active", "blocked", "deactivated"],
          "description": "The current state of the user account."
        },
        "avatar_url": {
          "type": ["string", "null"],
          "format": "uri",
          "description": "URL to the user's avatar image."
        },
        "web_url": {
          "type": "string",
          "format": "uri",
          "description": "URL to the user's GitLab profile page."
        }
      }
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/gitlab-pipeline"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.