AMD Developer Cloud API

The AMD Developer Cloud API provides access to AMD Instinct GPU instances for AI inference, training, and HPC workloads. Supports managing compute instances, deploying AI models, monitoring GPU utilization, and integrating with ROCm-compatible frameworks including PyTorch, TensorFlow, and vLLM.

OpenAPI Specification

amd-developer-cloud-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: AMD Developer Cloud API
  description: >-
    The AMD Developer Cloud API provides access to AMD Instinct GPU instances for AI inference,
    training, and HPC workloads. Supports managing compute instances, deploying AI models,
    monitoring GPU utilization, and integrating with ROCm-compatible frameworks including
    PyTorch, TensorFlow, and vLLM.
  version: "1"
  contact:
    name: AMD Developer Support
    url: https://developer.amd.com/support/
  termsOfService: https://www.amd.com/en/legal/terms-and-conditions.html
  license:
    name: AMD Terms and Conditions
    url: https://www.amd.com/en/legal/terms-and-conditions.html
servers:
  - url: https://api.developer.amd.com/v1
    description: AMD Developer Cloud API Production
tags:
  - name: Instances
    description: GPU compute instance management
  - name: Models
    description: AI model deployment and management
  - name: Monitoring
    description: GPU utilization and performance monitoring
  - name: Credits
    description: Cloud credit balance and usage
security:
  - apiKey: []
paths:
  /instances:
    get:
      operationId: listInstances
      summary: AMD Developer Cloud List GPU Instances
      description: "Retrieve all active GPU compute instances in the authenticated account."
      tags:
        - Instances
      parameters:
        - name: status
          in: query
          required: false
          description: "Filter by instance status."
          schema:
            type: string
            enum: [running, stopped, pending, terminated]
        - name: gpuType
          in: query
          required: false
          description: "Filter by GPU type (e.g., mi300x, mi250)."
          schema:
            type: string
        - name: limit
          in: query
          required: false
          description: "Maximum number of instances to return."
          schema:
            type: integer
            default: 20
        - name: offset
          in: query
          required: false
          description: "Pagination offset."
          schema:
            type: integer
            default: 0
      responses:
        '200':
          description: "List of GPU instances."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InstanceList'
              examples:
                listInstances200Example:
                  summary: Default listInstances 200 response
                  x-microcks-default: true
                  value:
                    instances:
                      - id: "inst-001"
                        name: "my-training-run"
                        gpuType: "mi300x"
                        gpuCount: 8
                        status: "running"
                        region: "us-west-2"
                    total: 1
        '401':
          description: "Unauthorized."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                listInstances401Example:
                  summary: Default listInstances 401 response
                  x-microcks-default: true
                  value:
                    code: "UNAUTHORIZED"
                    message: "Invalid API key"
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: createInstance
      summary: AMD Developer Cloud Create GPU Instance
      description: "Launch a new AMD GPU compute instance with specified hardware configuration and ROCm environment."
      tags:
        - Instances
      requestBody:
        required: true
        description: "Instance creation parameters."
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InstanceInput'
            examples:
              createInstanceRequestExample:
                summary: Default createInstance request
                x-microcks-default: true
                value:
                  name: "llm-training"
                  gpuType: "mi300x"
                  gpuCount: 8
                  imageId: "rocm-6.1-pytorch"
                  region: "us-west-2"
      responses:
        '201':
          description: "Instance created."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Instance'
              examples:
                createInstance201Example:
                  summary: Default createInstance 201 response
                  x-microcks-default: true
                  value:
                    id: "inst-002"
                    name: "llm-training"
                    gpuType: "mi300x"
                    gpuCount: 8
                    status: "pending"
                    region: "us-west-2"
        '401':
          description: "Unauthorized."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                createInstance401Example:
                  summary: Default createInstance 401 response
                  x-microcks-default: true
                  value:
                    code: "UNAUTHORIZED"
                    message: "Invalid API key"
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /instances/{instanceId}:
    get:
      operationId: getInstance
      summary: AMD Developer Cloud Get GPU Instance
      description: "Retrieve details of a specific GPU compute instance including status, configuration, and resource utilization."
      tags:
        - Instances
      parameters:
        - name: instanceId
          in: path
          required: true
          description: "GPU instance identifier."
          schema:
            type: string
      responses:
        '200':
          description: "Instance details."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Instance'
              examples:
                getInstance200Example:
                  summary: Default getInstance 200 response
                  x-microcks-default: true
                  value:
                    id: "inst-001"
                    name: "my-training-run"
                    gpuType: "mi300x"
                    gpuCount: 8
                    status: "running"
                    region: "us-west-2"
        '404':
          description: "Instance not found."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                getInstance404Example:
                  summary: Default getInstance 404 response
                  x-microcks-default: true
                  value:
                    code: "NOT_FOUND"
                    message: "Instance not found"
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    delete:
      operationId: terminateInstance
      summary: AMD Developer Cloud Terminate GPU Instance
      description: "Terminate and remove an AMD GPU compute instance."
      tags:
        - Instances
      parameters:
        - name: instanceId
          in: path
          required: true
          description: "GPU instance identifier."
          schema:
            type: string
      responses:
        '204':
          description: "Instance terminated."
        '404':
          description: "Instance not found."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                terminateInstance404Example:
                  summary: Default terminateInstance 404 response
                  x-microcks-default: true
                  value:
                    code: "NOT_FOUND"
                    message: "Instance not found"
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /instances/{instanceId}/metrics:
    get:
      operationId: getInstanceMetrics
      summary: AMD Developer Cloud Get GPU Instance Metrics
      description: "Retrieve real-time GPU utilization, memory usage, temperature, and power consumption metrics for an instance."
      tags:
        - Monitoring
      parameters:
        - name: instanceId
          in: path
          required: true
          description: "GPU instance identifier."
          schema:
            type: string
      responses:
        '200':
          description: "Instance performance metrics."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InstanceMetrics'
              examples:
                getInstanceMetrics200Example:
                  summary: Default getInstanceMetrics 200 response
                  x-microcks-default: true
                  value:
                    instanceId: "inst-001"
                    gpuUtilization: 87.5
                    memoryUsed: 180.2
                    memoryTotal: 192.0
                    temperature: 72
                    powerDraw: 680.0
        '401':
          description: "Unauthorized."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                getInstanceMetrics401Example:
                  summary: Default getInstanceMetrics 401 response
                  x-microcks-default: true
                  value:
                    code: "UNAUTHORIZED"
                    message: "Invalid API key"
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /models:
    get:
      operationId: listModels
      summary: AMD Developer Cloud List Deployed Models
      description: "List AI models deployed on the AMD Developer Cloud for inference serving."
      tags:
        - Models
      responses:
        '200':
          description: "List of deployed models."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModelList'
              examples:
                listModels200Example:
                  summary: Default listModels 200 response
                  x-microcks-default: true
                  value:
                    models:
                      - id: "model-001"
                        name: "llama-3.1-70b"
                        framework: "vLLM"
                        status: "serving"
                        endpoint: "https://inf.developer.amd.com/model-001/v1"
        '401':
          description: "Unauthorized."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                listModels401Example:
                  summary: Default listModels 401 response
                  x-microcks-default: true
                  value:
                    code: "UNAUTHORIZED"
                    message: "Invalid API key"
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: deployModel
      summary: AMD Developer Cloud Deploy AI Model
      description: "Deploy an AI model for inference serving on AMD Instinct GPUs using vLLM or another serving framework."
      tags:
        - Models
      requestBody:
        required: true
        description: "Model deployment configuration."
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ModelInput'
            examples:
              deployModelRequestExample:
                summary: Default deployModel request
                x-microcks-default: true
                value:
                  name: "llama-3.1-70b"
                  modelId: "meta-llama/Llama-3.1-70B-Instruct"
                  framework: "vLLM"
                  gpuType: "mi300x"
                  gpuCount: 2
      responses:
        '201':
          description: "Model deployed."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Model'
              examples:
                deployModel201Example:
                  summary: Default deployModel 201 response
                  x-microcks-default: true
                  value:
                    id: "model-002"
                    name: "llama-3.1-70b"
                    framework: "vLLM"
                    status: "deploying"
                    endpoint: "https://inf.developer.amd.com/model-002/v1"
        '401':
          description: "Unauthorized."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                deployModel401Example:
                  summary: Default deployModel 401 response
                  x-microcks-default: true
                  value:
                    code: "UNAUTHORIZED"
                    message: "Invalid API key"
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /credits:
    get:
      operationId: getCredits
      summary: AMD Developer Cloud Get Credit Balance
      description: "Retrieve the current GPU credit balance and usage history for the authenticated account."
      tags:
        - Credits
      responses:
        '200':
          description: "Credit balance and usage."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Credits'
              examples:
                getCredits200Example:
                  summary: Default getCredits 200 response
                  x-microcks-default: true
                  value:
                    balance: 450.00
                    used: 550.00
                    total: 1000.00
                    currency: "USD"
                    expiresAt: "2026-12-31T23:59:59Z"
        '401':
          description: "Unauthorized."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                getCredits401Example:
                  summary: Default getCredits 401 response
                  x-microcks-default: true
                  value:
                    code: "UNAUTHORIZED"
                    message: "Invalid API key"
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: X-API-Key
  schemas:
    Instance:
      type: object
      description: "An AMD GPU compute instance."
      properties:
        id:
          type: string
          description: "Instance identifier."
          example: "inst-001"
        name:
          type: string
          description: "Instance display name."
          example: "my-training-run"
        gpuType:
          type: string
          description: "GPU hardware type."
          enum: [mi300x, mi250, mi210, rx7900xtx]
          example: "mi300x"
        gpuCount:
          type: integer
          description: "Number of GPUs in the instance."
          example: 8
        status:
          type: string
          description: "Current instance status."
          enum: [running, stopped, pending, terminated]
          example: "running"
        region:
          type: string
          description: "Deployment region."
          example: "us-west-2"
        imageId:
          type: string
          description: "ROCm image used for the instance."
          example: "rocm-6.1-pytorch"
        createdAt:
          type: string
          format: date-time
          description: "Instance creation timestamp."
    InstanceInput:
      type: object
      description: "Request to create a GPU compute instance."
      required:
        - gpuType
        - gpuCount
      properties:
        name:
          type: string
          description: "Display name for the instance."
          example: "llm-training"
        gpuType:
          type: string
          description: "GPU hardware type."
          enum: [mi300x, mi250, mi210]
          example: "mi300x"
        gpuCount:
          type: integer
          description: "Number of GPUs to allocate."
          example: 8
        imageId:
          type: string
          description: "ROCm environment image."
          example: "rocm-6.1-pytorch"
        region:
          type: string
          description: "Deployment region."
          example: "us-west-2"
    InstanceList:
      type: object
      description: "List of GPU compute instances."
      properties:
        instances:
          type: array
          description: "Array of instances."
          items:
            $ref: '#/components/schemas/Instance'
        total:
          type: integer
          description: "Total number of instances."
          example: 3
    InstanceMetrics:
      type: object
      description: "Real-time performance metrics for a GPU instance."
      properties:
        instanceId:
          type: string
          description: "Instance identifier."
          example: "inst-001"
        gpuUtilization:
          type: number
          format: float
          description: "GPU utilization percentage."
          example: 87.5
        memoryUsed:
          type: number
          format: float
          description: "GPU memory used in GB."
          example: 180.2
        memoryTotal:
          type: number
          format: float
          description: "Total GPU memory in GB."
          example: 192.0
        temperature:
          type: integer
          description: "GPU temperature in Celsius."
          example: 72
        powerDraw:
          type: number
          format: float
          description: "Current power draw in watts."
          example: 680.0
    Model:
      type: object
      description: "A deployed AI model for inference serving."
      properties:
        id:
          type: string
          description: "Model deployment identifier."
          example: "model-001"
        name:
          type: string
          description: "Model display name."
          example: "llama-3.1-70b"
        framework:
          type: string
          description: "Inference serving framework."
          enum: [vLLM, TGI, TorchServe, Triton]
          example: "vLLM"
        status:
          type: string
          description: "Deployment status."
          enum: [deploying, serving, stopped, failed]
          example: "serving"
        endpoint:
          type: string
          description: "Inference endpoint URL."
          example: "https://inf.developer.amd.com/model-001/v1"
    ModelInput:
      type: object
      description: "Request to deploy an AI model."
      required:
        - modelId
        - framework
        - gpuType
      properties:
        name:
          type: string
          description: "Display name for the deployment."
          example: "llama-3.1-70b"
        modelId:
          type: string
          description: "Hugging Face model ID or path."
          example: "meta-llama/Llama-3.1-70B-Instruct"
        framework:
          type: string
          description: "Inference framework to use."
          enum: [vLLM, TGI, TorchServe, Triton]
          example: "vLLM"
        gpuType:
          type: string
          description: "GPU hardware type."
          example: "mi300x"
        gpuCount:
          type: integer
          description: "Number of GPUs to allocate."
          example: 2
    ModelList:
      type: object
      description: "List of deployed AI models."
      properties:
        models:
          type: array
          description: "Array of model deployments."
          items:
            $ref: '#/components/schemas/Model'
    Credits:
      type: object
      description: "GPU credit balance and usage for the account."
      properties:
        balance:
          type: number
          format: float
          description: "Remaining credit balance."
          example: 450.00
        used:
          type: number
          format: float
          description: "Credits consumed."
          example: 550.00
        total:
          type: number
          format: float
          description: "Total credits allocated."
          example: 1000.00
        currency:
          type: string
          description: "Currency of credit values."
          example: "USD"
        expiresAt:
          type: string
          format: date-time
          description: "Credit expiration date."
    ErrorResponse:
      type: object
      description: "API error response."
      properties:
        code:
          type: string
          description: "Error code."
          example: "NOT_FOUND"
        message:
          type: string
          description: "Error message."
          example: "The requested resource was not found."