Prime Intellect SSH Keys API

The SSH Keys API from Prime Intellect — 2 operation(s) for ssh keys.

OpenAPI Specification

prime-intellect-ssh-keys-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Prime Intellect Compute admin-clusters SSH Keys API
  version: 0.1.0
  description: 'GPU compute marketplace and pod orchestration: availability across providers, on-demand and multi-node GPU pod lifecycle, persistent network-attached disks, and SSH key management. Supports H100, H200, B200, B300, and other GPU families with 1-256 GPU configurations.'
  contact:
    name: Prime Intellect
    url: https://www.primeintellect.ai
servers:
- url: https://api.primeintellect.ai
security:
- HTTPBearer: []
tags:
- name: SSH Keys
paths:
  /api/v1/ssh_keys/:
    get:
      tags:
      - SSH Keys
      summary: Get Ssh Keys
      operationId: get_ssh_keys_api_v1_ssh_keys__get
      security:
      - HTTPBearer: []
      parameters:
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          default: 0
          title: Offset
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          default: 100
          title: Limit
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericPaginationResponse_List_APISSHKeyConfig__'
        '401':
          description: Authorization failed
        '422':
          description: Invalid request data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
    post:
      tags:
      - SSH Keys
      summary: Upload Ssh Key
      operationId: upload_ssh_key_api_v1_ssh_keys__post
      security:
      - HTTPBearer: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/APISSHKeyUploadRequestConfig'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APISSHKeyConfig'
        '401':
          description: Authorization failed
        '422':
          description: Invalid request data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /api/v1/ssh_keys/{key_id}:
    delete:
      tags:
      - SSH Keys
      summary: Delete Ssh Key
      operationId: delete_ssh_key_api_v1_ssh_keys__key_id__delete
      security:
      - HTTPBearer: []
      parameters:
      - name: key_id
        in: path
        required: true
        schema:
          type: string
          title: Key Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '401':
          description: Authorization failed
        '422':
          description: Invalid request data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
    patch:
      tags:
      - SSH Keys
      summary: Set Primary Key
      operationId: set_primary_key_api_v1_ssh_keys__key_id__patch
      security:
      - HTTPBearer: []
      parameters:
      - name: key_id
        in: path
        required: true
        schema:
          type: string
          title: Key Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/APISSHKeyUpdateRequestConfig'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APISSHKeyUpdateResponseConfig'
        '401':
          description: Authorization failed
        '422':
          description: Invalid request data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    APISSHKeyConfig:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the SSH key.
        userId:
          type: string
          title: Userid
          description: ID of the user associated with this pod, if applicable.
        name:
          type: string
          title: Name
          description: Name of the SSH key.
        publicKey:
          type: string
          title: Publickey
          description: The public key part of the SSH key.
        isPrimary:
          type: boolean
          title: Isprimary
          description: Whether this SSH key is the primary key.
        isUserKey:
          type: boolean
          title: Isuserkey
          description: Whether this a custom key uploaded by the user.
        createdAt:
          type: string
          format: date-time
          title: Createdat
          description: Timestamp when the SSH key was added.
        updatedAt:
          type: string
          format: date-time
          title: Updatedat
          description: Timestamp when the SSH key was last updated.
      type: object
      required:
      - id
      - userId
      - name
      - publicKey
      - isPrimary
      - isUserKey
      title: APISSHKeyConfig
    APISSHKeyUpdateResponseConfig:
      properties:
        message:
          type: string
          title: Message
        updated_fields:
          type: object
          title: Updated Fields
      type: object
      required:
      - message
      - updated_fields
      title: APISSHKeyUpdateResponseConfig
    APISSHKeyUploadRequestConfig:
      properties:
        name:
          type: string
          title: Name
          description: The name for the key.
        publicKey:
          type: string
          title: Publickey
          description: The public key part of the SSH key.
      type: object
      required:
      - name
      - publicKey
      title: APISSHKeyUploadRequestConfig
    ErrorResponse:
      properties:
        errors:
          items:
            $ref: '#/components/schemas/ErrorDetail'
          type: array
          title: Errors
      type: object
      required:
      - errors
      title: ErrorResponse
    APISSHKeyUpdateRequestConfig:
      properties:
        isPrimary:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Isprimary
          description: Whether to set the key as the primary key. Must be true when provided.
      type: object
      title: APISSHKeyUpdateRequestConfig
    GenericPaginationResponse_List_APISSHKeyConfig__:
      properties:
        total_count:
          type: integer
          title: Total Count
          description: Total number of items available in the dataset
          default: 0
        offset:
          type: integer
          minimum: 0.0
          title: Offset
          description: Number of items to skip before starting to collect the result set
          default: 0
        limit:
          type: integer
          minimum: 0.0
          title: Limit
          description: Maximum number of items to return
          default: 100
        data:
          items:
            $ref: '#/components/schemas/APISSHKeyConfig'
          type: array
          title: Data
        status:
          anyOf:
          - type: string
          - type: 'null'
          title: Status
          description: Response status
      type: object
      required:
      - data
      title: GenericPaginationResponse[List[APISSHKeyConfig]]
    ErrorDetail:
      properties:
        param:
          type: string
          title: Param
        details:
          type: string
          title: Details
      type: object
      required:
      - param
      - details
      title: ErrorDetail
  securitySchemes:
    HTTPBearer:
      type: http
      scheme: bearer