{"files":{"SKILL.md":"---\nname: circleci-api\ndescription: \"CircleCI API skill. Use when working with CircleCI for insights, jobs, me. Covers 113 endpoints.\"\nversion: 1.0.0\ngenerator: lapsh\n---\n\n# CircleCI API\nAPI version: v2\n\n## Auth\nApiKey Circle-Token in header | Basic | ApiKey circle-token in query\n\n## Base URL\nhttps://circleci.com/api/v2\n\n## Setup\n1. Set your API key in the appropriate header\n2. GET /me -- verify access\n3. POST /jobs/{job-id}/cancel -- create first cancel\n\n## Endpoints\n\n113 endpoints across 17 groups. See references/api-spec.lap for full details.\n\n### insights\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /insights/pages/{project-slug}/summary | Get summary metrics and trends for a project across it's workflows and branches |\n| GET | /insights/time-series/{project-slug}/workflows/{workflow-name}/jobs | Job timeseries data |\n| GET | /insights/{org-slug}/summary | Get summary metrics with trends for the entire org, and for each project. |\n| GET | /insights/{project-slug}/branches | Get all branches for a project |\n| GET | /insights/{project-slug}/flaky-tests | Get flaky tests for a project |\n| GET | /insights/{project-slug}/workflows | Get summary metrics for a project's workflows |\n| GET | /insights/{project-slug}/workflows/{workflow-name} | Get recent runs of a workflow |\n| GET | /insights/{project-slug}/workflows/{workflow-name}/jobs | Get summary metrics for a project workflow's jobs. |\n| GET | /insights/{project-slug}/workflows/{workflow-name}/summary | Get metrics and trends for workflows |\n| GET | /insights/{project-slug}/workflows/{workflow-name}/test-metrics | Get test metrics for a project's workflows |\n\n### jobs\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /jobs/{job-id}/cancel | Cancel job by job ID |\n\n### me\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /me | User Information |\n| GET | /me/collaborations | Collaborations |\n\n### organization\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /organization | Create a new organization |\n| DELETE | /organization/{org-slug-or-id} | Delete an organization |\n| GET | /organization/{org-slug-or-id} | Get an organization |\n| POST | /organization/{org-slug-or-id}/project | Create a new project |\n| POST | /organization/{org-slug-or-id}/url-orb-allow-list | Create a new URL Orb allow-list entry |\n| GET | /organization/{org-slug-or-id}/url-orb-allow-list | List the entries in the org's URL Orb allow-list |\n| DELETE | /organization/{org-slug-or-id}/url-orb-allow-list/{allow-list-entry-id} | Remove an entry from the org's URL orb allow-list |\n\n### pipeline\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /pipeline | Get a list of pipelines |\n| POST | /pipeline/continue | Continue a pipeline |\n| GET | /pipeline/{pipeline-id} | Get a pipeline by ID |\n| GET | /pipeline/{pipeline-id}/config | Get a pipeline's configuration |\n| GET | /pipeline/{pipeline-id}/values | Get pipeline values for a pipeline |\n| GET | /pipeline/{pipeline-id}/workflow | Get a pipeline's workflows |\n\n### project\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /project/{project-slug} | Get a project |\n| DELETE | /project/{project-slug} | Delete a project |\n| GET | /project/{project-slug}/checkout-key | Get all checkout keys |\n| POST | /project/{project-slug}/checkout-key | Create a new checkout key |\n| DELETE | /project/{project-slug}/checkout-key/{fingerprint} | Delete a checkout key |\n| GET | /project/{project-slug}/checkout-key/{fingerprint} | Get a checkout key |\n| GET | /project/{project-slug}/envvar | List all environment variables |\n| POST | /project/{project-slug}/envvar | Create an environment variable |\n| GET | /project/{project-slug}/envvar/{name} | Get a masked environment variable |\n| DELETE | /project/{project-slug}/envvar/{name} | Delete an environment variable |\n| GET | /project/{project-slug}/job/{job-number} | Get job details |\n| POST | /project/{project-slug}/job/{job-number}/cancel | Cancel job by job number |\n| POST | /project/{project-slug}/pipeline | Trigger a new pipeline |\n| GET | /project/{project-slug}/pipeline | Get all pipelines |\n| GET | /project/{project-slug}/pipeline/mine | Get your pipelines |\n| GET | /project/{project-slug}/pipeline/{pipeline-number} | Get a pipeline by pipeline number |\n| GET | /project/{project-slug}/schedule | List schedule triggers |\n| POST | /project/{project-slug}/schedule | Create a schedule |\n| GET | /project/{project-slug}/{job-number}/artifacts | Get a job's artifacts |\n| GET | /project/{project-slug}/{job-number}/tests | Get test metadata |\n| GET | /project/{provider}/{organization}/{project}/settings | Get project settings |\n| PATCH | /project/{provider}/{organization}/{project}/settings | Update project settings |\n| POST | /project/{provider}/{organization}/{project}/pipeline/run | [Recommended] Trigger a new pipeline |\n\n### schedule\n| Method | Path | Description |\n|--------|------|-------------|\n| DELETE | /schedule/{schedule-id} | Delete a schedule |\n| GET | /schedule/{schedule-id} | Get a schedule by ID. Available only on schedules associated with GitHub OAuth or Bitbucket Cloud pipeline definitions. |\n| PATCH | /schedule/{schedule-id} | Update a schedule |\n\n### user\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /user/{id} | User Information |\n\n### webhook\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /webhook | Create an outbound webhook |\n| GET | /webhook | List webhooks |\n| PUT | /webhook/{webhook-id} | Update an outbound webhook |\n| GET | /webhook/{webhook-id} | Get a webhook |\n| DELETE | /webhook/{webhook-id} | Delete an outbound webhook |\n\n### workflow\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /workflow/{id} | Get a workflow |\n| POST | /workflow/{id}/approve/{approval_request_id} | Approve a job |\n| POST | /workflow/{id}/cancel | Cancel a workflow |\n| GET | /workflow/{id}/job | Get a workflow's jobs |\n| POST | /workflow/{id}/rerun | Rerun a workflow |\n\n### org\n| Method | Path | Description |\n|--------|------|-------------|\n| DELETE | /org/{orgID}/oidc-custom-claims | Delete org-level claims |\n| GET | /org/{orgID}/oidc-custom-claims | Get org-level claims |\n| PATCH | /org/{orgID}/oidc-custom-claims | Patch org-level claims |\n| DELETE | /org/{orgID}/project/{projectID}/oidc-custom-claims | Delete project-level claims |\n| GET | /org/{orgID}/project/{projectID}/oidc-custom-claims | Get project-level claims |\n| PATCH | /org/{orgID}/project/{projectID}/oidc-custom-claims | Patch project-level claims |\n\n### owner\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /owner/{ownerID}/context/{context}/decision | Retrieves the owner's decision audit logs. |\n| POST | /owner/{ownerID}/context/{context}/decision | Makes a decision |\n| GET | /owner/{ownerID}/context/{context}/decision/settings | Get the decision settings |\n| PATCH | /owner/{ownerID}/context/{context}/decision/settings | Set the decision settings |\n| GET | /owner/{ownerID}/context/{context}/decision/{decisionID} | Retrieves the owner's decision audit log by given decisionID |\n| GET | /owner/{ownerID}/context/{context}/decision/{decisionID}/policy-bundle | Retrieves Policy Bundle for a given decision log ID |\n| GET | /owner/{ownerID}/context/{context}/policy-bundle | Retrieves Policy Bundle |\n| POST | /owner/{ownerID}/context/{context}/policy-bundle | Creates policy bundle for the context |\n| GET | /owner/{ownerID}/context/{context}/policy-bundle/{policyName} | Retrieves a policy document |\n\n### context\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /context | Create a new context |\n| GET | /context | List contexts |\n| GET | /context/{context_id} | Get a context |\n| DELETE | /context/{context_id} | Delete a context |\n| GET | /context/{context_id}/environment-variable | List environment variables |\n| PUT | /context/{context_id}/environment-variable/{env_var_name} | Add or update an environment variable |\n| DELETE | /context/{context_id}/environment-variable/{env_var_name} | Remove an environment variable |\n| GET | /context/{context_id}/restrictions | Get context restrictions |\n| POST | /context/{context_id}/restrictions | Create context restriction |\n| DELETE | /context/{context_id}/restrictions/{restriction_id} | Delete context restriction |\n\n### organizations\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /organizations/{org_id}/groups | Groups in an organization |\n| POST | /organizations/{org_id}/groups | Create Groups |\n| GET | /organizations/{org_id}/groups/{group_id} | A group in an organization |\n| DELETE | /organizations/{org_id}/groups/{group_id} | Delete a group |\n| POST | /organizations/{org_id}/usage_export_job | Create a usage export |\n| GET | /organizations/{org_id}/usage_export_job/{usage_export_job_id} | Get a usage export |\n\n### projects\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /projects/{project_id}/pipeline-definitions | List pipeline definitions |\n| POST | /projects/{project_id}/pipeline-definitions | Create pipeline definition |\n| GET | /projects/{project_id}/pipeline-definitions/{pipeline_definition_id} | Get pipeline definition |\n| PATCH | /projects/{project_id}/pipeline-definitions/{pipeline_definition_id} | Update pipeline definition |\n| DELETE | /projects/{project_id}/pipeline-definitions/{pipeline_definition_id} | Delete pipeline definition |\n| GET | /projects/{project_id}/pipeline-definitions/{pipeline_definition_id}/triggers | List pipeline definition triggers |\n| POST | /projects/{project_id}/pipeline-definitions/{pipeline_definition_id}/triggers | Create trigger |\n| GET | /projects/{project_id}/triggers/{trigger_id} | Get trigger |\n| PATCH | /projects/{project_id}/triggers/{trigger_id} | Update trigger |\n| DELETE | /projects/{project_id}/triggers/{trigger_id} | Delete trigger |\n| POST | /projects/{project_id}/rollback | Rollback a project |\n\n### deploy\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /deploy/environments | List Environments |\n| GET | /deploy/environments/{environment_id} | Get Environment |\n| GET | /deploy/components | List Components |\n| GET | /deploy/components/{component_id} | Get Component |\n| GET | /deploy/components/{component_id}/versions | List Component Versions |\n\n### otel\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /otel/exporters | 🧪 List OTLP exporters |\n| POST | /otel/exporters | 🧪 Create an OTLP exporter |\n| DELETE | /otel/exporters/{otel_exporter_id} | 🧪 Delete an OTLP exporter |\n\n## Common Questions\n\nMatch user requests to endpoints in references/api-spec.lap. Key patterns:\n- \"List all summary?\" -> GET /insights/pages/{project-slug}/summary\n- \"List all jobs?\" -> GET /insights/time-series/{project-slug}/workflows/{workflow-name}/jobs\n- \"List all summary?\" -> GET /insights/{org-slug}/summary\n- \"List all branches?\" -> GET /insights/{project-slug}/branches\n- \"List all flaky-tests?\" -> GET /insights/{project-slug}/flaky-tests\n- \"List all workflows?\" -> GET /insights/{project-slug}/workflows\n- \"Get workflow details?\" -> GET /insights/{project-slug}/workflows/{workflow-name}\n- \"List all jobs?\" -> GET /insights/{project-slug}/workflows/{workflow-name}/jobs\n- \"List all summary?\" -> GET /insights/{project-slug}/workflows/{workflow-name}/summary\n- \"List all test-metrics?\" -> GET /insights/{project-slug}/workflows/{workflow-name}/test-metrics\n- \"Create a cancel?\" -> POST /jobs/{job-id}/cancel\n- \"List all me?\" -> GET /me\n- \"List all collaborations?\" -> GET /me/collaborations\n- \"Create a organization?\" -> POST /organization\n- \"Delete a organization?\" -> DELETE /organization/{org-slug-or-id}\n- \"Get organization details?\" -> GET /organization/{org-slug-or-id}\n- \"Create a project?\" -> POST /organization/{org-slug-or-id}/project\n- \"Create a url-orb-allow-list?\" -> POST /organization/{org-slug-or-id}/url-orb-allow-list\n- \"List all url-orb-allow-list?\" -> GET /organization/{org-slug-or-id}/url-orb-allow-list\n- \"Delete a url-orb-allow-list?\" -> DELETE /organization/{org-slug-or-id}/url-orb-allow-list/{allow-list-entry-id}\n- \"List all pipeline?\" -> GET /pipeline\n- \"Create a continue?\" -> POST /pipeline/continue\n- \"Get pipeline details?\" -> GET /pipeline/{pipeline-id}\n- \"List all config?\" -> GET /pipeline/{pipeline-id}/config\n- \"List all values?\" -> GET /pipeline/{pipeline-id}/values\n- \"List all workflow?\" -> GET /pipeline/{pipeline-id}/workflow\n- \"Get project details?\" -> GET /project/{project-slug}\n- \"Delete a project?\" -> DELETE /project/{project-slug}\n- \"List all checkout-key?\" -> GET /project/{project-slug}/checkout-key\n- \"Create a checkout-key?\" -> POST /project/{project-slug}/checkout-key\n- \"Delete a checkout-key?\" -> DELETE /project/{project-slug}/checkout-key/{fingerprint}\n- \"Get checkout-key details?\" -> GET /project/{project-slug}/checkout-key/{fingerprint}\n- \"List all envvar?\" -> GET /project/{project-slug}/envvar\n- \"Create a envvar?\" -> POST /project/{project-slug}/envvar\n- \"Get envvar details?\" -> GET /project/{project-slug}/envvar/{name}\n- \"Delete a envvar?\" -> DELETE /project/{project-slug}/envvar/{name}\n- \"Get job details?\" -> GET /project/{project-slug}/job/{job-number}\n- \"Create a cancel?\" -> POST /project/{project-slug}/job/{job-number}/cancel\n- \"Create a pipeline?\" -> POST /project/{project-slug}/pipeline\n- \"List all pipeline?\" -> GET /project/{project-slug}/pipeline\n- \"List all mine?\" -> GET /project/{project-slug}/pipeline/mine\n- \"Get pipeline details?\" -> GET /project/{project-slug}/pipeline/{pipeline-number}\n- \"List all schedule?\" -> GET /project/{project-slug}/schedule\n- \"Create a schedule?\" -> POST /project/{project-slug}/schedule\n- \"List all artifacts?\" -> GET /project/{project-slug}/{job-number}/artifacts\n- \"List all tests?\" -> GET /project/{project-slug}/{job-number}/tests\n- \"Delete a schedule?\" -> DELETE /schedule/{schedule-id}\n- \"Get schedule details?\" -> GET /schedule/{schedule-id}\n- \"Partially update a schedule?\" -> PATCH /schedule/{schedule-id}\n- \"Get user details?\" -> GET /user/{id}\n- \"Create a webhook?\" -> POST /webhook\n- \"List all webhook?\" -> GET /webhook\n- \"Update a webhook?\" -> PUT /webhook/{webhook-id}\n- \"Get webhook details?\" -> GET /webhook/{webhook-id}\n- \"Delete a webhook?\" -> DELETE /webhook/{webhook-id}\n- \"Get workflow details?\" -> GET /workflow/{id}\n- \"Create a cancel?\" -> POST /workflow/{id}/cancel\n- \"List all job?\" -> GET /workflow/{id}/job\n- \"Create a rerun?\" -> POST /workflow/{id}/rerun\n- \"List all oidc-custom-claims?\" -> GET /org/{orgID}/oidc-custom-claims\n- \"List all oidc-custom-claims?\" -> GET /org/{orgID}/project/{projectID}/oidc-custom-claims\n- \"List all decision?\" -> GET /owner/{ownerID}/context/{context}/decision\n- \"Create a decision?\" -> POST /owner/{ownerID}/context/{context}/decision\n- \"List all settings?\" -> GET /owner/{ownerID}/context/{context}/decision/settings\n- \"Get decision details?\" -> GET /owner/{ownerID}/context/{context}/decision/{decisionID}\n- \"List all policy-bundle?\" -> GET /owner/{ownerID}/context/{context}/decision/{decisionID}/policy-bundle\n- \"List all policy-bundle?\" -> GET /owner/{ownerID}/context/{context}/policy-bundle\n- \"Create a policy-bundle?\" -> POST /owner/{ownerID}/context/{context}/policy-bundle\n- \"Get policy-bundle details?\" -> GET /owner/{ownerID}/context/{context}/policy-bundle/{policyName}\n- \"Create a context?\" -> POST /context\n- \"List all context?\" -> GET /context\n- \"Get context details?\" -> GET /context/{context_id}\n- \"Delete a context?\" -> DELETE /context/{context_id}\n- \"List all environment-variable?\" -> GET /context/{context_id}/environment-variable\n- \"Update a environment-variable?\" -> PUT /context/{context_id}/environment-variable/{env_var_name}\n- \"Delete a environment-variable?\" -> DELETE /context/{context_id}/environment-variable/{env_var_name}\n- \"List all restrictions?\" -> GET /context/{context_id}/restrictions\n- \"Create a restriction?\" -> POST /context/{context_id}/restrictions\n- \"Delete a restriction?\" -> DELETE /context/{context_id}/restrictions/{restriction_id}\n- \"List all settings?\" -> GET /project/{provider}/{organization}/{project}/settings\n- \"List all groups?\" -> GET /organizations/{org_id}/groups\n- \"Create a group?\" -> POST /organizations/{org_id}/groups\n- \"Get group details?\" -> GET /organizations/{org_id}/groups/{group_id}\n- \"Delete a group?\" -> DELETE /organizations/{org_id}/groups/{group_id}\n- \"Create a usage_export_job?\" -> POST /organizations/{org_id}/usage_export_job\n- \"Get usage_export_job details?\" -> GET /organizations/{org_id}/usage_export_job/{usage_export_job_id}\n- \"Create a run?\" -> POST /project/{provider}/{organization}/{project}/pipeline/run\n- \"List all pipeline-definitions?\" -> GET /projects/{project_id}/pipeline-definitions\n- \"Create a pipeline-definition?\" -> POST /projects/{project_id}/pipeline-definitions\n- \"Get pipeline-definition details?\" -> GET /projects/{project_id}/pipeline-definitions/{pipeline_definition_id}\n- \"Partially update a pipeline-definition?\" -> PATCH /projects/{project_id}/pipeline-definitions/{pipeline_definition_id}\n- \"Delete a pipeline-definition?\" -> DELETE /projects/{project_id}/pipeline-definitions/{pipeline_definition_id}\n- \"List all triggers?\" -> GET /projects/{project_id}/pipeline-definitions/{pipeline_definition_id}/triggers\n- \"Create a trigger?\" -> POST /projects/{project_id}/pipeline-definitions/{pipeline_definition_id}/triggers\n- \"Get trigger details?\" -> GET /projects/{project_id}/triggers/{trigger_id}\n- \"Partially update a trigger?\" -> PATCH /projects/{project_id}/triggers/{trigger_id}\n- \"Delete a trigger?\" -> DELETE /projects/{project_id}/triggers/{trigger_id}\n- \"Create a rollback?\" -> POST /projects/{project_id}/rollback\n- \"List all environments?\" -> GET /deploy/environments\n- \"Get environment details?\" -> GET /deploy/environments/{environment_id}\n- \"List all components?\" -> GET /deploy/components\n- \"Get component details?\" -> GET /deploy/components/{component_id}\n- \"List all versions?\" -> GET /deploy/components/{component_id}/versions\n- \"List all exporters?\" -> GET /otel/exporters\n- \"Create a exporter?\" -> POST /otel/exporters\n- \"Delete a exporter?\" -> DELETE /otel/exporters/{otel_exporter_id}\n- \"How to authenticate?\" -> See Auth section\n\n## Response Tips\n- Check response schemas in references/api-spec.lap for field details\n- List endpoints may support pagination; check for limit, offset, or cursor params\n- Create/update endpoints typically return the created/updated object\n\n## CLI\n\n```bash\n# Update this spec to the latest version\nnpx @lap-platform/lapsh get circleci-api -o references/api-spec.lap\n\n# Search for related APIs\nnpx @lap-platform/lapsh search circleci-api\n```\n\n## References\n- Full spec: See references/api-spec.lap for complete endpoint details, parameter tables, and response schemas\n\n> Generated from the official API spec by [LAP](https://lap.sh)\n","references/api-spec.lap":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api CircleCI API\n@base https://circleci.com/api/v2\n@version v2\n@auth ApiKey Circle-Token in header | Basic | ApiKey circle-token in query\n@endpoints 113\n@hint download_for_search\n@toc insights(10), jobs(1), me(2), organization(7), pipeline(6), project(23), schedule(3), user(1), webhook(5), workflow(5), org(6), owner(9), context(10), organizations(6), projects(11), deploy(5), otel(3)\n\n@group insights\n@endpoint GET /insights/pages/{project-slug}/summary\n@desc Get summary metrics and trends for a project across it's workflows and branches\n@required {project-slug: str # Project slug in the form `vcs-slug/org-name/repo-name`. The `/` characters may be URL-escaped. For projects that use GitLab or GitHub App, use `circleci` as the `vcs-slug`, replace `org-name` with the organization ID (found in Organization Settings), and replace `repo-name` with the project ID (found in Project Settings).}\n@optional {reporting-window: str(last-7-days/last-90-days/last-24-hours/last-30-days/last-60-days) # The time window used to calculate summary metrics. If not provided, defaults to last-90-days, branches: map # The names of VCS branches to include in branch-level workflow metrics., workflow-names: map # The names of workflows to include in workflow-level metrics.}\n@returns(200) {org_id: any, project_id: any, project_data: map{metrics: map{total_runs: int(int64), total_duration_secs: int(int64), total_credits_used: int(int64), success_rate: num(float), throughput: num(float)}, trends: map{total_runs: num(float), total_duration_secs: num(float), total_credits_used: num(float), success_rate: num(float), throughput: num(float)}}, project_workflow_data: [map], project_workflow_branch_data: [map], all_branches: [str], all_workflows: [str]} # Aggregated summary metrics and trends by workflow and branches\n\n@endpoint GET /insights/time-series/{project-slug}/workflows/{workflow-name}/jobs\n@desc Job timeseries data\n@required {project-slug: str # Project slug in the form `vcs-slug/org-name/repo-name`. The `/` characters may be URL-escaped. For projects that use GitLab or GitHub App, use `circleci` as the `vcs-slug`, replace `org-name` with the organization ID (found in Organization Settings), and replace `repo-name` with the project ID (found in Project Settings)., workflow-name: str # The name of the workflow.}\n@optional {branch: str # The name of a vcs branch. If not passed we will scope the API call to the default branch., granularity: str(daily/hourly) # The granularity for which to query timeseries data., start-date: str(date-time) # Include only executions that started at or after this date. This must be specified if an end-date is provided., end-date: str(date-time) # Include only executions that started before this date. This date can be at most 90 days after the start-date.}\n@returns(200) {next_page_token: str, items: [map]} # An array of timeseries data, one entry per job.\n\n@endpoint GET /insights/{org-slug}/summary\n@desc Get summary metrics with trends for the entire org, and for each project.\n@required {org-slug: str # Org slug in the form `vcs-slug/org-name`. The `/` characters may be URL-escaped.}\n@optional {reporting-window: str(last-7-days/last-90-days/last-24-hours/last-30-days/last-60-days) # The time window used to calculate summary metrics. If not provided, defaults to last-90-days, project-names: map # List of project names.}\n@returns(200) {org_data: map{metrics: map{total_runs: int(int64), total_duration_secs: int(int64), total_credits_used: int(int64), success_rate: num(float), throughput: num(float)}, trends: map{total_runs: num(float), total_duration_secs: num(float), total_credits_used: num(float), success_rate: num(float), throughput: num(float)}}, org_project_data: [map], all_projects: [str]} # summary metrics with trends for an entire org and it's projects.\n\n@endpoint GET /insights/{project-slug}/branches\n@desc Get all branches for a project\n@required {project-slug: str # Project slug in the form `vcs-slug/org-name/repo-name`. The `/` characters may be URL-escaped. For projects that use GitLab or GitHub App, use `circleci` as the `vcs-slug`, replace `org-name` with the organization ID (found in Organization Settings), and replace `repo-name` with the project ID (found in Project Settings).}\n@optional {workflow-name: str # The name of a workflow. If not passed we will scope the API call to the project.}\n@returns(200) {org_id: any, project_id: any, branches: [str]} # A list of branches for a project\n\n@endpoint GET /insights/{project-slug}/flaky-tests\n@desc Get flaky tests for a project\n@required {project-slug: str # Project slug in the form `vcs-slug/org-name/repo-name`. The `/` characters may be URL-escaped. For projects that use GitLab or GitHub App, use `circleci` as the `vcs-slug`, replace `org-name` with the organization ID (found in Organization Settings), and replace `repo-name` with the project ID (found in Project Settings).}\n@returns(200) {flaky-tests: [map], total-flaky-tests: num(double)} # A list of flaky tests for a project\n\n@endpoint GET /insights/{project-slug}/workflows\n@desc Get summary metrics for a project's workflows\n@required {project-slug: str # Project slug in the form `vcs-slug/org-name/repo-name`. The `/` characters may be URL-escaped. For projects that use GitLab or GitHub App, use `circleci` as the `vcs-slug`, replace `org-name` with the organization ID (found in Organization Settings), and replace `repo-name` with the project ID (found in Project Settings).}\n@optional {page-token: str # A token to retrieve the next page of results., all-branches: bool # Whether to retrieve data for all branches combined. Use either this parameter OR the branch name parameter., branch: str # The name of a vcs branch. If not passed we will scope the API call to the default branch., reporting-window: str(last-7-days/last-90-days/last-24-hours/last-30-days/last-60-days) # The time window used to calculate summary metrics. If not provided, defaults to last-90-days}\n@returns(200) {items: [map], next_page_token: str} # A paginated list of summary metrics by workflow\n\n@endpoint GET /insights/{project-slug}/workflows/{workflow-name}\n@desc Get recent runs of a workflow\n@required {project-slug: str # Project slug in the form `vcs-slug/org-name/repo-name`. The `/` characters may be URL-escaped. For projects that use GitLab or GitHub App, use `circleci` as the `vcs-slug`, replace `org-name` with the organization ID (found in Organization Settings), and replace `repo-name` with the project ID (found in Project Settings)., workflow-name: str # The name of the workflow.}\n@optional {all-branches: bool # Whether to retrieve data for all branches combined. Use either this parameter OR the branch name parameter., branch: str # The name of a vcs branch. If not passed we will scope the API call to the default branch., page-token: str # A token to retrieve the next page of results., start-date: str(date-time) # Include only executions that started at or after this date. This must be specified if an end-date is provided., end-date: str(date-time) # Include only executions that started before this date. This date can be at most 90 days after the start-date.}\n@returns(200) {items: [map], next_page_token: str} # A paginated list of recent workflow runs\n\n@endpoint GET /insights/{project-slug}/workflows/{workflow-name}/jobs\n@desc Get summary metrics for a project workflow's jobs.\n@required {project-slug: str # Project slug in the form `vcs-slug/org-name/repo-name`. The `/` characters may be URL-escaped. For projects that use GitLab or GitHub App, use `circleci` as the `vcs-slug`, replace `org-name` with the organization ID (found in Organization Settings), and replace `repo-name` with the project ID (found in Project Settings)., workflow-name: str # The name of the workflow.}\n@optional {page-token: str # A token to retrieve the next page of results., all-branches: bool # Whether to retrieve data for all branches combined. Use either this parameter OR the branch name parameter., branch: str # The name of a vcs branch. If not passed we will scope the API call to the default branch., reporting-window: str(last-7-days/last-90-days/last-24-hours/last-30-days/last-60-days) # The time window used to calculate summary metrics. If not provided, defaults to last-90-days, job-name: str # The name of the jobs you would like to filter from your workflow. If not specified, all workflow jobs will be returned. The job name can either be the full job name or just a substring of the job name.}\n@returns(200) {items: [map], next_page_token: str} # A paginated list of summary metrics by workflow job.\n\n@endpoint GET /insights/{project-slug}/workflows/{workflow-name}/summary\n@desc Get metrics and trends for workflows\n@required {project-slug: str # Project slug in the form `vcs-slug/org-name/repo-name`. The `/` characters may be URL-escaped. For projects that use GitLab or GitHub App, use `circleci` as the `vcs-slug`, replace `org-name` with the organization ID (found in Organization Settings), and replace `repo-name` with the project ID (found in Project Settings)., workflow-name: str # The name of the workflow.}\n@optional {all-branches: bool # Whether to retrieve data for all branches combined. Use either this parameter OR the branch name parameter., branch: str # The name of a vcs branch. If not passed we will scope the API call to the default branch.}\n@returns(200) {metrics: map{total_runs: int(int64), successful_runs: int(int64), mttr: int(int64), total_credits_used: int(int64), failed_runs: int(int64), success_rate: num(float), completed_runs: int(int64), window_start: str(date-time), duration_metrics: map{min: int(int64), mean: int(int64), median: int(int64), p95: int(int64), max: int(int64), standard_deviation: num(float)}, window_end: str(date-time), throughput: num(float)}, trends: map{total_runs: num(float), failed_runs: num(float), success_rate: num(float), p95_duration_secs: num(float), median_duration_secs: num(float), total_credits_used: num(float), mttr: num(float), throughput: num(float)}, workflow_names: [str]} # Metrics and trends for a workflow\n\n@endpoint GET /insights/{project-slug}/workflows/{workflow-name}/test-metrics\n@desc Get test metrics for a project's workflows\n@required {project-slug: str # Project slug in the form `vcs-slug/org-name/repo-name`. The `/` characters may be URL-escaped. For projects that use GitLab or GitHub App, use `circleci` as the `vcs-slug`, replace `org-name` with the organization ID (found in Organization Settings), and replace `repo-name` with the project ID (found in Project Settings)., workflow-name: str # The name of the workflow.}\n@optional {branch: str # The name of a vcs branch. If not passed we will scope the API call to the default branch., all-branches: bool # Whether to retrieve data for all branches combined. Use either this parameter OR the branch name parameter.}\n@returns(200) {average_test_count: int(int64), most_failed_tests: [map], most_failed_tests_extra: int(int64), slowest_tests: [map], slowest_tests_extra: int(int64), total_test_runs: int(int64), test_runs: [map]} # A list of test metrics by workflow\n\n@endgroup\n\n@group jobs\n@endpoint POST /jobs/{job-id}/cancel\n@desc Cancel job by job ID\n@required {job-id: str(uuid) # The unique ID of the job.}\n@returns(200) {message: str} # Job cancelled successfully.\n@errors {400: Bad request error., 401: Unauthorized error., 403: Forbidden error., 404: Job not found error.}\n\n@endgroup\n\n@group me\n@endpoint GET /me\n@desc User Information\n@returns(200) {avatar_url: str, id: str(uuid), login: str, name: str} # User login information.\n\n@endpoint GET /me/collaborations\n@desc Collaborations\n@returns(200) Collaborations\n\n@endgroup\n\n@group organization\n@endpoint POST /organization\n@desc Create a new organization\n@required {name: str # The name of the organization., vcs_type: str(github/bitbucket/circleci) # The version control system type for the organization.}\n@returns(201) {id: str, name: str, slug: str, vcs_type: str} # The newly created organization\n\n@endpoint DELETE /organization/{org-slug-or-id}\n@desc Delete an organization\n@required {org-slug-or-id: str # Org UUID or slug in the form `vcs-slug/org-name`. For projects that use GitLab or GitHub App, use `circleci` as the `vcs-slug` and replace the `org-name` with the organization ID (found in Organization Settings).}\n@returns(202) {message: str} # A confirmation message.\n\n@endpoint GET /organization/{org-slug-or-id}\n@desc Get an organization\n@required {org-slug-or-id: str # Org UUID or slug in the form `vcs-slug/org-name`. For projects that use GitLab or GitHub App, use `circleci` as the `vcs-slug` and replace the `org-name` with the organization ID (found in Organization Settings).}\n@returns(200) {id: str, name: str, slug: str, vcs_type: str} # An organization object\n\n@endpoint POST /organization/{org-slug-or-id}/project\n@desc Create a new project\n@required {org-slug-or-id: str # Org UUID or slug in the form `vcs-slug/org-name`. For projects that use GitLab or GitHub App, use `circleci` as the `vcs-slug` and replace the `org-name` with the organization ID (found in Organization Settings)., name: str # The name of the project}\n@returns(200) {slug: str, name: str, id: str(uuid), organization_name: str, organization_slug: str, organization_id: str(uuid), vcs_info: map{vcs_url: str, provider: str, default_branch: str}} # The new project\n\n@endpoint POST /organization/{org-slug-or-id}/url-orb-allow-list\n@desc Create a new URL Orb allow-list entry\n@required {org-slug-or-id: str # Org UUID or slug in the form `vcs-slug/org-name`. For projects that use GitLab or GitHub App, use `circleci` as the `vcs-slug` and replace the `org-name` with the organization ID (found in Organization Settings)., name: str # Name of the URL orb allow-list entry., prefix: any # URL prefix. URL orb references that start with this prefix will be allowed by this allow-list entry., auth: str(github-oauth/none/bitbucket-oauth/github-app) # An authentication method to use for fetching URL orb references that match this allow-list entry's prefix. Allowed values are \"bitbucket-oauth\", \"github-oauth\", \"github-app\", or \"none\".}\n@returns(200) {id: str, message: str} # The ID of the new URL Orb allow-list entry\n\n@endpoint GET /organization/{org-slug-or-id}/url-orb-allow-list\n@desc List the entries in the org's URL Orb allow-list\n@required {org-slug-or-id: str # Org UUID or slug in the form `vcs-slug/org-name`. For projects that use GitLab or GitHub App, use `circleci` as the `vcs-slug` and replace the `org-name` with the organization ID (found in Organization Settings).}\n@returns(200) {items: [map]} # URL Orb allow-list entries\n\n@endpoint DELETE /organization/{org-slug-or-id}/url-orb-allow-list/{allow-list-entry-id}\n@desc Remove an entry from the org's URL orb allow-list\n@required {org-slug-or-id: str # Org UUID or slug in the form `vcs-slug/org-name`. For projects that use GitLab or GitHub App, use `circleci` as the `vcs-slug` and replace the `org-name` with the organization ID (found in Organization Settings)., allow-list-entry-id: str # URL orb allow-list entry UUID.}\n@returns(200) {id: str, message: str} # The ID of the removed URL Orb allow-list entry\n\n@endgroup\n\n@group pipeline\n@endpoint GET /pipeline\n@desc Get a list of pipelines\n@optional {org-slug: str # Org slug in the form `vcs-slug/org-name`. For projects that use GitLab or GitHub App, use `circleci` as the `vcs-slug` and replace the `org-name` with the organization ID (found in Organization Settings)., page-token: str # A token to retrieve the next page of results., mine: bool # Only include entries created by your user.}\n@returns(200) {items: [map], next_page_token: str} # A sequence of pipelines.\n\n@endpoint POST /pipeline/continue\n@desc Continue a pipeline\n@required {continuation-key: str # A pipeline continuation key., configuration: str # A configuration string for the pipeline.}\n@optional {parameters: map # An object containing pipeline parameters and their values. Pipeline parameters have the following size limits: 100 max entries, 128 maximum key length, 512 maximum value length.}\n@returns(200) {message: str} # A confirmation message.\n\n@endpoint GET /pipeline/{pipeline-id}\n@desc Get a pipeline by ID\n@required {pipeline-id: str(uuid) # The unique ID of the pipeline.}\n@returns(200) {id: str(uuid), errors: [map], project_slug: str, updated_at: str(date-time), number: int(int64), trigger_parameters: map, state: str, created_at: str(date-time), trigger: map{type: str, received_at: str(date-time), actor: map{login: str, avatar_url: str}}, vcs: map{provider_name: str, target_repository_url: str, branch: str, review_id: str, review_url: str, revision: str, tag: str, commit: map{subject: str, body: str}, origin_repository_url: str}} # A pipeline object.\n\n@endpoint GET /pipeline/{pipeline-id}/config\n@desc Get a pipeline's configuration\n@required {pipeline-id: str(uuid) # The unique ID of the pipeline.}\n@returns(200) {source: str, compiled: str, setup-config: str, compiled-setup-config: str} # The configuration strings for the pipeline.\n\n@endpoint GET /pipeline/{pipeline-id}/values\n@desc Get pipeline values for a pipeline\n@required {pipeline-id: str(uuid) # The unique ID of the pipeline.}\n@returns(200) A JSON object of pipeline values\n\n@endpoint GET /pipeline/{pipeline-id}/workflow\n@desc Get a pipeline's workflows\n@required {pipeline-id: str(uuid) # The unique ID of the pipeline.}\n@optional {page-token: str # A token to retrieve the next page of results.}\n@returns(200) {items: [map], next_page_token: str} # A paginated list of workflow objects.\n\n@endgroup\n\n@group project\n@endpoint GET /project/{project-slug}\n@desc Get a project\n@required {project-slug: str # Project slug in the form `vcs-slug/org-name/repo-name`. The `/` characters may be URL-escaped. For projects that use GitLab or GitHub App, use `circleci` as the `vcs-slug`, replace `org-name` with the organization ID (found in Organization Settings), and replace `repo-name` with the project ID (found in Project Settings).}\n@returns(200) {slug: str, name: str, id: str(uuid), organization_name: str, organization_slug: str, organization_id: str(uuid), vcs_info: map{vcs_url: str, provider: str, default_branch: str}} # A project object\n\n@endpoint DELETE /project/{project-slug}\n@desc Delete a project\n@required {project-slug: str # Project slug in the form `vcs-slug/org-name/repo-name`. The `/` characters may be URL-escaped. For projects that use GitLab or GitHub App, use `circleci` as the `vcs-slug`, replace `org-name` with the organization ID (found in Organization Settings), and replace `repo-name` with the project ID (found in Project Settings).}\n@returns(200) {message: str} # A confirmation message.\n\n@endpoint GET /project/{project-slug}/checkout-key\n@desc Get all checkout keys\n@required {project-slug: str # Project slug in the form `vcs-slug/org-name/repo-name`. The `/` characters may be URL-escaped. For projects that use GitLab or GitHub App, use `circleci` as the `vcs-slug`, replace `org-name` with the organization ID (found in Organization Settings), and replace `repo-name` with the project ID (found in Project Settings).}\n@optional {digest: str(sha256/md5) # The fingerprint digest type to return. This may be either `md5` or `sha256`. If not passed, defaults to `md5`.}\n@returns(200) {items: [map], next_page_token: str} # A sequence of checkout keys.\n\n@endpoint POST /project/{project-slug}/checkout-key\n@desc Create a new checkout key\n@required {project-slug: str # Project slug in the form `vcs-slug/org-name/repo-name`. The `/` characters may be URL-escaped. For projects that use GitLab or GitHub App, use `circleci` as the `vcs-slug`, replace `org-name` with the organization ID (found in Organization Settings), and replace `repo-name` with the project ID (found in Project Settings)., type: str(user-key/deploy-key) # The type of checkout key to create. This may be either `deploy-key` or `user-key`.}\n@returns(201) {public-key: str, type: str, fingerprint: str, preferred: bool, created-at: str(date-time)} # The checkout key.\n\n@endpoint DELETE /project/{project-slug}/checkout-key/{fingerprint}\n@desc Delete a checkout key\n@required {project-slug: str # Project slug in the form `vcs-slug/org-name/repo-name`. The `/` characters may be URL-escaped. For projects that use GitLab or GitHub App, use `circleci` as the `vcs-slug`, replace `org-name` with the organization ID (found in Organization Settings), and replace `repo-name` with the project ID (found in Project Settings)., fingerprint: str # An SSH key fingerprint.}\n@returns(200) {message: str} # A confirmation message.\n\n@endpoint GET /project/{project-slug}/checkout-key/{fingerprint}\n@desc Get a checkout key\n@required {project-slug: str # Project slug in the form `vcs-slug/org-name/repo-name`. The `/` characters may be URL-escaped. For projects that use GitLab or GitHub App, use `circleci` as the `vcs-slug`, replace `org-name` with the organization ID (found in Organization Settings), and replace `repo-name` with the project ID (found in Project Settings)., fingerprint: str # An SSH key fingerprint.}\n@returns(200) {public-key: str, type: str, fingerprint: str, preferred: bool, created-at: str(date-time)} # The checkout key.\n\n@endpoint GET /project/{project-slug}/envvar\n@desc List all environment variables\n@required {project-slug: str # Project slug in the form `vcs-slug/org-name/repo-name`. The `/` characters may be URL-escaped. For projects that use GitLab or GitHub App, use `circleci` as the `vcs-slug`, replace `org-name` with the organization ID (found in Organization Settings), and replace `repo-name` with the project ID (found in Project Settings).}\n@returns(200) {items: [map], next_page_token: str} # A sequence of environment variables.\n\n@endpoint POST /project/{project-slug}/envvar\n@desc Create an environment variable\n@required {project-slug: str # Project slug in the form `vcs-slug/org-name/repo-name`. The `/` characters may be URL-escaped. For projects that use GitLab or GitHub App, use `circleci` as the `vcs-slug`, replace `org-name` with the organization ID (found in Organization Settings), and replace `repo-name` with the project ID (found in Project Settings)., name: str # The name of the environment variable., value: str # The value of the environment variable.}\n@returns(201) {name: str, value: str, created-at: any} # The environment variable.\n\n@endpoint GET /project/{project-slug}/envvar/{name}\n@desc Get a masked environment variable\n@required {project-slug: str # Project slug in the form `vcs-slug/org-name/repo-name`. The `/` characters may be URL-escaped. For projects that use GitLab or GitHub App, use `circleci` as the `vcs-slug`, replace `org-name` with the organization ID (found in Organization Settings), and replace `repo-name` with the project ID (found in Project Settings)., name: str # The name of the environment variable.}\n@returns(200) {name: str, value: str, created-at: any} # The environment variable.\n\n@endpoint DELETE /project/{project-slug}/envvar/{name}\n@desc Delete an environment variable\n@required {project-slug: str # Project slug in the form `vcs-slug/org-name/repo-name`. The `/` characters may be URL-escaped. For projects that use GitLab or GitHub App, use `circleci` as the `vcs-slug`, replace `org-name` with the organization ID (found in Organization Settings), and replace `repo-name` with the project ID (found in Project Settings)., name: str # The name of the environment variable.}\n@returns(200) {message: str} # A confirmation message.\n\n@endpoint GET /project/{project-slug}/job/{job-number}\n@desc Get job details\n@required {job-number: any # The number of the job., project-slug: str # Project slug in the form `vcs-slug/org-name/repo-name`. The `/` characters may be URL-escaped. For projects that use GitLab or GitHub App, use `circleci` as the `vcs-slug`, replace `org-name` with the organization ID (found in Organization Settings), and replace `repo-name` with the project ID (found in Project Settings).}\n@returns(200) {web_url: str, project: map{id: str(uuid), slug: str, name: str, external_url: str}, parallel_runs: [map], started_at: str(date-time), latest_workflow: map{id: str(uuid), name: str}, name: str, executor: map{resource_class: str, type: str}, parallelism: int(int64), status: str, number: int(int64), pipeline: map{id: str(uuid)}, duration: int(int64), created_at: str(date-time), messages: [map], contexts: [map], organization: map{name: str}, queued_at: str(date-time), stopped_at: str(date-time)} # Job details.\n\n@endpoint POST /project/{project-slug}/job/{job-number}/cancel\n@desc Cancel job by job number\n@required {job-number: any # The number of the job., project-slug: str # Project slug in the form `vcs-slug/org-name/repo-name`. The `/` characters may be URL-escaped. For projects that use GitLab or GitHub App, use `circleci` as the `vcs-slug`, replace `org-name` with the organization ID (found in Organization Settings), and replace `repo-name` with the project ID (found in Project Settings).}\n@returns(200) {message: str}\n\n@endpoint POST /project/{project-slug}/pipeline\n@desc Trigger a new pipeline\n@required {project-slug: str # Project slug in the form `vcs-slug/org-name/repo-name`. The `/` characters may be URL-escaped. For projects that use GitLab or GitHub App, use `circleci` as the `vcs-slug`, replace `org-name` with the organization ID (found in Organization Settings), and replace `repo-name` with the project ID (found in Project Settings).}\n@optional {branch: str # The branch where the pipeline ran. The HEAD commit on this branch was used for the pipeline. Note that `branch` and `tag` are mutually exclusive. To trigger a pipeline for a PR by number use `pull//head` for the PR ref or `pull//merge` for the merge ref (GitHub only)., tag: str # The tag used by the pipeline. The commit that this tag points to was used for the pipeline. Note that `branch` and `tag` are mutually exclusive., parameters: map # An object containing pipeline parameters and their values. Pipeline parameters have the following size limits: 100 max entries, 128 maximum key length, 512 maximum value length.}\n@returns(201) {id: str(uuid), state: str, number: int(int64), created_at: str(date-time)} # The created pipeline.\n\n@endpoint GET /project/{project-slug}/pipeline\n@desc Get all pipelines\n@required {project-slug: str # Project slug in the form `vcs-slug/org-name/repo-name`. The `/` characters may be URL-escaped. For projects that use GitLab or GitHub App, use `circleci` as the `vcs-slug`, replace `org-name` with the organization ID (found in Organization Settings), and replace `repo-name` with the project ID (found in Project Settings).}\n@optional {branch: str # The name of a vcs branch., page-token: str # A token to retrieve the next page of results.}\n@returns(200) {items: [map], next_page_token: str} # A sequence of pipelines.\n\n@endpoint GET /project/{project-slug}/pipeline/mine\n@desc Get your pipelines\n@required {project-slug: str # Project slug in the form `vcs-slug/org-name/repo-name`. The `/` characters may be URL-escaped. For projects that use GitLab or GitHub App, use `circleci` as the `vcs-slug`, replace `org-name` with the organization ID (found in Organization Settings), and replace `repo-name` with the project ID (found in Project Settings).}\n@optional {page-token: str # A token to retrieve the next page of results.}\n@returns(200) {items: [map], next_page_token: str} # A sequence of pipelines.\n\n@endpoint GET /project/{project-slug}/pipeline/{pipeline-number}\n@desc Get a pipeline by pipeline number\n@required {project-slug: str # Project slug in the form `vcs-slug/org-name/repo-name`. The `/` characters may be URL-escaped. For projects that use GitLab or GitHub App, use `circleci` as the `vcs-slug`, replace `org-name` with the organization ID (found in Organization Settings), and replace `repo-name` with the project ID (found in Project Settings)., pipeline-number: any # The number of the pipeline.}\n@returns(200) {id: str(uuid), errors: [map], project_slug: str, updated_at: str(date-time), number: int(int64), trigger_parameters: map, state: str, created_at: str(date-time), trigger: map{type: str, received_at: str(date-time), actor: map{login: str, avatar_url: str}}, vcs: map{provider_name: str, target_repository_url: str, branch: str, review_id: str, review_url: str, revision: str, tag: str, commit: map{subject: str, body: str}, origin_repository_url: str}} # A pipeline object.\n\n@endpoint GET /project/{project-slug}/schedule\n@desc List schedule triggers\n@required {project-slug: str # Project slug in the form `vcs-slug/org-name/repo-name`. The `/` characters may be URL-escaped. For projects that use GitLab or GitHub App, use `circleci` as the `vcs-slug`, replace `org-name` with the organization ID (found in Organization Settings), and replace `repo-name` with the project ID (found in Project Settings).}\n@optional {page-token: str # A token to retrieve the next page of results.}\n@returns(200) {items: [map], next_page_token: str} # A sequence of schedules.\n\n@endpoint POST /project/{project-slug}/schedule\n@desc Create a schedule\n@required {project-slug: str # Project slug in the form `vcs-slug/org-name/repo-name`. The `/` characters may be URL-escaped. For projects that use GitLab or GitHub App, use `circleci` as the `vcs-slug`, replace `org-name` with the organization ID (found in Organization Settings), and replace `repo-name` with the project ID (found in Project Settings)., name: str # Name of the schedule., timetable: any # Timetable that specifies when a schedule triggers., attribution-actor: str(current/system) # The attribution-actor of the scheduled pipeline., parameters: map # Pipeline parameters represented as key-value pairs. Must contain branch or tag.}\n@optional {description: str # Description of the schedule.}\n@returns(201) {id: str(uuid), timetable: any, updated-at: str(date-time), name: str, created-at: str(date-time), project-slug: str, parameters: map, actor: map{avatar_url: str, id: str(uuid), login: str, name: str}, description: str} # A schedule object.\n\n@endpoint GET /project/{project-slug}/{job-number}/artifacts\n@desc Get a job's artifacts\n@required {job-number: any # The number of the job., project-slug: str # Project slug in the form `vcs-slug/org-name/repo-name`. The `/` characters may be URL-escaped. For projects that use GitLab or GitHub App, use `circleci` as the `vcs-slug`, replace `org-name` with the organization ID (found in Organization Settings), and replace `repo-name` with the project ID (found in Project Settings).}\n@returns(200) {items: [map], next_page_token: str} # A paginated list of the job's artifacts.\n\n@endpoint GET /project/{project-slug}/{job-number}/tests\n@desc Get test metadata\n@required {job-number: any # The number of the job., project-slug: str # Project slug in the form `vcs-slug/org-name/repo-name`. The `/` characters may be URL-escaped. For projects that use GitLab or GitHub App, use `circleci` as the `vcs-slug`, replace `org-name` with the organization ID (found in Organization Settings), and replace `repo-name` with the project ID (found in Project Settings).}\n@returns(200) {items: [map], next_page_token: str} # A paginated list of test results.\n\n@endgroup\n\n@group schedule\n@endpoint DELETE /schedule/{schedule-id}\n@desc Delete a schedule\n@required {schedule-id: str(uuid) # The unique ID of the schedule.}\n@returns(200) {message: str} # A confirmation message.\n\n@endpoint GET /schedule/{schedule-id}\n@desc Get a schedule by ID. Available only on schedules associated with GitHub OAuth or Bitbucket Cloud pipeline definitions.\n@required {schedule-id: str(uuid) # The unique ID of the schedule.}\n@returns(200) {id: str(uuid), timetable: any, updated-at: str(date-time), name: str, created-at: str(date-time), project-slug: str, parameters: map, actor: map{avatar_url: str, id: str(uuid), login: str, name: str}, description: str} # A schedule object.\n\n@endpoint PATCH /schedule/{schedule-id}\n@desc Update a schedule\n@required {schedule-id: str(uuid) # The unique ID of the schedule.}\n@optional {description: str # Description of the schedule., name: str # Name of the schedule., timetable: map{per-hour: int(integer), hours-of-day: [int(integer)], days-of-week: [str], days-of-month: [int(integer)], months: [str]} # Timetable that specifies when a schedule triggers., attribution-actor: str(current/system) # The attribution-actor of the scheduled pipeline., parameters: map # Pipeline parameters represented as key-value pairs. Must contain branch or tag.}\n@returns(200) {id: str(uuid), timetable: any, updated-at: str(date-time), name: str, created-at: str(date-time), project-slug: str, parameters: map, actor: map{avatar_url: str, id: str(uuid), login: str, name: str}, description: str} # A schedule object.\n\n@endgroup\n\n@group user\n@endpoint GET /user/{id}\n@desc User Information\n@required {id: str(uuid) # The unique ID of the user.}\n@returns(200) {avatar_url: str, id: str(uuid), login: str, name: str} # User login information.\n\n@endgroup\n\n@group webhook\n@endpoint POST /webhook\n@desc Create an outbound webhook\n@required {name: str # Name of the webhook, events: [str] # Events that will trigger the webhook, url: str # URL to deliver the webhook to. Note: protocol must be included as well (only https is supported), verify-tls: bool # Whether to enforce TLS certificate verification when delivering the webhook, signing-secret: str # Secret used to build an HMAC hash of the payload and passed as a header in the webhook request, scope: map{id!: str(uuid), type!: str} # The scope in which the relevant events that will trigger webhooks}\n@returns(201) {url: str, verify-tls: bool, id: str(uuid), signing-secret: str, updated-at: str(date-time), name: str, created-at: str(date-time), scope: map{id: str(uuid), type: str}, events: [str]} # A webhook\n\n@endpoint GET /webhook\n@desc List webhooks\n@required {scope-id: str(uuid) # ID of the scope being used (at the moment, only project ID is supported), scope-type: str # Type of the scope being used}\n@returns(200) {items: [map], next_page_token: str} # A list of webhooks\n\n@endpoint PUT /webhook/{webhook-id}\n@desc Update an outbound webhook\n@required {webhook-id: str(uuid) # ID of the webhook (UUID)}\n@optional {name: str # Name of the webhook, events: [str] # Events that will trigger the webhook, url: str # URL to deliver the webhook to. Note: protocol must be included as well (only https is supported), signing-secret: str # Secret used to build an HMAC hash of the payload and passed as a header in the webhook request, verify-tls: bool # Whether to enforce TLS certificate verification when delivering the webhook}\n@returns(200) {url: str, verify-tls: bool, id: str(uuid), signing-secret: str, updated-at: str(date-time), name: str, created-at: str(date-time), scope: map{id: str(uuid), type: str}, events: [str]} # A webhook\n\n@endpoint GET /webhook/{webhook-id}\n@desc Get a webhook\n@required {webhook-id: str(uuid) # ID of the webhook (UUID)}\n@returns(200) {url: str, verify-tls: bool, id: str(uuid), signing-secret: str, updated-at: str(date-time), name: str, created-at: str(date-time), scope: map{id: str(uuid), type: str}, events: [str]} # A webhook\n\n@endpoint DELETE /webhook/{webhook-id}\n@desc Delete an outbound webhook\n@required {webhook-id: str(uuid) # ID of the webhook (UUID)}\n@returns(200) {message: str} # A confirmation message\n\n@endgroup\n\n@group workflow\n@endpoint GET /workflow/{id}\n@desc Get a workflow\n@required {id: str(uuid) # The unique ID of the workflow.}\n@returns(200) {pipeline_id: str(uuid), canceled_by: str(uuid), id: str(uuid), auto_rerun_number: int(int64), name: str, project_slug: str, errored_by: str(uuid), tag: str, status: str, started_by: str(uuid), max_auto_reruns: int(int64), pipeline_number: int(int64), created_at: str(date-time), stopped_at: str(date-time)} # A workflow object.\n\n@endpoint POST /workflow/{id}/approve/{approval_request_id}\n@desc Approve a job\n@required {approval_request_id: str(uuid) # The ID of the job being approved., id: str(uuid) # The unique ID of the workflow.}\n@returns(202) {message: str} # A confirmation message.\n\n@endpoint POST /workflow/{id}/cancel\n@desc Cancel a workflow\n@required {id: str(uuid) # The unique ID of the workflow.}\n@returns(202) {message: str} # A confirmation message.\n\n@endpoint GET /workflow/{id}/job\n@desc Get a workflow's jobs\n@required {id: str(uuid) # The unique ID of the workflow.}\n@returns(200) {items: [map], next_page_token: str} # A paginated sequence of jobs.\n\n@endpoint POST /workflow/{id}/rerun\n@desc Rerun a workflow\n@required {id: str(uuid) # The unique ID of the workflow.}\n@optional {enable_ssh: bool # Whether to enable SSH access for the triggering user on the newly-rerun job. Requires the jobs parameter to be used and so is mutually exclusive with the from_failed parameter., from_failed: bool # Whether to rerun the workflow from the failed job. Mutually exclusive with the jobs parameter., jobs: [str(uuid)] # A list of job IDs to rerun., sparse_tree: bool # Completes rerun using sparse trees logic, an optimization for workflows that have disconnected subgraphs. Requires jobs parameter and so is mutually exclusive with the from_failed parameter.}\n@returns(202) {workflow_id: str(uuid)} # A confirmation message.\n\n@endgroup\n\n@group org\n@endpoint DELETE /org/{orgID}/oidc-custom-claims\n@desc Delete org-level claims\n@required {orgID: str(uuid), claims: str # comma separated list of claims to delete. Valid values are \"audience\" and \"ttl\".}\n@returns(200) {audience: [str], audience_updated_at: str(date-time), org_id: str(uuid), project_id: str(uuid), ttl: str, ttl_updated_at: str(date-time)} # Claims successfully deleted.\n@errors {400: The request is malformed (e.g, a given path parameter is invalid), 403: The user is forbidden from making this request, 500: Something unexpected happened on the server.}\n\n@endpoint GET /org/{orgID}/oidc-custom-claims\n@desc Get org-level claims\n@required {orgID: str(uuid)}\n@returns(200) {audience: [str], audience_updated_at: str(date-time), org_id: str(uuid), project_id: str(uuid), ttl: str, ttl_updated_at: str(date-time)} # Claims successfully fetched.\n@errors {400: The request is malformed (e.g, a given path parameter is invalid), 403: The user is forbidden from making this request, 500: Something unexpected happened on the server.}\n\n@endpoint PATCH /org/{orgID}/oidc-custom-claims\n@desc Patch org-level claims\n@required {orgID: str(uuid)}\n@optional {audience: [str], ttl: str}\n@returns(200) {audience: [str], audience_updated_at: str(date-time), org_id: str(uuid), project_id: str(uuid), ttl: str, ttl_updated_at: str(date-time)} # Claims successfully patched.\n@errors {400: The request is malformed (e.g, a given path parameter is invalid), 403: The user is forbidden from making this request, 500: Something unexpected happened on the server.}\n\n@endpoint DELETE /org/{orgID}/project/{projectID}/oidc-custom-claims\n@desc Delete project-level claims\n@required {orgID: str(uuid), projectID: str(uuid), claims: str # comma separated list of claims to delete. Valid values are \"audience\" and \"ttl\".}\n@returns(200) {audience: [str], audience_updated_at: str(date-time), org_id: str(uuid), project_id: str(uuid), ttl: str, ttl_updated_at: str(date-time)} # Claims successfully deleted.\n@errors {400: The request is malformed (e.g, a given path parameter is invalid), 403: The user is forbidden from making this request, 500: Something unexpected happened on the server.}\n\n@endpoint GET /org/{orgID}/project/{projectID}/oidc-custom-claims\n@desc Get project-level claims\n@required {orgID: str(uuid), projectID: str(uuid)}\n@returns(200) {audience: [str], audience_updated_at: str(date-time), org_id: str(uuid), project_id: str(uuid), ttl: str, ttl_updated_at: str(date-time)} # Claims successfully fetched.\n@errors {400: The request is malformed (e.g, a given path parameter is invalid), 403: The user is forbidden from making this request, 500: Something unexpected happened on the server.}\n\n@endpoint PATCH /org/{orgID}/project/{projectID}/oidc-custom-claims\n@desc Patch project-level claims\n@required {orgID: str(uuid), projectID: str(uuid)}\n@optional {audience: [str], ttl: str}\n@returns(200) {audience: [str], audience_updated_at: str(date-time), org_id: str(uuid), project_id: str(uuid), ttl: str, ttl_updated_at: str(date-time)} # Claims successfully patched.\n@errors {400: The request is malformed (e.g, a given path parameter is invalid), 403: The user is forbidden from making this request, 500: Something unexpected happened on the server.}\n\n@endgroup\n\n@group owner\n@endpoint GET /owner/{ownerID}/context/{context}/decision\n@desc Retrieves the owner's decision audit logs.\n@required {ownerID: str, context: str}\n@optional {status: str # Return decisions matching this decision status., after: str(date-time) # Return decisions made after this date., before: str(date-time) # Return decisions made before this date., branch: str # Return decisions made on this branch., project_id: str # Return decisions made for this project., build_number: str # Return decisions made for this build number., offset: int # Sets the offset when retrieving the decisions, for paging.}\n@returns(200) Decision logs successfully retrieved.\n@errors {400: The request is malformed (e.g, a given path parameter is invalid), 401: The request is unauthorized, 403: The user is forbidden from making this request, 500: Something unexpected happened on the server.}\n\n@endpoint POST /owner/{ownerID}/context/{context}/decision\n@desc Makes a decision\n@required {ownerID: str, context: str, input: str}\n@optional {metadata: map}\n@returns(200) {enabled_rules: [str], hard_failures: [map], reason: str, soft_failures: [map], status: str} # Decision rendered by applying the policy against the provided data. Response will be modeled by the data and rego processed.\n@errors {400: The request is malformed, 401: The request is unauthorized, 500: Something unexpected happened on the server.}\n\n@endpoint GET /owner/{ownerID}/context/{context}/decision/settings\n@desc Get the decision settings\n@required {ownerID: str, context: str}\n@returns(200) {enabled: bool} # Decision settings successfully retrieved.\n@errors {400: The request is malformed (e.g, a given path parameter is invalid), 401: The request is unauthorized, 403: The user is forbidden from making this request, 500: Something unexpected happened on the server.}\n\n@endpoint PATCH /owner/{ownerID}/context/{context}/decision/settings\n@desc Set the decision settings\n@required {ownerID: str, context: str}\n@optional {enabled: bool}\n@returns(200) {enabled: bool} # Decision settings successfully set.\n@errors {400: The request is malformed (e.g, a given path parameter is invalid), 401: The request is unauthorized, 403: The user is forbidden from making this request, 500: Something unexpected happened on the server.}\n\n@endpoint GET /owner/{ownerID}/context/{context}/decision/{decisionID}\n@desc Retrieves the owner's decision audit log by given decisionID\n@required {ownerID: str, context: str, decisionID: str}\n@returns(200) {created_at: str(date-time), decision: map{enabled_rules: [str], hard_failures: [map], reason: str, soft_failures: [map], status: str}, id: str(uuid), metadata: map{build_number: int, project_id: str(uuid), ssh_rerun: bool, vcs: map{branch: str, origin_repository_url: str, release_tag: str, target_repository_url: str}}, policies: map, time_taken_ms: int} # Decision log successfully retrieved.\n@errors {400: The request is malformed (e.g, a given path parameter is invalid), 401: The request is unauthorized, 403: The user is forbidden from making this request, 404: There was no decision log found for given decision_id, and owner_id., 500: Something unexpected happened on the server.}\n\n@endpoint GET /owner/{ownerID}/context/{context}/decision/{decisionID}/policy-bundle\n@desc Retrieves Policy Bundle for a given decision log ID\n@required {ownerID: str, context: str, decisionID: str}\n@returns(200) Policy-Bundle retrieved successfully for given decision log ID\n@errors {400: The request is malformed (e.g, a given path parameter is invalid), 401: The request is unauthorized, 403: The user is forbidden from making this request, 404: There was no decision log found for given decision_id, and owner_id., 500: Something unexpected happened on the server.}\n\n@endpoint GET /owner/{ownerID}/context/{context}/policy-bundle\n@desc Retrieves Policy Bundle\n@required {ownerID: str, context: str}\n@returns(200) Policy-Bundle retrieved successfully.\n@errors {400: The request is malformed (e.g, a given path parameter is invalid), 401: The request is unauthorized, 403: The user is forbidden from making this request, 500: Something unexpected happened on the server.}\n\n@endpoint POST /owner/{ownerID}/context/{context}/policy-bundle\n@desc Creates policy bundle for the context\n@required {ownerID: str, context: str}\n@optional {dry: bool, policies: map}\n@returns(200) {created: [str], deleted: [str], modified: [str]} # Policy-Bundle diff successfully returned.\n@returns(201) {created: [str], deleted: [str], modified: [str]} # Policy-Bundle successfully created.\n@errors {400: The request is malformed (e.g, a given path parameter is invalid), 401: The request is unauthorized, 403: The user is forbidden from making this request, 413: The request exceeds the maximum payload size for policy bundles ~2.5Mib, 500: Something unexpected happened on the server.}\n\n@endpoint GET /owner/{ownerID}/context/{context}/policy-bundle/{policyName}\n@desc Retrieves a policy document\n@returns(200) {content: str, created_at: str(date-time), created_by: str, name: str} # Policy retrieved successfully.\n@errors {400: The request is malformed (e.g, a given path parameter is invalid), 401: The request is unauthorized, 403: The user is forbidden from making this request, 404: There was no policy that was found with the given owner_id and policy name., 500: Something unexpected happened on the server.}\n\n@endgroup\n\n@group context\n@endpoint POST /context\n@desc Create a new context\n@required {name: str # The user defined name of the context., owner: any}\n@returns(200) {id: str(uuid), name: str, created_at: str(date-time)} # The new context\n@errors {401: Credentials provided are invalid., 404: Entity not found., 429: API rate limits exceeded., 500: Internal server error.}\n\n@endpoint GET /context\n@desc List contexts\n@optional {owner-id: str(uuid) # The unique ID of the owner of the context. This is the organization ID. Specify either owner/organization ID or the owner/organization slug. Find the organization ID and slug in the CircleCI web app (Organization Settings > Overview). Owner/organization slug is not supported for CircleCI server., owner-slug: str # A string that represents an organization. This is the organization slug. Specify either this or organization/owner ID. Find the organization ID and slug in the CircleCI web app (Organization Settings > Overview). Owner/organization slug is not supported for CircleCI server., owner-type: str(account/organization) # The type of the owner. Defaults to \"organization\". Use \"account\" if you are using CircleCI server., page-token: str # A token to specify which page of results to fetch.}\n@returns(200) {items: [map], next_page_token: str?} # A paginated list of contexts\n@errors {401: Credentials provided are invalid., 404: Entity not found., 429: API rate limits exceeded., 500: Internal server error.}\n\n@endpoint GET /context/{context_id}\n@desc Get a context\n@required {context_id: str(uuid) # An opaque identifier of a context.}\n@returns(200) {id: str(uuid), name: str, created_at: str(date-time)} # The context\n@errors {401: Credentials provided are invalid., 404: Entity not found., 429: API rate limits exceeded., 500: Internal server error.}\n\n@endpoint DELETE /context/{context_id}\n@desc Delete a context\n@required {context_id: str(uuid) # An opaque identifier of a context.}\n@returns(200) {message: str} # A confirmation message\n@errors {401: Credentials provided are invalid., 404: Entity not found., 429: API rate limits exceeded., 500: Internal server error.}\n\n@endpoint GET /context/{context_id}/environment-variable\n@desc List environment variables\n@required {context_id: str(uuid) # An opaque identifier of a context.}\n@optional {page-token: str # A token to specify which page of results to fetch.}\n@returns(200) {items: [map], next_page_token: str?} # A paginated list of environment variables\n@errors {401: Credentials provided are invalid., 404: Entity not found., 429: API rate limits exceeded., 500: Internal server error.}\n\n@endpoint PUT /context/{context_id}/environment-variable/{env_var_name}\n@desc Add or update an environment variable\n@required {context_id: str(uuid) # An opaque identifier of a context., env_var_name: str # The name of the environment variable., value: str # The value of the environment variable}\n@returns(200) The new environment variable\n@errors {401: Credentials provided are invalid., 404: Entity not found., 429: API rate limits exceeded., 500: Internal server error.}\n\n@endpoint DELETE /context/{context_id}/environment-variable/{env_var_name}\n@desc Remove an environment variable\n@required {context_id: str(uuid) # An opaque identifier of a context., env_var_name: str # The name of the environment variable.}\n@returns(200) {message: str} # A confirmation message\n@errors {401: Credentials provided are invalid., 404: Entity not found., 429: API rate limits exceeded., 500: Internal server error.}\n\n@endpoint GET /context/{context_id}/restrictions\n@desc Get context restrictions\n@returns(200) {items: [any], next_page_token: str?} # Successful response.\n@errors {400: Context ID provided is invalid., 401: Credentials provided are invalid., 404: Entity not found., 429: API rate limits exceeded., 500: Internal server error.}\n\n@endpoint POST /context/{context_id}/restrictions\n@desc Create context restriction\n@optional {restriction_type: str(project/expression/group) # Type of the restriction., restriction_value: str # Value used to evaluate the restriction. If the `restriction_type` is `project`, this will be the project UUID. If the `restriction_type` is `expression`, this will be the expression rule.}\n@returns(201) {id: str(uuid), project_id: str(uuid), name: str, restriction_type: str, restriction_value: str} # Successful response.\n@errors {400: Bad request., 401: Credentials provided are invalid., 404: Entity not found., 409: Request conflict., 429: API rate limits exceeded., 500: Internal server error.}\n@example_request {\"restriction_type\":\"project\",\"restriction_value\":\"405d8375-3514-403b-8c43-83ae74cfe0e9\"}\n\n@endpoint DELETE /context/{context_id}/restrictions/{restriction_id}\n@desc Delete context restriction\n@returns(200) {message: str} # Successful response.\n@errors {400: Context restriction ID provided is invalid., 401: Credentials provided are invalid., 404: Entity not found., 429: API rate limits exceeded., 500: Internal server error.}\n\n@endgroup\n\n@group project\n@endpoint GET /project/{provider}/{organization}/{project}/settings\n@desc Get project settings\n@returns(200) {advanced: map{autocancel_builds: bool, build_fork_prs: bool, build_prs_only: bool, disable_ssh: bool, forks_receive_secret_env_vars: bool, oss: bool, set_github_status: bool, setup_workflows: bool, write_settings_requires_admin: bool, pr_only_branch_overrides: [str]}} # Successful response.\n@errors {401: Credentials provided are invalid., 403: None or insufficient credentials provided., 404: Insufficient credentials for a private project, OR the organization, project, or repository does not exist., 429: API rate limits exceeded., 500: Internal server error.}\n\n@endpoint PATCH /project/{provider}/{organization}/{project}/settings\n@desc Update project settings\n@optional {advanced: map{autocancel_builds: bool, build_fork_prs: bool, build_prs_only: bool, disable_ssh: bool, forks_receive_secret_env_vars: bool, oss: bool, set_github_status: bool, setup_workflows: bool, write_settings_requires_admin: bool, pr_only_branch_overrides: [str]}}\n@returns(200) {advanced: map{autocancel_builds: bool, build_fork_prs: bool, build_prs_only: bool, disable_ssh: bool, forks_receive_secret_env_vars: bool, oss: bool, set_github_status: bool, setup_workflows: bool, write_settings_requires_admin: bool, pr_only_branch_overrides: [str]}} # Successful response. Always includes the full advanced settings object. Returned even when the provided updates match the existing settings, but can also be returned when `oss: true` fails to set.\n@errors {400: Request is malformed, e.g. with improperly encoded JSON, 401: Credentials provided are invalid., 403: None or insufficient credentials provided., 404: Insufficient credentials for a private project, OR the organization, project, or repository does not exist., 429: API rate limits exceeded., 500: Internal server error.}\n@example_request {\"advanced\":{\"autocancel_builds\":false,\"build_prs_only\":true,\"pr_only_branch_overrides\":[\"main\"]}}\n\n@endgroup\n\n@group organizations\n@endpoint GET /organizations/{org_id}/groups\n@desc Groups in an organization\n@optional {limit: int # The number of results per page., page-token: str # A token to specify which page of results to fetch.}\n@returns(200) {items: [map], next_page_token: str?, total_count: int} # Successfully get all the groups in an organization. Results are paginated.\n@errors {403: None or insufficient credentials provided., 404: Entity not found., 500: Internal server error.}\n\n@endpoint POST /organizations/{org_id}/groups\n@desc Create Groups\n@required {name: str # Name of the group}\n@optional {description: str # Description to describe the group}\n@returns(201) {id: str(uuid), name: str, description: str} # Successful creation of a group.\n@errors {400: Unexpected request body provided., 401: Credentials provided are invalid., 403: None or insufficient credentials provided., 404: Entity not found., 409: A conflict has occurred while attempting to create the resource., 500: Internal server error.}\n@example_request {\"name\":\"Project A Editors\",\"description\":\"Users in this group have edit access to Project A\"}\n\n@endpoint GET /organizations/{org_id}/groups/{group_id}\n@desc A group in an organization\n@returns(200) {id: str(uuid), name: str, description: str} # Successfully gets a group. Members not included.\n@errors {403: None or insufficient credentials provided., 404: Entity not found., 500: Internal server error.}\n\n@endpoint DELETE /organizations/{org_id}/groups/{group_id}\n@desc Delete a group\n@returns(200) {message: str} # Successful deletion of a group.\n@errors {401: Credentials provided are invalid., 403: None or insufficient credentials provided., 404: Entity not found., 500: Internal server error.}\n\n@endpoint POST /organizations/{org_id}/usage_export_job\n@desc Create a usage export\n@required {start: str(date-time) # The start date & time (inclusive) of the range from which data will be pulled. Must be no more than one year ago., end: str(date-time) # The end date & time (inclusive) of the range from which data will be pulled. Must be no more than 31 days after `start`.}\n@optional {shared_org_ids: [str(uuid)]}\n@returns(201) {usage_export_job_id: str(uuid), state: str, start: str(date-time), end: str(date-time), download_urls: [str(uri)]} # Usage export created successfully\n@errors {400: Unexpected request body provided., 401: Credentials provided are invalid., 404: Entity not found., 429: API rate limits exceeded., 500: Internal server error.}\n\n@endpoint GET /organizations/{org_id}/usage_export_job/{usage_export_job_id}\n@desc Get a usage export\n@returns(200) {usage_export_job_id: str(uuid), state: str, download_urls: [str(uri)], error_reason: str} # Usage export fetched successfully\n@errors {400: Unexpected request body provided., 401: Credentials provided are invalid., 404: Entity not found., 429: API rate limits exceeded., 500: Internal server error.}\n\n@endgroup\n\n@group project\n@endpoint POST /project/{provider}/{organization}/{project}/pipeline/run\n@desc [Recommended] Trigger a new pipeline\n@required {provider: str(github/gh/bitbucket/bb/circleci) # The first segment of the slash-separated project slug, as shown in Project Settings > Overview., organization: str # The second segment of the slash-separated project slug, as shown in Project Settings > Overview. Depending on the organization type, this may be the org name (e.g. `my-org`) or an ID (e.g. `43G3lM5RtfFE7v5sa4nWAU`)., project: str # The third segment of the slash-separated project slug, as shown in Project Settings > Overview. Depending on the organization type, this may be the project name (e.g. `my-project`) or an ID (e.g. `44n9wujWcTnVZ2b5S8Fnat`).}\n@optional {definition_id: str(uuid) # The unique id for the pipeline definition. This can be found in the page Project Settings > Pipelines., config: map{branch: str, tag: str}, checkout: map{branch: str, tag: str}, parameters: map # An object containing pipeline parameters and their values. Pipeline parameters have the following size limits: 100 max entries, 128 maximum key length, 512 maximum value length.}\n@returns(200) {message: str} # Successful response with no created pipeline.\n@returns(201) {state: str, created_at: str(date-time), number: int, id: str(uuid)} # Successful response.\n@errors {400: Unexpected request body provided., 401: Credentials provided are invalid., 404: Entity not found.}\n\n@endgroup\n\n@group projects\n@endpoint GET /projects/{project_id}/pipeline-definitions\n@desc List pipeline definitions\n@required {project_id: str # An opaque identifier of a project.}\n@returns(200) {items: [map]} # Successful response.\n@errors {400: Unexpected request body provided., 401: Credentials provided are invalid., 404: Entity not found., 500: Internal server error.}\n\n@endpoint POST /projects/{project_id}/pipeline-definitions\n@desc Create pipeline definition\n@required {project_id: str # An opaque identifier of a project., name: str # The name of the pipeline definition., config_source: any, checkout_source: map{provider!: str, repo!: map{external_id!: str}} # The resource to be used when running the `checkout` command.}\n@optional {description: str # The description of the pipeline definition.}\n@returns(200) {id: str(uuid), name: str, description: str, created_at: str(date-time), config_source: map{provider: str, repo: map{full_name: str, external_id: str}, file_path: str}, checkout_source: map{provider: str, repo: map{full_name: str, external_id: str}}} # Successful response.\n@errors {400: Unexpected request body provided., 401: Credentials provided are invalid., 404: Entity not found., 500: Internal server error.}\n\n@endpoint GET /projects/{project_id}/pipeline-definitions/{pipeline_definition_id}\n@desc Get pipeline definition\n@required {project_id: str # An opaque identifier of a project., pipeline_definition_id: str # An opaque identifier of a pipeline definition.}\n@returns(200) {id: str(uuid), name: str, description: str, created_at: str(date-time), config_source: map{provider: str, repo: map{full_name: str, external_id: str}, file_path: str}, checkout_source: map{provider: str, repo: map{full_name: str, external_id: str}}} # Successful response.\n@errors {400: Unexpected request body provided., 401: Credentials provided are invalid., 404: Entity not found., 500: Internal server error.}\n\n@endpoint PATCH /projects/{project_id}/pipeline-definitions/{pipeline_definition_id}\n@desc Update pipeline definition\n@required {project_id: str # An opaque identifier of a project., pipeline_definition_id: str # An opaque identifier of a pipeline definition.}\n@optional {name: str # The name of the pipeline definition., description: str # The description of the pipeline definition., config_source: map{file_path: str} # The resource that stores the CircleCI config YAML used for this pipeline definition., checkout_source: map{provider: str, repo: map{external_id: str}} # The resource to be used when running the `checkout` command.}\n@returns(200) {id: str(uuid), name: str, description: str, created_at: str(date-time), config_source: map{provider: str, repo: map{full_name: str, external_id: str}, file_path: str}, checkout_source: map{provider: str, repo: map{full_name: str, external_id: str}}} # Successful response.\n@errors {400: Unexpected request body provided., 401: Credentials provided are invalid., 404: Entity not found., 500: Internal server error.}\n\n@endpoint DELETE /projects/{project_id}/pipeline-definitions/{pipeline_definition_id}\n@desc Delete pipeline definition\n@required {project_id: str # An opaque identifier of a project., pipeline_definition_id: str # An opaque identifier of a pipeline definition.}\n@returns(200) {message: str} # Successful response.\n@errors {400: Unexpected request body provided., 401: Credentials provided are invalid., 404: Entity not found., 500: Internal server error.}\n\n@endpoint GET /projects/{project_id}/pipeline-definitions/{pipeline_definition_id}/triggers\n@desc List pipeline definition triggers\n@required {project_id: str # An opaque identifier of a project., pipeline_definition_id: str # An opaque identifier of a pipeline definition.}\n@returns(200) {items: [map]} # Successful response.\n@errors {400: Unexpected request body provided., 401: Credentials provided are invalid., 404: Entity not found., 500: Internal server error.}\n\n@endpoint POST /projects/{project_id}/pipeline-definitions/{pipeline_definition_id}/triggers\n@desc Create trigger\n@required {project_id: str # An opaque identifier of a project., pipeline_definition_id: str # An opaque identifier of a pipeline definition., event_source: map{provider!: str, repo: map{external_id!: str}, webhook: map{sender: str}} # The source of events to use for this trigger. The `repo` object must be specified when `provider` is `github_app` or `github_oauth`, and the `webhook` object may only be specified when `provider` is `webhook`.}\n@optional {event_preset: str(all-pushes/only-tags/default-branch-pushes/only-build-prs/only-open-prs/only-labeled-prs/only-merged-prs/only-ready-for-review-prs/only-branch-delete/only-build-pushes-to-non-draft-prs/only-merged-or-closed-prs/pr-comment-equals-run-ci/non-draft-pr-opened/pushes-to-merge-queues) # The name of the event preset to use when filtering events for this trigger. Only applicable when `event_source.provider` is `github_app`., checkout_ref: str # The ref to use when checking out code for pipeline runs created from this trigger. Always required when `event_source.provider` is `webhook`. When `event_source.provider` is `github_app`, only expected if the event source repository (identified by `event_source.provider.repo.external_id`) is different to the checkout source repository of the associated Pipeline Definition. Otherwise, must be omitted., config_ref: str # The ref to use when fetching config for pipeline runs created from this trigger. Always required when `event_source.provider` is `webhook`. When `event_source.provider` is `github_app`, only expected if the event source repository (identified by `event_source.provider.repo.external_id`) is different to the config source repository of the associated Pipeline Definition. Otherwise, must be omitted., event_name: str # The name of the triggering event. This should only be set for triggers where `provider` is `webhook`., disabled: bool # Whether the trigger should be disabled upon creation. Not supported for pipeline definitions where `config_source.provider` is `github_oauth`.}\n@returns(200) {id: str(uuid), event_name: str, created_at: str(date-time), event_source: map{provider: str, repo: map{full_name: str, external_id: str}, webhook: map{url: str, sender: str}}, event_preset: str, checkout_ref: str, config_ref: str, disabled: bool} # Successful response.\n@errors {400: Unexpected request body provided., 401: Credentials provided are invalid., 404: Entity not found., 500: Internal server error.}\n\n@endpoint GET /projects/{project_id}/triggers/{trigger_id}\n@desc Get trigger\n@required {project_id: str # An opaque identifier of a project., trigger_id: str # An opaque identifier of a trigger.}\n@returns(200) {id: str(uuid), event_name: str, created_at: str(date-time), event_source: map{provider: str, repo: map{full_name: str, external_id: str}, webhook: map{url: str, sender: str}}, event_preset: str, checkout_ref: str, config_ref: str, disabled: bool} # Successful response.\n@errors {400: Unexpected request body provided., 401: Credentials provided are invalid., 404: Entity not found., 500: Internal server error.}\n\n@endpoint PATCH /projects/{project_id}/triggers/{trigger_id}\n@desc Update trigger\n@required {project_id: str # An opaque identifier of a project., trigger_id: str # An opaque identifier of a trigger.}\n@optional {event_preset: str(all-pushes/only-tags/default-branch-pushes/only-build-prs/only-open-prs/only-labeled-prs/only-merged-prs/only-ready-for-review-prs/only-branch-delete/only-build-pushes-to-non-draft-prs/only-merged-or-closed-prs/pr-comment-equals-run-ci/non-draft-pr-opened/pushes-to-merge-queues) # The name of the event preset to use when filtering events for this trigger. Only applicable when `event_source.provider` is `github_app`., checkout_ref: str # The ref to use when checking out code for pipeline runs created from this trigger., config_ref: str # The ref to use when fetching config for pipeline runs created from this trigger., event_name: str # The name of the triggering event. This can only be set for triggers where `provider` is `webhook`., disabled: bool # A flag indicating whether the trigger is disabled or not. This can only be set for triggers where `provider` is `github_oauth`, `github_app`, or `webhook`., event_source: map{webhook: map{sender: str}}}\n@returns(200) {id: str(uuid), event_name: str, created_at: str(date-time), event_source: map{provider: str, repo: map{full_name: str, external_id: str}, webhook: map{url: str, sender: str}}, event_preset: str, checkout_ref: str, config_ref: str, disabled: bool} # Successful response.\n@errors {400: Unexpected request body provided., 401: Credentials provided are invalid., 404: Entity not found., 500: Internal server error.}\n\n@endpoint DELETE /projects/{project_id}/triggers/{trigger_id}\n@desc Delete trigger\n@required {project_id: str # An opaque identifier of a project., trigger_id: str # An opaque identifier of a trigger.}\n@returns(200) {message: str} # Successful response.\n@errors {400: Unexpected request body provided., 401: Credentials provided are invalid., 404: Entity not found., 500: Internal server error.}\n\n@endpoint POST /projects/{project_id}/rollback\n@desc Rollback a project\n@required {project_id: str # An opaque identifier of a project., component_name: str # The component name, current_version: str # The current version, environment_name: str # The environment name, target_version: str # The target version}\n@optional {namespace: str # The namespace, parameters: map # The extra parameters for the rollback pipeline, reason: str # The reason for the rollback}\n@returns(202) {id: str(uuid), rollback_type: str} # Rollback request accepted.\n@errors {400: Unexpected request body provided., 404: Entity not found., 409: A conflict has occurred while attempting to create the resource., 500: Internal server error.}\n\n@endgroup\n\n@group deploy\n@endpoint GET /deploy/environments\n@desc List Environments\n@required {org-id: str(uuid) # An opaque identifier of an organization used in query parameters., page-size: int # The number of results per page.}\n@optional {page-token: str # A token to specify which page of results to fetch.}\n@returns(200) {items: [map], next_page_token: str?} # Paginated environments list\n@errors {400: Unexpected request body provided., 404: Entity not found., 500: Internal server error.}\n\n@endpoint GET /deploy/environments/{environment_id}\n@desc Get Environment\n@required {environment_id: str(uuid) # An opaque identifier of an environment.}\n@returns(200) {created_at: str(date-time), description: str, id: str(uuid), labels: [map], name: str, updated_at: str(date-time)} # Environment\n@errors {400: Unexpected request body provided., 404: Entity not found., 500: Internal server error.}\n\n@endpoint GET /deploy/components\n@desc List Components\n@required {org-id: str(uuid) # An opaque identifier of an organization used in query parameters., page-size: int # The number of results per page.}\n@optional {project-id: str(uuid) # An opaque identifier of an project used in query parameters., page-token: str # A token to specify which page of results to fetch.}\n@returns(200) {items: [map], next_page_token: str?} # Paginated components list\n@errors {400: Unexpected request body provided., 404: Entity not found., 500: Internal server error.}\n\n@endpoint GET /deploy/components/{component_id}\n@desc Get Component\n@required {component_id: str # An opaque identifier of a component.}\n@returns(200) {id: str(uuid), name: str, project_id: str(uuid), labels: [map], release_count: int, created_at: str(date-time), updated_at: str(date-time)} # Successful response.\n@errors {400: Unexpected request body provided., 404: Entity not found., 500: Internal server error.}\n\n@endpoint GET /deploy/components/{component_id}/versions\n@desc List Component Versions\n@required {component_id: str # An opaque identifier of a component.}\n@optional {environment-id: str(uuid) # An opaque identifier of an environment used in query parameters.}\n@returns(200) {items: [map], next_page_token: str?} # Paginated component versions list\n@errors {400: Unexpected request body provided., 404: Entity not found., 500: Internal server error.}\n\n@endgroup\n\n@group otel\n@endpoint GET /otel/exporters\n@desc 🧪 List OTLP exporters\n@required {org-id: str(uuid) # An opaque identifier of an organization used in query parameters.}\n@returns(200) List of OTLP exporters.\n@errors {400: Unexpected request body provided., 401: Credentials provided are invalid., 404: Entity not found., 500: Internal server error.}\n\n@endpoint POST /otel/exporters\n@desc 🧪 Create an OTLP exporter\n@required {org_id: str(uuid) # The organization ID to create the exporter for., endpoint: str # The OTLP endpoint to send spans to. Don't include https:// or grpc://. Just the hostname and port are required., protocol: str(grpc/http) # The OTLP transport to use when exporting data.}\n@optional {insecure: bool # Whether to use an insecure connection to the endpoint., headers: map # Additional headers to include in export requests.}\n@returns(201) {id: str(uuid), org_id: str(uuid), endpoint: str, protocol: str, insecure: bool, headers: map, issues: [str]} # OTLP exporter created.\n@errors {400: JSON passed in the request does not adhere to the expected schema., 401: Credentials provided are invalid., 404: Entity not found., 500: Internal server error.}\n\n@endpoint DELETE /otel/exporters/{otel_exporter_id}\n@desc 🧪 Delete an OTLP exporter\n@required {otel_exporter_id: str(uuid) # The ID of an OTLP exporter configuration.}\n@returns(204) OTLP exporter deleted.\n@errors {400: Unexpected request body provided., 401: Credentials provided are invalid., 404: Entity not found., 500: Internal server error.}\n\n@endgroup\n\n@end\n"}}