> ## Documentation Index
> Fetch the complete documentation index at: https://help.onetsolutions.net/llms.txt
> Use this file to discover all available pages before exploring further.

# [Instances] List eligible upgrade sizes for a compute instance

> Retrieve the list of instance sizes the current instance is eligible to upgrade to, based on the configured upgrade paths in the billing system. Returns an empty list when the current size is not mapped to a billing product.



## OpenAPI

````yaml https://api.onetsolutions.net/schema get /v1/organizations/{organization_id}/projects/{project_id}/compute/instances/{id}/eligible-sizes
openapi: 3.0.3
info:
  title: OnetSolutions API
  version: v1 (v1)
  description: >

    ## Overview


    The OnetSolutions API provides programmatic access to manage your cloud
    infrastructure, domains, and web hosting services.


    ## Authentication


    All API requests require authentication using one of the following methods:


    - **JWT Token**: Obtain a token via login endpoints and include it in the
    `Authorization: Bearer <token>` header

    - **API Key**: Generate an API key from your account settings and use it as
    `Authorization: Bearer sk-onetsolutions-...`


    ## Rate Limiting


    API requests are rate-limited to ensure fair usage:

    - **Standard**: 1000 requests per minute

    - **Burst**: 100 requests per second


    ## Pagination


    List endpoints return paginated results. Use `page` and `page_size` query
    parameters.


    ## Error Handling


    The API uses standard HTTP status codes:

    - `200` Success

    - `201` Created

    - `400` Bad Request

    - `401` Unauthorized

    - `403` Forbidden

    - `404` Not Found

    - `429` Too Many Requests
servers:
  - url: https://api.onetsolutions.net
    description: Production
security: []
tags:
  - name: Authentication
    description: >-
      Login, passwordless authentication, MFA, OAuth providers, and token
      management.
  - name: Organizations
    description: >-
      Organization management, members, roles, modules, audit logs, and
      notification settings.
  - name: Projects
    description: Project management, team members, and project-scoped resources.
  - name: Compute
    description: >-
      Cloud instances, volumes, snapshots, backups, VPCs, firewalls, SSH keys,
      uptime monitors, and instance tasks.
  - name: Domains
    description: >-
      Domain availability, registration, transfers, DNS zones, DNS records, and
      TLD information.
  - name: Web Hosting
    description: >-
      cPanel-based web hosting, emails, databases, subdomains, FTP accounts,
      addon domains, and SSL certificates.
paths:
  /v1/organizations/{organization_id}/projects/{project_id}/compute/instances/{id}/eligible-sizes:
    get:
      tags:
        - Compute
      summary: '[Instances] List eligible upgrade sizes for a compute instance'
      description: >-
        Retrieve the list of instance sizes the current instance is eligible to
        upgrade to, based on the configured upgrade paths in the billing system.
        Returns an empty list when the current size is not mapped to a billing
        product.
      operationId: list_eligible_instance_sizes
      parameters:
        - in: path
          name: id
          schema:
            type: string
            format: uuid
          description: A UUID string identifying this Instance.
          required: true
        - in: path
          name: organization_id
          schema:
            type: string
          description: Unique identifier of the organization that owns the resource.
          required: true
        - in: path
          name: project_id
          schema:
            type: string
          description: Unique identifier of the project containing the resource.
          required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedInstanceSizeList'
          description: Eligible sizes retrieved
        '401':
          description: Authentication credentials missing or invalid
        '403':
          description: Insufficient permissions to access this instance
        '404':
          description: Instance not found
        '503':
          description: Eligibility service temporarily unavailable
      security:
        - BearerAuth: []
components:
  schemas:
    PaginatedInstanceSizeList:
      type: object
      required:
        - count
        - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/InstanceSize'
    InstanceSize:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        name:
          type: string
          description: 'Ex: VPS-S, VPS-M, VPS-L'
          maxLength: 100
        slug:
          type: string
          description: 'Ex: vps-s, vps-m'
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        cpu_model:
          enum:
            - e5-2680-v4
            - epyc-7443
            - epyc-9554
          type: string
          x-spec-enum-id: e52bd36ae707aae4
          description: |-
            CPU model

            * `e5-2680-v4` - E5-2680 v4
            * `epyc-7443` - AMD EPYC 7443
            * `epyc-9554` - AMD EPYC 9554
        vcpu:
          type: integer
          maximum: 4294967295
          minimum: 0
          format: int64
          description: Number of vCPUs
        ram_mb:
          type: integer
          maximum: 4294967295
          minimum: 0
          format: int64
          description: RAM in MB
        bandwidth_mbps:
          type: integer
          maximum: 4294967295
          minimum: 0
          format: int64
          description: Bandwidth in Mb/s
        is_active:
          type: boolean
        description:
          type: string
        available_volumes:
          type: array
          items:
            $ref: '#/components/schemas/InstanceSizeVolume'
          readOnly: true
        pricing_options:
          type: array
          items:
            $ref: '#/components/schemas/InstanceSizePricing'
          readOnly: true
        available_addons:
          type: array
          items:
            $ref: '#/components/schemas/InstanceSizeAddon'
          readOnly: true
        created:
          type: string
          format: date-time
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
      required:
        - available_addons
        - available_volumes
        - bandwidth_mbps
        - created
        - id
        - modified
        - name
        - pricing_options
        - ram_mb
        - slug
        - vcpu
    InstanceSizeVolume:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        volume_type:
          enum:
            - ssd
            - nvme
          type: string
          description: |-
            * `ssd` - SSD
            * `nvme` - NVMe
          x-spec-enum-id: defa042735ff9392
        disk_gb:
          type: integer
          maximum: 4294967295
          minimum: 0
          format: int64
          description: Disk size in GB
        is_default:
          type: boolean
          description: Default volume option for this size
        is_active:
          type: boolean
      required:
        - disk_gb
        - id
        - volume_type
    InstanceSizePricing:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        billing_cycle:
          enum:
            - hourly
            - monthly
            - quarterly
            - semi_annually
            - annually
            - biennially
            - triennially
          type: string
          description: |-
            * `hourly` - Hourly
            * `monthly` - Monthly
            * `quarterly` - Quarterly
            * `semi_annually` - Semi-Annually
            * `annually` - Annually
            * `biennially` - Biennially
            * `triennially` - Triennially
          x-spec-enum-id: 39fc1593b115d859
        price:
          type: string
          pattern: ^-?\d{0,6}(?:\.\d{0,4})?$
        discount_percent:
          type: string
          pattern: ^-?\d{0,3}(?:\.\d{0,2})?$
          description: Discount percentage compared to monthly
        is_default:
          type: boolean
        is_active:
          type: boolean
      required:
        - billing_cycle
        - id
        - price
    InstanceSizeAddon:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        addon:
          allOf:
            - $ref: '#/components/schemas/Addon'
          readOnly: true
        pricing_options:
          type: array
          items:
            $ref: '#/components/schemas/InstanceSizeAddonPricing'
          readOnly: true
        is_included:
          type: boolean
          description: If true, addon is included in the base price
        is_default:
          type: boolean
          description: Pre-selected by default in cart
        is_active:
          type: boolean
      required:
        - addon
        - id
        - pricing_options
    Addon:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        slug:
          type: string
          maxLength: 50
          pattern: ^[-a-zA-Z0-9_]+$
        name:
          type: string
          description: Name in English (default)
          maxLength: 100
        name_fr:
          type: string
          description: Name in French
          maxLength: 100
        description:
          type: string
          description: Description in English (default)
        description_fr:
          type: string
          description: Description in French
        billing_type:
          enum:
            - recurring
            - one_time
          type: string
          description: |-
            * `recurring` - Recurring
            * `one_time` - One Time
          x-spec-enum-id: 62c1b9d6ecb52382
        is_active:
          type: boolean
      required:
        - id
        - name
        - slug
    InstanceSizeAddonPricing:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        billing_cycle:
          enum:
            - hourly
            - monthly
            - quarterly
            - semi_annually
            - annually
            - biennially
            - triennially
          type: string
          description: |-
            * `hourly` - Hourly
            * `monthly` - Monthly
            * `quarterly` - Quarterly
            * `semi_annually` - Semi-Annually
            * `annually` - Annually
            * `biennially` - Biennially
            * `triennially` - Triennially
          x-spec-enum-id: 39fc1593b115d859
        price:
          type: string
          pattern: ^-?\d{0,6}(?:\.\d{0,4})?$
        is_active:
          type: boolean
      required:
        - billing_cycle
        - id
        - price
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT or API Key
      description: >-
        Use `Authorization: Bearer <token>` header. Token can be a JWT token or
        an API key (format: `sk-onetsolutions-...`).

````