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/