GMI Cloud Containers API

GMI Container management APIs for creating, managing, and monitoring containerized applications.

Business capability
IT Infrastructure Management BC-600.50

Operations 9

POST /v1/containers Create containers #
GET /v1/containers List container information #
DELETE /v1/containers/{id} Delete container #
GET /v1/containers/{id} Get container info by ID #
PUT /v1/containers/{id} Update container #
GET /v1/containers/{id}/logs Download container logs #
POST /v1/containers/{id}/shell Generate container shell URL path #
GET /v1/containers/products Get container products #
POST /v1/containers/{id}/restart Restart container #

Specifications

Schemas & Data

📊
JSONSchema
https://artifacts.apis.io/gmi-cloud/json-schema/gmi-cloud-containers-resp-schema.json
📊
JSONSchema
https://artifacts.apis.io/gmi-cloud/json-schema/gmi-cloud-baremetal-resp-schema.json
📊
JSONSchema
https://artifacts.apis.io/gmi-cloud/json-schema/gmi-cloud-container-config-schema.json
📊
JSONSchema
https://artifacts.apis.io/gmi-cloud/json-schema/gmi-cloud-baremetal-req-schema.json
📊
JSONSchema
https://artifacts.apis.io/gmi-cloud/json-schema/gmi-cloud-firewall-resp-schema.json
📊
JSONSchema
https://artifacts.apis.io/gmi-cloud/json-schema/gmi-cloud-elastic-ipresp-schema.json
📊
JSONSchema
https://artifacts.apis.io/gmi-cloud/json-schema/gmi-cloud-update-password-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/gmi-cloud/json-schema/gmi-cloud-create-api-key-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/gmi-cloud/json-schema/gmi-cloud-create-oauth-auth-token-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/gmi-cloud/json-schema/gmi-cloud-create-session-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/gmi-cloud/json-schema/gmi-cloud-exchange-authorization-code-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/gmi-cloud/json-schema/gmi-cloud-auth-token-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/gmi-cloud/json-schema/gmi-cloud-create-template-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/gmi-cloud/json-schema/gmi-cloud-sandbox-exec-result-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/gmi-cloud/json-schema/gmi-cloud-create-sandbox-control-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/gmi-cloud/json-schema/gmi-cloud-build-definition-schema.json
📊
JSONSchema
https://artifacts.apis.io/gmi-cloud/json-schema/gmi-cloud-set-sandbox-control-timeout-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/gmi-cloud/json-schema/gmi-cloud-update-template-request-schema.json

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/gmi-cloud:gmi-cloud-containers-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

gmi-cloud-containers-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  contact:
    email: support@gmicloud.ai
  description: Cluster Engine API spec
  title: Cluster Engine Containers API
  version: 2.4.0
  x-harvested-from: Mintlify per-page OpenAPI slices on docs.gmicloud.ai/api-reference (llms.txt index), merged 2026-10-13
servers:
- url: https://console.gmicloud.ai/api
security:
- bearerAuth: []
tags:
- name: Containers
  description: GMI Container management APIs for creating, managing, and monitoring containerized applications.
paths:
  /v1/containers:
    post:
      tags:
      - Containers
      summary: Create containers
      description: create Container under default namespace
      operationId: createContainer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/containerReq'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/UuidObject'
                type: array
          description: successful
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      x-source: https://docs.gmicloud.ai/api-reference/containers/create-containers.md
    get:
      tags:
      - Containers
      summary: List container information
      operationId: getContainers
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/containersResp'
                type: array
          description: successful
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      x-source: https://docs.gmicloud.ai/api-reference/containers/list-container-information.md
  /v1/containers/{id}:
    delete:
      tags:
      - Containers
      summary: Delete container
      operationId: deleteContainers
      parameters:
      - in: path
        name: id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        '200':
          $ref: '#/components/responses/Done'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      x-source: https://docs.gmicloud.ai/api-reference/containers/delete-container.md
    get:
      tags:
      - Containers
      summary: Get container info by ID
      operationId: getContainer
      parameters:
      - in: path
        name: id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/containersResp'
          description: successful
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      x-source: https://docs.gmicloud.ai/api-reference/containers/get-container-info-by-id.md
    put:
      tags:
      - Containers
      summary: Update container
      operationId: UpdateContainer
      parameters:
      - in: path
        name: id
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/containerConfig'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  id:
                    format: uuid
                    type: string
                type: object
          description: successful
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      x-source: https://docs.gmicloud.ai/api-reference/containers/update-container.md
  /v1/containers/{id}/logs:
    get:
      tags:
      - Containers
      summary: Download container logs
      operationId: downloadLog
      parameters:
      - in: path
        name: id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        '200':
          content:
            text/plain:
              schema:
                type: string
          description: log string
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      x-source: https://docs.gmicloud.ai/api-reference/containers/download-container-logs.md
  /v1/containers/{id}/shell:
    post:
      tags:
      - Containers
      summary: Generate container shell URL path
      operationId: containerShell
      parameters:
      - in: path
        name: id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  urlPath:
                    format: uri-reference
                    type: string
                required:
                - urlPath
                type: object
          description: successful
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      x-source: https://docs.gmicloud.ai/api-reference/containers/generate-container-shell-url-path.md
  /v1/containers/products:
    get:
      tags:
      - Containers
      summary: Get container products
      operationId: getContainerProducts
      parameters:
      - in: query
        name: idc
        schema:
          $ref: '#/components/schemas/idcName'
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/product'
                type: array
          description: successful
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      x-source: https://docs.gmicloud.ai/api-reference/containers/get-container-products.md
  /v1/containers/{id}/restart:
    post:
      tags:
      - Containers
      summary: Restart container
      operationId: restartContainer
      parameters:
      - in: path
        name: id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        '200':
          $ref: '#/components/responses/Done'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      x-source: https://docs.gmicloud.ai/api-reference/containers/restart-container.md
components:
  schemas:
    UuidList:
      items:
        format: uuid
        type: string
      type: array
    name:
      maxLength: 255
      pattern: ^([A-Za-z0-9][A-Za-z0-9_\-. ]*)?[A-Za-z0-9]$
      type: string
    containerConfig:
      properties:
        args:
          default: []
          description: Optional container command arguments
          items:
            type: string
          type: array
          x-go-type-skip-optional-pointer: true
        command:
          default: ''
          description: Optional container start command
          type: string
          x-go-type-skip-optional-pointer: true
        envs:
          default: []
          example:
          - name: access_token
            value: kalsk113==
          items:
            $ref: '#/components/schemas/Env'
          minLength: 0
          type: array
        name:
          $ref: '#/components/schemas/name'
          example: LLM training
        ports:
          default: []
          items:
            $ref: '#/components/schemas/exposedPort'
          maxLength: 5
          minLength: 0
          type: array
          x-go-type-skip-optional-pointer: true
        sshKeyIdList:
          $ref: '#/components/schemas/UuidList'
          description: The list of SSH key IDs to use in the container
        templateId:
          description: template id
          format: uuid
          type: string
      required:
      - name
      - templateId
      type: object
    error:
      properties:
        code:
          type: integer
          x-go-type-skip-optional-pointer: true
        reason:
          type: string
          x-go-type-skip-optional-pointer: true
      required:
      - reason
      type: object
    containersResp:
      allOf:
      - properties:
          createdAt:
            format: date-time
            type: string
          eipAddress:
            type: string
          eipId:
            format: uuid
            type: string
          firewalls:
            items:
              format: uuid
              type: string
            type: array
          id:
            format: uuid
            type: string
          inboundIP:
            $ref: '#/components/schemas/externalIP'
          modifiedAt:
            format: date-time
            type: string
          orgId:
            format: uuid
            type: string
          outboundIP:
            $ref: '#/components/schemas/externalIP'
          publicIP:
            $ref: '#/components/schemas/externalIP'
          reason:
            description: reason of container status
            type: string
          status:
            $ref: '#/components/schemas/containerStatus'
          storages:
            default: []
            example:
            - containerPath: /workspace
              id: 550e8400-e29b-41d4-a716-446655440000
            items:
              $ref: '#/components/schemas/Storage'
            minLength: 0
            type: array
        required:
        - status
        - reason
        - storages
        type: object
      - $ref: '#/components/schemas/container'
    errorStatusMessage:
      example:
        code: 0
        group: request
        validationDetail:
        - expression: required
          field: userName
          originalValue: ''
          reason: This field is required.
      properties:
        code:
          description: The substatus error code for the API response.
          type: integer
        group:
          description: API function group. Will be "request" if there are invalid request parameters.
          type: string
        message:
          description: The substatus error message for the API response.
          type: string
        traces:
          description: The original error messages.
          items:
            type: string
          type: array
        validationDetail:
          items:
            $ref: '#/components/schemas/validationDetail'
          type: array
      required:
      - group
      - code
      type: object
    idcName:
      maxLength: 50
      pattern: ^[a-zA-Z0-9._-]+$
      type: string
    validationDetail:
      example:
        expression: required
        field: userName
        originalValue: ''
        reason: This field is required.
      properties:
        argument:
          description: Data supporting the expression.
          type: string
        expression:
          description: The form of violation.
          type: string
        field:
          description: The field of the request data.
          type: string
        originalValue:
          description: The original value from the request.
          type: string
        reason:
          description: The reason for the validation error.
          type: string
      type: object
    containerStatus:
      enum:
      - unknown
      - creating
      - running
      - terminating
      - stopped
      - error
      - zombie
      type: string
    productName:
      maxLength: 256
      pattern: ^[a-zA-Z0-9._-]+$
      type: string
    Env:
      properties:
        name:
          maxLength: 4096
          pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
          type: string
        value:
          default: ''
          maxLength: 1048576
          type: string
      required:
      - name
      - value
    Storage:
      description: mount persistent file systems in the container pod
      properties:
        containerPath:
          description: Mounting root directory "/" is not allowed
          example: /tmp
          maxLength: 4096
          pattern: ^\/.+$
          type: string
        id:
          format: uuid
          type: string
      required:
      - id
      - containerPath
    UuidObject:
      properties:
        id:
          format: uuid
          type: string
      required:
      - id
      type: object
    productType:
      enum:
      - Container
      - BareMetal
      - Storage
      - EIP
      type: string
    exposedPort:
      properties:
        containerPort:
          maximum: 65534
          minimum: 0
          type: integer
        port:
          maximum: 65534
          minimum: 0
          type: integer
          x-go-type-skip-optional-pointer: true
        protocol:
          enum:
          - TCP
          - UDP
          type: string
      required:
      - containerPort
      - protocol
    externalIP:
      properties:
        ipAddress:
          type: string
        status:
          enum:
          - ready
          - pending
          - error
          - not_applicable
          type: string
      required:
      - ipAddress
      - status
      x-go-type-skip-optional-pointer: true
    container:
      allOf:
      - properties:
          idc:
            $ref: '#/components/schemas/idcName'
          product:
            $ref: '#/components/schemas/productName'
        required:
        - product
        - idc
        type: object
      - $ref: '#/components/schemas/containerConfig'
    containerReq:
      allOf:
      - properties:
          count:
            minimum: 1
            type: integer
        required:
        - count
        type: object
      - $ref: '#/components/schemas/container'
    product:
      properties:
        gpuModel:
          type: string
        idc:
          type: string
        name:
          type: string
        price:
          type: integer
        productLine:
          description: product line for categorization
          type: string
        spec:
          type: object
        type:
          $ref: '#/components/schemas/productType'
        valid:
          type: boolean
      required:
      - idc
      - name
      - type
      - price
      - valid
      - spec
      type: object
  responses:
    Done:
      content:
        application/json:
          example:
            result: container 12345678-1234-2234-3234-xxxxxxxxxxxxxx has been restarted
          schema:
            properties:
              result:
                type: string
            required:
            - result
            type: object
      description: An action completed successfully
    NotFound:
      content:
        application/json:
          example:
            reason: resource 12345678-1234-2234-3234-xxxxxxxxxxxxxx was not found
          schema:
            $ref: '#/components/schemas/error'
      description: The specified resource was not found
    ServiceUnavailable:
      content:
        application/json:
          example:
            reason: database is unavailable
          schema:
            $ref: '#/components/schemas/error'
      description: a dependent service is unavailable
    Unauthorized:
      content:
        application/json:
          examples:
            Expired access token.:
              summary: Expired access token.
              value:
                code: 1
                group: auth_verify
                message: Expired access token.
            Invalid access token.:
              summary: Invalid access token.
              value:
                code: 0
                group: auth_verify
                message: Invalid access token.
          schema:
            $ref: '#/components/schemas/errorStatusMessage'
      description: Authentication information is missing or invalid
      headers:
        WWW_Authenticate:
          schema:
            type: string
    BadRequest:
      content:
        application/json:
          example:
            reason: resources.CPU is a required property
          schema:
            oneOf:
            - $ref: '#/components/schemas/error'
            - $ref: '#/components/schemas/errorStatusMessage'
      description: bad request
    InternalServerError:
      content:
        application/json:
          example:
            reason: An error occurred in the kubernetes cluster
          schema:
            $ref: '#/components/schemas/error'
      description: Internal Server Error
    Conflict:
      content:
        application/json:
          example:
            reason: timestamp mismatched
          schema:
            $ref: '#/components/schemas/error'
      description: request failed due to a conflict create or update
    Forbidden:
      content:
        application/json:
          example:
            reason: 'access denied: tenant has no permission to do the operation'
          schema:
            $ref: '#/components/schemas/error'
      description: tenant has no permission to do the operation
  securitySchemes:
    bearerAuth:
      bearerFormat: JWT
      scheme: bearer
      type: http
x-provenance:
  method: harvested
  publisher: GMI Cloud
  source: https://docs.gmicloud.ai/api-spec/service_api.yaml
  note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
    stamped by stamp-openapi-provenance.py (roadmap#793)