Helipod VPS API

Helipod VPS API as documented publicly: 15 operations. Contract generated from the documentation by API Evangelist (2026-11-11); not the provider's own document.

GitHub OpenAPI

Operations 15

GET /api${path} GET /api${path} #
POST /api/backup/plans POST /api/backup/plans #
PATCH /api/vps PATCH /api/vps #
POST /api/vps POST /api/vps #
GET /api/vps/${id} GET /api/vps/${id} #
POST /api/vps/1f757fd5-98d1-490a-81a0-58b5798a5815/firewall POST /api/vps/1f757fd5-98d1-490a-81a0-58b5798a5815/firewall #
POST /api/vps/1f757fd5-98d1-490a-81a0-58b5798a5815/ports POST /api/vps/1f757fd5-98d1-490a-81a0-58b5798a5815/ports #
POST /api/vps/1f757fd5-98d1-490a-81a0-58b5798a5815/renewal-options POST /api/vps/1f757fd5-98d1-490a-81a0-58b5798a5815/renewal-options #
POST /api/vps/1f757fd5-98d1-490a-81a0-58b5798a5815/restart POST /api/vps/1f757fd5-98d1-490a-81a0-58b5798a5815/restart #
POST /api/vps/1f757fd5-98d1-490a-81a0-58b5798a5815/snapshots POST /api/vps/1f757fd5-98d1-490a-81a0-58b5798a5815/snapshots #
POST /api/vps/1f757fd5-98d1-490a-81a0-58b5798a5815/ssh-keys POST /api/vps/1f757fd5-98d1-490a-81a0-58b5798a5815/ssh-keys #
POST /api/vps/1f757fd5-98d1-490a-81a0-58b5798a5815/start POST /api/vps/1f757fd5-98d1-490a-81a0-58b5798a5815/start #
POST /api/vps/1f757fd5-98d1-490a-81a0-58b5798a5815/stop POST /api/vps/1f757fd5-98d1-490a-81a0-58b5798a5815/stop #
GET /api/vps/plans GET /api/vps/plans #
POST /migrate/… POST /migrate/… #

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/helipod-io:vps-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

helipod-io-vps-openapi-generated.yml Raw ↑
openapi: 3.1.0
info:
  title: Helipod VPS API
  version: '2026-11-11'
  description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-11-11: 15 operation(s) read from 11 public documentation page(s) (each
    operation names its page in x-source). This is not the provider''s published contract; Helipod has published no machine-readable contract
    that the pipeline could find. Engine: anthropic.'
  x-evidence-tiers:
    code-example: 37
    documentation: 0
    pages-with-code: 38
    pages-read: 40
  x-generated-from: documentation
  x-provenance: generated
  x-authored-by: API Evangelist
  x-generated: '2026-11-11'
  x-generator: generate-contract-from-docs.py
  x-engine: anthropic
  x-sources:
  - https://docs.helipod.io/docs/vps-api/actions
  - https://docs.helipod.io/docs/vps-api/backups
  - https://docs.helipod.io/docs/vps-api/billing
  - https://docs.helipod.io/docs/vps-api/errors
  - https://docs.helipod.io/docs/vps-api/firewall
  - https://docs.helipod.io/docs/vps-api/instances
  - https://docs.helipod.io/docs/vps-api/migrate
  - https://docs.helipod.io/docs/vps-api/plans
  - https://docs.helipod.io/docs/vps-api/port-forwarding
  - https://docs.helipod.io/docs/vps-api/snapshots
  - https://docs.helipod.io/docs/vps-api/ssh
  x-docs-section: vps-api
servers:
- url: https://api.helipod.io
paths:
  /api${path}:
    get:
      operationId: get_api_path
      tags:
      - Api Path
      summary: GET /api${path}
      x-source: https://docs.helipod.io/docs/vps-api/errors
      parameters:
      - name: path
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: javascript
        snippet: "fetch ( `https://api.helipod.io/api${path}` , { \n method, \n headers: { \n Authorization: `Bearer ${key}` , \n ... (body ?\
          \ { 'Content-Type' : 'application/json' } : {})"
  /api/backup/plans:
    post:
      operationId: post_api_backup_plans
      tags:
      - Api
      summary: POST /api/backup/plans
      x-source: https://docs.helipod.io/docs/vps-api/backups
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiBackupPlansRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl https://api.helipod.io/api/backup/plans  -H \"Authorization: Bearer hel_your_key\" \n Copy Text { \n \"success\" : true\
          \ , \n \"data\" : [ \n { \n \"code\" : \"BACKUP_30\" , \n \"name\" : \"Backup 30 GB\" , \n \"quotaBytes\" : 32212254720 , \n \"priceMonthly\"\
          \ : 19900 , \n \"priceYearly\" : 199000 , \n \"keepDaily\" : 7 , \n \"keepWeekly\" : 4 , \n \"keepMonthly\" : 3 \n }, \n { \n \"code\"\
          \ : \"BACKUP_60\" , \n \"name\" : \"Backup 60 GB\" , \n"
  /api/vps:
    patch:
      operationId: patch_api_vps
      tags:
      - Api
      summary: PATCH /api/vps
      x-source: https://docs.helipod.io/docs/vps-api/instances
      parameters:
      - name: status
        in: query
        required: false
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchApiVpsRequest'
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl JavaScript Copy Text curl \"https://api.helipod.io/api/vps?status=running\"  -H \"Authorization: Bearer hel_your_key\"\
          \ \n Copy Text { \n \"success\" : true , \n \"data\" : [ \n { \n \"id\" : \"1f757fd5-98d1-490a-81a0-58b5798a5815\" , \n \"projectId\"\
          \ : \"7c9e6679-7425-40de-944b-e07fc1f90ae7\" , \n \"name\" : \"web-1\" , \n \"status\" : \"running\" , \n \"publicIp\" : \"203.0.113.24\"\
          \ , \n \"cpuCores\" : 2 , \n \"ramMb\" : 2048 , \n \"di"
    post:
      operationId: post_api_vps
      tags:
      - Api
      summary: POST /api/vps
      x-source: https://docs.helipod.io/docs/vps-api/instances
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiVpsRequest'
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiVpsResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl JavaScript Copy Text curl -X POST https://api.helipod.io/api/vps  -H \"Authorization: Bearer hel_your_key\"  -H \"Content-Type:\
          \ application/json\"  -d '{ \n \"planId\": \"4db565ff-782f-46c8-9324-e4670517233f\", \n \"projectId\": \"7c9e6679-7425-40de-944b-e07fc1f90ae7\"\
          , \n \"name\": \"web-1\", \n \"osType\": \"ubuntu\", \n \"osVersion\": \"24.04\", \n \"rootPassword\": \"Str0ng!Passw0rd\", \n \"billingPeriod\"\
          : \"monthly\" \n }' \n "
  /api/vps/${id}:
    get:
      operationId: get_api_vps_id
      tags:
      - Api
      summary: GET /api/vps/${id}
      x-source: https://docs.helipod.io/docs/vps-api/instances
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: javascript
        snippet: "fetch ( `https://api.helipod.io/api/vps/${id}` , { \n headers: { Authorization: `Bearer ${key}` }, \n })"
  /api/vps/1f757fd5-98d1-490a-81a0-58b5798a5815/firewall:
    post:
      operationId: post_api_vps_1f757fd5_98d1_490a_81a0_58b5798a5815_firewall
      tags:
      - Api
      summary: POST /api/vps/1f757fd5-98d1-490a-81a0-58b5798a5815/firewall
      x-source: https://docs.helipod.io/docs/vps-api/firewall
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiVps1F757Fd598D1490A81A058B5798A5815FirewallRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl https://api.helipod.io/api/vps/1f757fd5-98d1-490a-81a0-58b5798a5815/firewall  -H \"Authorization: Bearer hel_your_key\"\
          \ \n Copy Text { \n \"success\" : true , \n \"data\" : [ \n { \n \"id\" : \"9a2e7f10-3c4d-4e5f-8a9b-0c1d2e3f4a5b\" , \n \"Protocol\"\
          \ : \"TCP\" , \n \"Port\" : \"22\" , \n \"CidrBlock\" : \"0.0.0.0/0\" , \n \"Action\" : \"ACCEPT\" , \n \"FirewallRuleDescription\"\
          \ : \"SSH\" , \n \"isDefault\" : true , \n \"status\" : \"synce"
  /api/vps/1f757fd5-98d1-490a-81a0-58b5798a5815/ports:
    post:
      operationId: post_api_vps_1f757fd5_98d1_490a_81a0_58b5798a5815_ports
      tags:
      - Api
      summary: POST /api/vps/1f757fd5-98d1-490a-81a0-58b5798a5815/ports
      x-source: https://docs.helipod.io/docs/vps-api/port-forwarding
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiVps1F757Fd598D1490A81A058B5798A5815PortsRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl https://api.helipod.io/api/vps/1f757fd5-98d1-490a-81a0-58b5798a5815/ports  -H \"Authorization: Bearer hel_your_key\" \n\
          \ Copy Text { \n \"success\" : true , \n \"data\" : { \n \"portRange\" : { \"start\" : 20141 , \"end\" : 20159 }, \n \"ports\" : [ \n\
          \ { \"id\" : \"2b7c1e94-5d3a-4f8e-9a61-0c4d2e7f8b13\" , \"port\" : 20145 , \"protocol\" : \"tcp\" , \"internalPort\" : 5432 , \"domain\"\
          \ : null , \"description\" : \"Postgres\" , \"act"
  /api/vps/1f757fd5-98d1-490a-81a0-58b5798a5815/renewal-options:
    post:
      operationId: post_api_vps_1f757fd5_98d1_490a_81a0_58b5798a5815_renewal_options
      tags:
      - Api
      summary: POST /api/vps/1f757fd5-98d1-490a-81a0-58b5798a5815/renewal-options
      x-source: https://docs.helipod.io/docs/vps-api/billing
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiVps1F757Fd598D1490A81A058B5798A5815RenewalOptionsRequ'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl https://api.helipod.io/api/vps/1f757fd5-98d1-490a-81a0-58b5798a5815/renewal-options  -H \"Authorization: Bearer hel_your_key\"\
          \ \n Copy Text { \n \"success\" : true , \n \"data\" : { \n \"instanceId\" : \"1f757fd5-98d1-490a-81a0-58b5798a5815\" , \n \"planName\"\
          \ : \"VPS S - Jakarta\" , \n \"currentBillingMonths\" : 1 , \n \"currentExpiresAt\" : \"2026-11-15T08:22:12.000Z\" , \n \"priceMonthly\"\
          \ : 64900 , \n \"options\" : [ \n {"
  /api/vps/1f757fd5-98d1-490a-81a0-58b5798a5815/restart:
    post:
      operationId: post_api_vps_1f757fd5_98d1_490a_81a0_58b5798a5815_restart
      tags:
      - Api
      summary: POST /api/vps/1f757fd5-98d1-490a-81a0-58b5798a5815/restart
      x-source: https://docs.helipod.io/docs/vps-api/actions
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiVps1F757Fd598D1490A81A058B5798A5815RestartRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl JavaScript Copy Text curl -X POST https://api.helipod.io/api/vps/1f757fd5-98d1-490a-81a0-58b5798a5815/restart  -H \"Authorization:\
          \ Bearer hel_your_key\" \n Copy Text { \n \"success\" : true , \n \"data\" : { \n \"id\" : \"1f757fd5-98d1-490a-81a0-58b5798a5815\"\
          \ , \n \"status\" : \"restarting\" , \n \"lastJobType\" : \"vps:restart\" , \n \"lastJobStatus\" : \"pending\" \n } \n } \n Reinstall\
          \ the operating system Copy Anchor L"
  /api/vps/1f757fd5-98d1-490a-81a0-58b5798a5815/snapshots:
    post:
      operationId: post_api_vps_1f757fd5_98d1_490a_81a0_58b5798a5815_snapshots
      tags:
      - Api
      summary: POST /api/vps/1f757fd5-98d1-490a-81a0-58b5798a5815/snapshots
      x-source: https://docs.helipod.io/docs/vps-api/snapshots
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiVps1F757Fd598D1490A81A058B5798A5815SnapshotsRequest'
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiVps1F757Fd598D1490A81A058B5798A5815SnapshotsResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl https://api.helipod.io/api/vps/1f757fd5-98d1-490a-81a0-58b5798a5815/snapshots  -H \"Authorization: Bearer hel_your_key\"\
          \ \n Copy Text { \n \"success\" : true , \n \"data\" : { \n \"snapshots\" : [ \n { \n \"id\" : \"0e8b5c1d-6f3a-4b2e-9c7d-1a2b3c4d5e6f\"\
          \ , \n \"instanceId\" : \"1f757fd5-98d1-490a-81a0-58b5798a5815\" , \n \"name\" : \"before-upgrade\" , \n \"state\" : \"NORMAL\" , \n\
          \ \"percent\" : 100 , \n \"diskSize\" : 40 , \n \"cr"
  /api/vps/1f757fd5-98d1-490a-81a0-58b5798a5815/ssh-keys:
    post:
      operationId: post_api_vps_1f757fd5_98d1_490a_81a0_58b5798a5815_ssh_keys
      tags:
      - Api
      summary: POST /api/vps/1f757fd5-98d1-490a-81a0-58b5798a5815/ssh-keys
      x-source: https://docs.helipod.io/docs/vps-api/ssh
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiVps1F757Fd598D1490A81A058B5798A5815SshKeysResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl https://api.helipod.io/api/vps/1f757fd5-98d1-490a-81a0-58b5798a5815/ssh-keys  -H \"Authorization: Bearer hel_your_key\"\
          \ \n The response is an array of key objects. fingerprint is null for a stored line that is not a valid public key. \n Add a key Copy\
          \ Anchor Link \n POST /vps/:id/ssh-keys Add one public key. Returns 201 . \n Prop Type publicKey string \n Copy Text curl -X POST https://api.helipod.io"
  /api/vps/1f757fd5-98d1-490a-81a0-58b5798a5815/start:
    post:
      operationId: post_api_vps_1f757fd5_98d1_490a_81a0_58b5798a5815_start
      tags:
      - Api
      summary: POST /api/vps/1f757fd5-98d1-490a-81a0-58b5798a5815/start
      x-source: https://docs.helipod.io/docs/vps-api/actions
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl JavaScript Copy Text curl -X POST https://api.helipod.io/api/vps/1f757fd5-98d1-490a-81a0-58b5798a5815/start  -H \"Authorization:\
          \ Bearer hel_your_key\" \n Copy Text { \n \"success\" : true , \n \"data\" : { \n \"id\" : \"1f757fd5-98d1-490a-81a0-58b5798a5815\"\
          \ , \n \"name\" : \"web-1\" , \n \"status\" : \"provisioning\" , \n \"lastJobType\" : \"vps:start\" , \n \"lastJobStatus\" : \"pending\"\
          \ \n } \n } \n waitForVps is the polling"
  /api/vps/1f757fd5-98d1-490a-81a0-58b5798a5815/stop:
    post:
      operationId: post_api_vps_1f757fd5_98d1_490a_81a0_58b5798a5815_stop
      tags:
      - Api
      summary: POST /api/vps/1f757fd5-98d1-490a-81a0-58b5798a5815/stop
      x-source: https://docs.helipod.io/docs/vps-api/actions
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl JavaScript Copy Text curl -X POST https://api.helipod.io/api/vps/1f757fd5-98d1-490a-81a0-58b5798a5815/stop  -H \"Authorization:\
          \ Bearer hel_your_key\" \n Copy Text { \n \"success\" : true , \n \"data\" : { \n \"id\" : \"1f757fd5-98d1-490a-81a0-58b5798a5815\"\
          \ , \n \"status\" : \"stopping\" , \n \"lastJobType\" : \"vps:stop\" , \n \"lastJobStatus\" : \"pending\" \n } \n } \n A stopped server\
          \ is still billed: the paid period ke"
  /api/vps/plans:
    get:
      operationId: get_api_vps_plans
      tags:
      - Api
      summary: GET /api/vps/plans
      x-source: https://docs.helipod.io/docs/vps-api/plans
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiVpsPlansResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl \"https://api.helipod.io/api/vps/plans\"  -H \"Authorization: Bearer hel_your_key\" \n Response Copy Anchor Link \n Copy\
          \ Text { \n \"success\" : true , \n \"data\" : [ \n { \n \"id\" : \"4db565ff-782f-46c8-9324-e4670517233f\" , \n \"name\" : \"VPS S -\
          \ Jakarta\" , \n \"slug\" : \"vps-s-jkt\" , \n \"description\" : \"2 vCPU, 2 GB RAM for small apps\" , \n \"cpuCores\" : 2 , \n \"ramMb\"\
          \ : 2048 , \n \"diskGb\" : 40 , \n \"bandwidthGb\" : 5"
  /migrate/…:
    post:
      operationId: post_migrate
      tags:
      - Migrate
      summary: POST /migrate/…
      x-source: https://docs.helipod.io/docs/vps-api/migrate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostMigrateRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -fsSL https://api.helipod.io/migrate/… | sudo bash . \n Run it as root on the old server . It works once and expires in\
          \ 1 hour . With sourceIp it only works from that IP. It uploads in the background, so the terminal can be closed. \n Follow the status\
          \ : waiting → uploading → inspecting → uploaded . While it uploads you can pause, resume or stop it. \n Check fetchedIp (who ran the\
          \ command), then"
security:
- bearer: []
components:
  schemas:
    PostApiBackupPlansRequest:
      type: object
      properties:
        planCode:
          type: string
        months:
          type: integer
        scheduleHour:
          type: integer
    PatchApiVpsRequest:
      type: object
      properties:
        name:
          type: string
    PostApiVpsRequest:
      type: object
      properties:
        planId:
          type: string
        projectId:
          type: string
        name:
          type: string
        osType:
          type: string
        osVersion:
          type: string
        rootPassword:
          type: string
        billingPeriod:
          type: string
    PostApiVpsResponse:
      type: object
      properties:
        success:
          type: boolean
        data:
          type: object
          properties:
            instance:
              type: object
              properties:
                id:
                  type: string
                projectId:
                  type: string
                planId:
                  type: string
                name:
                  type: string
                hostname:
                  type: string
                status:
                  type: string
                osType:
                  type: string
                osVersion:
                  type: string
                publicIp:
                  type: string
                cpuCores:
                  type: integer
                ramMb:
                  type: integer
                diskGb:
                  type: integer
                billingPeriod:
                  type: integer
                priceSnapshot:
                  type: string
                autoRenew:
                  type: boolean
                expiresAt:
                  type: string
                  format: date-time
                lastJobType:
                  type: string
                lastJobStatus:
                  type: string
                createdAt:
                  type: string
                  format: date-time
            password:
              type: string
    PostApiVps1F757Fd598D1490A81A058B5798A5815FirewallRequest:
      type: object
      properties:
        rules:
          type: array
          items:
            type: object
            properties:
              Protocol:
                type: string
              Port:
                type: string
              CidrBlock:
                type: string
              Action:
                type: string
              FirewallRuleDescription:
                type: string
    PostApiVps1F757Fd598D1490A81A058B5798A5815PortsRequest:
      type: object
      properties:
        port:
          type: integer
        protocol:
          type: string
        internalPort:
          type: integer
        description:
          type: string
    PostApiVps1F757Fd598D1490A81A058B5798A5815RenewalOptionsRequ:
      type: object
      properties:
        billingPeriod:
          type: string
    PostApiVps1F757Fd598D1490A81A058B5798A5815RestartRequest:
      type: object
      properties:
        osType:
          type: string
        osVersion:
          type: string
        rootPassword:
          type: string
    PostApiVps1F757Fd598D1490A81A058B5798A5815SnapshotsRequest:
      type: object
      properties:
        name:
          type: string
    PostApiVps1F757Fd598D1490A81A058B5798A5815SnapshotsResponse:
      type: object
      properties:
        success:
          type: boolean
        data:
          type: object
          properties:
            id:
              type: string
            instanceId:
              type: string
            name:
              type: string
            state:
              type: string
            percent:
              type: integer
            createdAt:
              type: string
              format: date-time
    PostApiVps1F757Fd598D1490A81A058B5798A5815SshKeysResponse:
      type: object
      properties:
        fingerprint:
          type: string
        deleted:
          type: boolean
        keys:
          type: array
          items: {}
    GetApiVpsPlansResponse:
      type: object
      properties:
        success:
          type: boolean
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              name:
                type: string
              slug:
                type: string
              description:
                type: string
              cpuCores:
                type: integer
              ramMb:
                type: integer
              diskGb:
                type: integer
              bandwidthGb:
                type: integer
              networkType:
                type: string
              type:
                type: string
              osTemplates:
                type: array
                items:
                  type: string
              features:
                type: array
                items:
                  type: string
              maxSnapshots:
                type: integer
              stock:
                type:
                - string
                - 'null'
              isPopular:
                type: boolean
              sortOrder:
                type: integer
              regionId:
                type: string
              priceMonthly:
                type: string
              priceHourly:
                type:
                - string
                - 'null'
              discount3month:
                type: integer
              discount6month:
                type: integer
              yearlyDiscount:
                type: integer
              effectiveMonthly:
                type: integer
              pricingSource:
                type: string
              pricingDiscountPercent:
                type: integer
              providerCode:
                type: integer
              region:
                type: object
                properties:
                  id:
                    type: string
                  name:
                    type: string
                  description:
                    type: string
                  code:
                    type: string
                  sortOrder:
                    type: integer
                  isActive:
                    type: boolean
    PostMigrateRequest:
      type: object
      properties:
        sourceIp:
          type: string
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
tags:
- name: Api
- name: Api Path
- name: Migrate