---
title: "List of available configurations for virtual machine creation"
method: GET
path: "/v1/vms-configs"
tags: ["Compute instances configurations"]
---

# List of available configurations for virtual machine creation

`GET /v1/vms-configs`

## Request

- Base URL: `https://api.emma.ms/external`
- URL: `https://api.emma.ms/external/v1/vms-configs`
- Auth: HTTP bearer

When creating virtual machines you need to provide the desired hardware configurations. These configurations include CPU, CPU type, RAM, volume size, and volume type. Different cloud providers offer various configurations in different data centers. Therefore, before creating any compute instance, you need to verify the available configurations.

Use this endpoint as a reference for available configurations for virtual machines. You can search the available configurations by different parameters (provider, location, data center, cloud network type, CPU, CPU type, RAM, volume size, volume type, and price).

When you find an appropriate configuration, provide the hardware parameters in the endpoint for creating or editing a virtual machine.

## Query parameters

- `acceleratorTypeId` string
- `acceleratorsMin` number
- `acceleratorsMax` number
- `cloudNetworkType` 'isolated' | 'multi-cloud'
- `dataCenterId` string
- `locationId` integer
- `priceMax` number
- `priceMin` number
- `providerId` integer
- `ramGb` integer
- `ramGbMax` integer
- `ramGbMin` integer
- `vCpu` integer
- `vCpuMax` integer
- `vCpuMin` integer
- `vCpuType` 'shared' | 'standard' | 'hpc'
- `volumeGb` integer
- `volumeGbMax` integer
- `volumeGbMin` integer
- `volumeType` 'ssd' | 'ssd-plus'
- `page` integer
- `size` integer
- `projectId` integer

## Response `200`

Successful operation

- object
  - `totalPages` integer: Total number of pages available
  - `totalElements` integer: Total number of elements across all pages
  - `size` integer: Number of elements per page
  - `content` VmConfiguration[]: List of elements on the current page
    - `id` string: Configuration ID
    - `providerId` integer: ID of the cloud provider
    - `providerName` string: Name of the cloud provider
    - `locationId` integer: Location ID
    - `locationName` string: Location name (city or state)
    - `dataCenterId` string: ID of the data center
    - `dataCenterName` string: Name of the data center
    - `osId` integer: ID of the operating system
    - `osType` string: Type of the operating system
    - `osVersion` string: Version of the operating system
    - `cloudNetworkTypes` string[]: List of the cloud network types
    - `vCpuType` string: Type of virtual Central Processing Units (vCPUs)
    - `vCpu` integer: Number of virtual Central Processing Units (vCPUs)
    - `ramGb` integer: Capacity of the RAM in gigabytes
    - `volumeGb` integer: Capacity of the volume in gigabytes
    - `volumeType` string: Volume type
    - `accelerator` object: GPU accelerator
      - `acceleratorTypeId` string: Accelerator type ID
      - `acceleratorType` string: GPU accelerator type
      - `accelerators` number: Quantity of GPU accelerators
      - `totalGpuMemoryGb` integer: Total GPU memory (GB)
    - `localDisks` object: Local SSD storage directly attached to the host. Data is ephemeral and will be lost when the VM is stopped or deleted.
      - `disks` integer: Number of local disks attached to the VM
      - `sizeTb` number: Size of a single disk in TB
      - `totalSizeTb` number: Total capacity (all disks combined), in TB
      - `type` string: Disk type
    - `cost` object: Cost of the configuration
      - `unit` string: Cost period
      - `currency` string: Currency of the cost
      - `pricePerUnit` number: Cost for the period
  - `number` integer: Current page number (0-based index)
  - `sort` SortObject: Sorting criteria for the elements
    - `empty` boolean: Indicates if the sorting criteria is empty
    - `unsorted` boolean: Indicates if the elements are unsorted
    - `sorted` boolean: Indicates if the elements are sorted
  - `last` boolean: Indicates if this is the last page
  - `first` boolean: Indicates if this is the first page
  - `numberOfElements` integer: Number of elements on the current page
  - `pageable` PageableObject: Pageable object containing pagination information
    - `offset` integer: Offset of the first element on the page
    - `sort` SortObject: Sorting criteria for the elements
      - `empty` boolean: Indicates if the sorting criteria is empty
      - `unsorted` boolean: Indicates if the elements are unsorted
      - `sorted` boolean: Indicates if the elements are sorted
    - `pageSize` integer: Number of elements per page
    - `pageNumber` integer: Current page number (0-based index)
    - `paged` boolean: Indicates if pagination is applied
    - `unpaged` boolean: Indicates if pagination is not applied
  - `empty` boolean: Indicates if the page is empty

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `403`: Forbidden - Access is denied
- `500`: Internal server error

---

[API](https://skmtc.dev/emma/apis/public-emma-api.md) - [All operations](https://skmtc.dev/emma/apis/public-emma-api/llms.txt) - [OpenAPI document](https://skmtc.dev/emma/apis/public-emma-api/revisions/9e55f0920078?raw)
