CircleCI SSH Key API
Endpoints for managing SSH keys and checkout keys for projects.
Endpoints for managing SSH keys and checkout keys for projects.
openapi: 3.1.0
info:
title: CircleCI REST API v1 Artifact SSH Key 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: SSH Key
description: Endpoints for managing SSH keys and checkout keys for projects.
paths:
/project/{vcs-type}/{username}/{project}/ssh-key:
post:
operationId: addSSHKey
summary: Add an SSH key
description: Adds an SSH key to the specified project for use in builds.
tags:
- SSH Key
parameters:
- $ref: '#/components/parameters/VcsTypeParam'
- $ref: '#/components/parameters/UsernameParam'
- $ref: '#/components/parameters/ProjectParam'
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- hostname
- private_key
properties:
hostname:
type: string
description: The hostname the key is associated with
private_key:
type: string
description: The private key in PEM format
responses:
'200':
description: SSH key added successfully
'401':
description: Unauthorized
/project/{vcs-type}/{username}/{project}/checkout-key:
get:
operationId: listCheckoutKeys
summary: List checkout keys
description: Returns a list of checkout keys for the specified project.
tags:
- SSH Key
parameters:
- $ref: '#/components/parameters/VcsTypeParam'
- $ref: '#/components/parameters/UsernameParam'
- $ref: '#/components/parameters/ProjectParam'
responses:
'200':
description: Successfully retrieved checkout keys
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CheckoutKey'
'401':
description: Unauthorized
post:
operationId: createCheckoutKey
summary: Create a checkout key
description: Creates a new checkout key for the specified project.
tags:
- SSH Key
parameters:
- $ref: '#/components/parameters/VcsTypeParam'
- $ref: '#/components/parameters/UsernameParam'
- $ref: '#/components/parameters/ProjectParam'
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- type
properties:
type:
type: string
enum:
- deploy-key
- github-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
/project/{vcs-type}/{username}/{project}/checkout-key/{fingerprint}:
get:
operationId: getCheckoutKey
summary: Get a checkout key
description: Returns a checkout key by its fingerprint.
tags:
- SSH Key
parameters:
- $ref: '#/components/parameters/VcsTypeParam'
- $ref: '#/components/parameters/UsernameParam'
- $ref: '#/components/parameters/ProjectParam'
- name: fingerprint
in: path
required: true
description: The fingerprint of the checkout key
schema:
type: string
responses:
'200':
description: Successfully retrieved checkout key
content:
application/json:
schema:
$ref: '#/components/schemas/CheckoutKey'
'401':
description: Unauthorized
'404':
description: Checkout key not found
delete:
operationId: deleteCheckoutKey
summary: Delete a checkout key
description: Deletes a checkout key by its fingerprint.
tags:
- SSH Key
parameters:
- $ref: '#/components/parameters/VcsTypeParam'
- $ref: '#/components/parameters/UsernameParam'
- $ref: '#/components/parameters/ProjectParam'
- name: fingerprint
in: path
required: true
description: The fingerprint of the checkout key
schema:
type: string
responses:
'200':
description: Checkout key deleted successfully
content:
application/json:
schema:
type: object
properties:
message:
type: string
description: Confirmation message
'401':
description: Unauthorized
components:
parameters:
VcsTypeParam:
name: vcs-type
in: path
required: true
description: The version control system type
schema:
type: string
enum:
- github
- bitbucket
ProjectParam:
name: project
in: path
required: true
description: The repository name
schema:
type: string
UsernameParam:
name: username
in: path
required: true
description: The organization or user name
schema:
type: string
schemas:
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 key
login:
type: string
description: The login associated with the key
time:
type: string
format: date-time
description: When the key was created
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/