CircleCI Project API
Endpoints for listing followed projects and managing project settings.
Endpoints for listing followed projects and managing project settings.
openapi: 3.1.0
info:
title: CircleCI REST API v1 Artifact Project API
description: The CircleCI REST API v1 is the legacy API that provides access to build information, project details, and user data. While still available, CircleCI recommends migrating to the v2 API for newer features and improved functionality. The v1 API supports operations for retrieving build details, triggering builds, managing SSH keys, and accessing test metadata. Authentication is handled through API tokens passed as query parameters or HTTP headers.
version: '1.1'
contact:
name: CircleCI Support
url: https://support.circleci.com
termsOfService: https://circleci.com/terms-of-service/
servers:
- url: https://circleci.com/api/v1.1
description: CircleCI Production API v1.1
security:
- apiToken: []
tags:
- name: Project
description: Endpoints for listing followed projects and managing project settings.
paths:
/projects:
get:
operationId: listProjects
summary: List followed projects
description: Returns a list of all projects the authenticated user follows, including recent build summaries for each project.
tags:
- Project
responses:
'200':
description: Successfully retrieved projects
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Project'
'401':
description: Unauthorized
/project/{vcs-type}/{username}/{project}/follow:
post:
operationId: followProject
summary: Follow a project
description: Follows a project, adding it to the authenticated user's list of followed projects.
tags:
- Project
parameters:
- $ref: '#/components/parameters/VcsTypeParam'
- $ref: '#/components/parameters/UsernameParam'
- $ref: '#/components/parameters/ProjectParam'
responses:
'200':
description: Project followed successfully
content:
application/json:
schema:
type: object
properties:
following:
type: boolean
description: Whether the project is now being followed
first_build:
$ref: '#/components/schemas/BuildSummary'
'401':
description: Unauthorized
/project/{project-slug}:
get:
operationId: getProject
summary: Get a project
description: Returns a project by its slug, which is a triplet of the VCS type, organization name, and repository name.
tags:
- Project
parameters:
- $ref: '#/components/parameters/ProjectSlugParam'
responses:
'200':
description: Successfully retrieved project
content:
application/json:
schema:
$ref: '#/components/schemas/Project_2'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/project/{project-slug}/checkout-key:
get:
operationId: listCheckoutKeys
summary: List checkout keys
description: Returns a paginated list of checkout keys for a given project.
tags:
- Project
parameters:
- $ref: '#/components/parameters/ProjectSlugParam'
responses:
'200':
description: Successfully retrieved checkout keys
content:
application/json:
schema:
$ref: '#/components/schemas/CheckoutKeyList'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
post:
operationId: createCheckoutKey
summary: Create a checkout key
description: Creates a new checkout key for the specified project. Only deploy keys and user keys are supported.
tags:
- Project
parameters:
- $ref: '#/components/parameters/ProjectSlugParam'
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- type
properties:
type:
type: string
enum:
- deploy-key
- user-key
description: The type of checkout key to create
responses:
'201':
description: Checkout key created successfully
content:
application/json:
schema:
$ref: '#/components/schemas/CheckoutKey'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/project/{project-slug}/checkout-key/{fingerprint}:
get:
operationId: getCheckoutKey
summary: Get a checkout key
description: Returns a checkout key by its fingerprint.
tags:
- Project
parameters:
- $ref: '#/components/parameters/ProjectSlugParam'
- $ref: '#/components/parameters/FingerprintParam'
responses:
'200':
description: Successfully retrieved checkout key
content:
application/json:
schema:
$ref: '#/components/schemas/CheckoutKey'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Checkout key not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
delete:
operationId: deleteCheckoutKey
summary: Delete a checkout key
description: Deletes a checkout key by its fingerprint.
tags:
- Project
parameters:
- $ref: '#/components/parameters/ProjectSlugParam'
- $ref: '#/components/parameters/FingerprintParam'
responses:
'200':
description: Successfully deleted checkout key
content:
application/json:
schema:
$ref: '#/components/schemas/MessageResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/project/{project-slug}/envvar:
get:
operationId: listProjectEnvironmentVariables
summary: List project environment variables
description: Returns a paginated list of masked environment variables for a given project.
tags:
- Project
parameters:
- $ref: '#/components/parameters/ProjectSlugParam'
responses:
'200':
description: Successfully retrieved environment variables
content:
application/json:
schema:
$ref: '#/components/schemas/ProjectEnvVarList'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
post:
operationId: createProjectEnvironmentVariable
summary: Create a project environment variable
description: Creates a new environment variable for the specified project.
tags:
- Project
parameters:
- $ref: '#/components/parameters/ProjectSlugParam'
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- name
- value
properties:
name:
type: string
description: The name of the environment variable
value:
type: string
description: The value of the environment variable
responses:
'201':
description: Environment variable created successfully
content:
application/json:
schema:
$ref: '#/components/schemas/ProjectEnvVar'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/project/{project-slug}/envvar/{name}:
get:
operationId: getProjectEnvironmentVariable
summary: Get a masked environment variable
description: Returns a masked environment variable by name for the specified project.
tags:
- Project
parameters:
- $ref: '#/components/parameters/ProjectSlugParam'
- name: name
in: path
required: true
description: The name of the environment variable
schema:
type: string
responses:
'200':
description: Successfully retrieved environment variable
content:
application/json:
schema:
$ref: '#/components/schemas/ProjectEnvVar'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Environment variable not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
delete:
operationId: deleteProjectEnvironmentVariable
summary: Delete a project environment variable
description: Deletes an environment variable from the specified project.
tags:
- Project
parameters:
- $ref: '#/components/parameters/ProjectSlugParam'
- name: name
in: path
required: true
description: The name of the environment variable
schema:
type: string
responses:
'200':
description: Successfully deleted environment variable
content:
application/json:
schema:
$ref: '#/components/schemas/MessageResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
components:
schemas:
CheckoutKeyList:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/CheckoutKey'
description: List of checkout keys
next_page_token:
type: string
description: Token for retrieving the next page
MessageResponse:
type: object
properties:
message:
type: string
description: A message describing the result of the operation
ProjectEnvVar:
type: object
properties:
name:
type: string
description: The name of the environment variable
value:
type: string
description: The masked value of the environment variable
CheckoutKey:
type: object
properties:
public-key:
type: string
description: The public SSH key
type:
type: string
enum:
- deploy-key
- github-user-key
description: The type of checkout key
fingerprint:
type: string
description: The MD5 fingerprint of the key
preferred:
type: boolean
description: Whether this is the preferred checkout key
created-at:
type: string
format: date-time
description: When the key was created
BuildSummary:
type: object
properties:
build_url:
type: string
format: uri
description: URL to view the build
build_num:
type: integer
description: The build number
status:
type: string
description: The build status
vcs_revision:
type: string
description: The VCS revision
Project_2:
type: object
properties:
slug:
type: string
description: The project slug
name:
type: string
description: The project name
id:
type: string
format: uuid
description: The unique identifier of the project
organization_name:
type: string
description: The name of the organization
organization_slug:
type: string
description: The slug of the organization
organization_id:
type: string
format: uuid
description: The ID of the organization
vcs_info:
type: object
properties:
vcs_url:
type: string
format: uri
description: The VCS URL
provider:
type: string
description: The VCS provider
default_branch:
type: string
description: The default branch name
description: Version control system information
ErrorResponse:
type: object
properties:
message:
type: string
description: A human-readable error message
Project:
type: object
properties:
vcs_url:
type: string
format: uri
description: The VCS URL of the project
followed:
type: boolean
description: Whether the user follows this project
username:
type: string
description: The organization or username
reponame:
type: string
description: The repository name
branches:
type: object
additionalProperties:
type: object
properties:
recent_builds:
type: array
items:
$ref: '#/components/schemas/BuildSummary'
description: Recent builds on this branch
description: Branch information with recent builds
ProjectEnvVarList:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/ProjectEnvVar'
description: List of environment variables
next_page_token:
type: string
description: Token for retrieving the next page
parameters:
ProjectParam:
name: project
in: path
required: true
description: The repository name
schema:
type: string
ProjectSlugParam:
name: project-slug
in: path
required: true
description: The project slug in the form vcs-slug/org-name/repo-name (e.g., gh/CircleCI-Public/api-preview-docs)
schema:
type: string
VcsTypeParam:
name: vcs-type
in: path
required: true
description: The version control system type
schema:
type: string
enum:
- github
- bitbucket
UsernameParam:
name: username
in: path
required: true
description: The organization or user name
schema:
type: string
FingerprintParam:
name: fingerprint
in: path
required: true
description: The fingerprint of the checkout key
schema:
type: string
securitySchemes:
apiToken:
type: apiKey
in: header
name: Circle-Token
description: Personal API token for authenticating with the CircleCI API. Can also be passed as a query parameter.
externalDocs:
description: CircleCI API v1 Reference
url: https://circleci.com/docs/api/v1/