openapi: 3.1.0 info: title: CircleCI REST API v1 Artifact Resource Class 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: Resource Class description: Endpoints for managing runner resource classes, which define the compute resources available for self-hosted runner jobs. paths: /runner/resource-class: get: operationId: listResourceClasses summary: List resource classes description: Returns a list of runner resource classes for the specified namespace. Resource classes define the compute resources available for self-hosted runner jobs. tags: - Resource Class parameters: - name: namespace in: query required: true description: The namespace to list resource classes for schema: type: string responses: '200': description: Successfully retrieved resource classes content: application/json: schema: type: object properties: items: type: array items: $ref: '#/components/schemas/ResourceClass' description: List of resource classes '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' post: operationId: createResourceClass summary: Create a resource class description: Creates a new resource class for the specified namespace. Returns a resource class token that is only displayed once and cannot be retrieved again. This token is used by runner agents to authenticate. tags: - Resource Class requestBody: required: true content: application/json: schema: type: object required: - resource_class - description properties: resource_class: type: string description: The resource class name in namespace/name format pattern: ^[a-z0-9-]+/[a-z0-9-]+$ description: type: string description: A description of the resource class responses: '200': description: Resource class created successfully content: application/json: schema: $ref: '#/components/schemas/ResourceClassCreation' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' /runner/resource-class/{resource-class}: get: operationId: getResourceClass summary: Get a resource class description: Returns details about a specific resource class. tags: - Resource Class parameters: - $ref: '#/components/parameters/ResourceClassParam' responses: '200': description: Successfully retrieved resource class content: application/json: schema: $ref: '#/components/schemas/ResourceClass' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Resource class not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' delete: operationId: deleteResourceClass summary: Delete a resource class description: Deletes a resource class. This will prevent any runners using this resource class from picking up new tasks. tags: - Resource Class parameters: - $ref: '#/components/parameters/ResourceClassParam' responses: '200': description: Resource class deleted successfully '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Resource class not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' components: parameters: ResourceClassParam: name: resource-class in: path required: true description: The resource class in namespace/name format schema: type: string schemas: ResourceClassCreation: type: object properties: id: type: string format: uuid description: The unique identifier of the resource class resource_class: type: string description: The resource class name in namespace/name format description: type: string description: A description of the resource class token: type: string description: The resource class token. This is only displayed once and cannot be retrieved again. Store it securely. ResourceClass: type: object properties: id: type: string format: uuid description: The unique identifier of the resource class resource_class: type: string description: The resource class name in namespace/name format description: type: string description: A description of the resource class ErrorResponse: type: object properties: message: type: string description: A human-readable error message 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/