TensorDock Containers API

Deploy, scale, terminate, and inspect containers

OpenAPI Specification

tensordock-containers-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: TensorDock Marketplace Containers API
  description: 'The original TensorDock Marketplace API for deploying and managing GPU virtual

    machines across a global network of independent hardware hosts. Endpoints are

    authenticated via `api_key` + `api_token` form parameters that are tied to an

    organization and can be generated at https://dashboard.tensordock.com/api.


    The API covers authorization checks, hostnode discovery, on-demand and spot

    virtual machine deployment, instance lifecycle (start, stop, modify, delete),

    instant VM deployment, container scaling, and billing balance/revenue lookups.

    '
  version: '0'
  contact:
    name: TensorDock Support
    email: support@tensordock.com
    url: https://marketplace.tensordock.com/support
  x-logo:
    url: https://www.tensordock.com/favicon.ico
servers:
- url: https://marketplace.tensordock.com
  description: TensorDock Marketplace (production)
- url: https://dashboard.tensordock.com
  description: TensorDock Dashboard (alias / production)
security:
- ApiKeyPair: []
tags:
- name: Containers
  description: Deploy, scale, terminate, and inspect containers
paths:
  /api/v0/client/container/deploy:
    post:
      summary: Deploy Container
      description: Deploy a container workload on the TensorDock GPU marketplace.
      operationId: deployContainer
      tags:
      - Containers
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/ContainerDeployRequest'
      responses:
        '200':
          description: Container deployment accepted.
          content:
            application/json:
              schema:
                type: object
  /api/v0/client/container/scale:
    post:
      summary: Scale Container
      description: Scale the number of replicas for an existing container.
      operationId: scaleContainer
      tags:
      - Containers
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              allOf:
              - $ref: '#/components/schemas/AuthCredentials'
              - type: object
                required:
                - container_id
                - replicas
                properties:
                  container_id:
                    type: string
                  replicas:
                    type: integer
      responses:
        '200':
          description: Scale accepted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
  /api/v0/client/container/stop:
    post:
      summary: Terminate Container
      description: Terminate a running container deployment.
      operationId: terminateContainer
      tags:
      - Containers
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              allOf:
              - $ref: '#/components/schemas/AuthCredentials'
              - type: object
                required:
                - container_id
                properties:
                  container_id:
                    type: string
      responses:
        '200':
          description: Termination accepted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
  /api/v0/client/container/{container_id}/replicas:
    get:
      summary: List Container Replicas
      description: List the replica details for a running container.
      operationId: listContainerReplicas
      tags:
      - Containers
      parameters:
      - in: path
        name: container_id
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Container replica details.
          content:
            application/json:
              schema:
                type: object
components:
  schemas:
    AuthCredentials:
      type: object
      required:
      - api_key
      - api_token
      properties:
        api_key:
          type: string
          description: TensorDock authorization key UUID.
        api_token:
          type: string
          description: TensorDock authorization token UUID.
    SuccessResponse:
      type: object
      properties:
        success:
          type: boolean
        message:
          type: string
    ContainerDeployRequest:
      type: object
      allOf:
      - $ref: '#/components/schemas/AuthCredentials'
      - type: object
        required:
        - name
        - image
        properties:
          name:
            type: string
          image:
            type: string
          replicas:
            type: integer
          gpu_model:
            type: string
          gpu_count:
            type: integer
          ports:
            type: array
            items:
              type: integer
          env:
            type: object
  securitySchemes:
    ApiKeyPair:
      type: apiKey
      in: query
      name: api_key
      description: 'TensorDock Marketplace endpoints accept an `api_key` + `api_token` pair

        passed as form parameters in the request body (or query string for GET

        endpoints). Generate pairs at https://dashboard.tensordock.com/api.

        '