Shadeform SSH Keys API

Manage SSH public keys for instance access.

OpenAPI Specification

shadeform-ssh-keys-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Shadeform Instance Types SSH Keys API
  description: Shadeform is a GPU cloud marketplace exposing a single REST API to deploy and manage GPU compute across many underlying clouds. The API standardizes instance types, availability, and per-GPU-hour pricing across providers, and lets you launch, inspect, restart, update, and delete instances, manage persistent volumes and SSH keys, and save reusable launch templates. All requests are authenticated with an X-API-KEY header.
  termsOfService: https://www.shadeform.ai/terms
  contact:
    name: Shadeform Support
    email: info@shadeform.ai
  version: '1.0'
servers:
- url: https://api.shadeform.ai/v1
security:
- ApiKeyAuth: []
tags:
- name: SSH Keys
  description: Manage SSH public keys for instance access.
paths:
  /sshkeys:
    get:
      operationId: listSshKeys
      tags:
      - SSH Keys
      summary: List SSH keys
      description: Retrieve all SSH public keys registered on the account.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SshKeysResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /sshkeys/add:
    post:
      operationId: addSshKey
      tags:
      - SSH Keys
      summary: Add an SSH key
      description: Register a new SSH public key for use when launching instances.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddSshKeyRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateIdResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /sshkeys/{id}/info:
    get:
      operationId: getSshKey
      tags:
      - SSH Keys
      summary: Get SSH key info
      description: Retrieve details for a single SSH key by its ID.
      parameters:
      - $ref: '#/components/parameters/SshKeyId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SshKey'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /sshkeys/{id}/setdefault:
    post:
      operationId: setDefaultSshKey
      tags:
      - SSH Keys
      summary: Set default SSH key
      description: Mark an SSH key as the default key used for new instances.
      parameters:
      - $ref: '#/components/parameters/SshKeyId'
      responses:
        '200':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /sshkeys/{id}/delete:
    post:
      operationId: deleteSshKey
      tags:
      - SSH Keys
      summary: Delete an SSH key
      description: Delete an SSH key by its ID.
      parameters:
      - $ref: '#/components/parameters/SshKeyId'
      responses:
        '200':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  schemas:
    AddSshKeyRequest:
      type: object
      required:
      - name
      - public_key
      properties:
        name:
          type: string
          description: The name of the SSH key.
        public_key:
          type: string
          description: The SSH public key material.
    SshKey:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        public_key:
          type: string
        default:
          type: boolean
        created_at:
          type: string
          format: date-time
    Error:
      type: object
      properties:
        code:
          type: string
        message:
          type: string
    CreateIdResponse:
      type: object
      required:
      - id
      properties:
        id:
          type: string
          format: uuid
          description: The unique identifier of the created resource.
    SshKeysResponse:
      type: object
      properties:
        ssh_keys:
          type: array
          items:
            $ref: '#/components/schemas/SshKey'
  responses:
    NotFound:
      description: The requested resource was not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Missing or invalid X-API-KEY.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: The request was malformed or failed validation.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  parameters:
    SshKeyId:
      name: id
      in: path
      required: true
      schema:
        type: string
        format: uuid
      description: The unique identifier of the SSH key.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-KEY
      description: API key issued from the Shadeform dashboard.