---
title: "Lists all VMs in the project and returns their details."
method: GET
path: "/projects/{project_id}/compute/vms/instances"
tags: ["VMs"]
---

# Lists all VMs in the project and returns their details.

`GET /projects/{project_id}/compute/vms/instances`

## Path parameters

- `project_id` string, required

## Query parameters

- `ids` string
- `names` string
- `types` string
- `locations` string
- `states` string
- `nvlink_domain_ids` string
- `limit` string
- `sort` string
- `next_token` string
- `prev_token` string

## Response `200`

- ListInstancesResponseV1
  - `items` InstanceV1[], required
    - `billing_type` string — Billing type of the VM: On-demand, Spot, or PoC. values: On-demand, Spot, PoC
    - `commitment_end` string
    - `commitment_period` integer — commitment is no longer supported
    - `created_at` string, required — Creation timestamp of the VM, in RFC3339 format.
    - `disks` AttachedDiskV1[], required — Disks attached to the VM.
      - `attachment_type` string, required — How the disk is attached to the VM: os (boot disk) or data.
      - `block_size` integer, required — Block size of the disk, in bytes.
      - `created_at` string, required — Creation timestamp of the disk, in RFC3339 format.
      - `id` string, required — ID of the disk.
      - `location` string, required — Location of the disk.
      - `mode` string, required — Access mode the disk is attached with: read-write or read-only.
      - `name` string, required — Name of the disk.
      - `serial_number` string, required — Serial number of the disk.
      - `size` string, required — Size of the disk.
      - `type` string, required — Storage type of the disk.
      - `updated_at` string, required — Last update timestamp of the disk, in RFC3339 format.
    - `host_channel_adapters` HostChannelAdapter[], required — Host channel adapters attached to the VM.
      - `guid` string, required — Globally unique identifier (GUID) of the host channel adapter.
      - `ib_network_id` string, required
      - `ib_partition_id` string, required
      - `transport_network_id` string, required — ID of the transport network the host channel adapter is attached to.
      - `transport_partition_id` string, required — ID of the transport partition the host channel adapter is attached to.
      - `type` string, required — Transport type of the host channel adapter.
    - `id` string, required — ID of the VM.
    - `instance_group_id` string — ID of the instance group the VM belongs to, if any.
    - `instance_template_id` string — ID of the instance template the VM was created from, if any.
    - `location` string, required — Location the VM runs in.
    - `maintenance_policy` 'manual' | 'stop-vm' | 'unspecified', required — Host maintenance policy applied to the VM: manual, stop-vm, or unspecified.
    - `name` string, required — Name of the VM.
    - `network_interfaces` NetworkInterface[], required — Network interfaces attached to the VM.
      - `external_dns_name` string, required — External DNS name of the network interface.
      - `id` string, required — ID of the network interface.
      - `interface_type` string, required — Type of the network interface.
      - `ips` IPAddresses[], required — IP addresses assigned to the network interface.
        - `private_ipv4` PrivateIPv4Address, required
          - `address` string, required — Private IPv4 address.
        - `public_ipv4` PublicIPv4Address, required
          - `address` string, required — Public IPv4 address.
          - `id` string, required — ID of the public IPv4 address.
          - `type` string, required — Allocation type of the public IPv4 address (for example, dynamic).
      - `mac_address` string, required — MAC address of the network interface.
      - `name` string, required — Name of the network interface.
      - `network` string, required — ID of the VPC network the interface is attached to.
      - `subnet` string, required — ID of the VPC subnet the interface is attached to.
    - `nvlink_domain_id` string — ID of the NVLink domain the VM belongs to, if any.
    - `pod_id` string — ID of the pod the VM belongs to, if any.
    - `project_id` string, required — ID of the project that owns the VM.
    - `reservation_id` string — ID of the reservation the VM belongs to, if any.
    - `state` string, required — Current lifecycle state of the VM.
    - `type` string, required — Product name of the VM type.
    - `updated_at` string, required — Last update timestamp of the VM, in RFC3339 format.
    - `virtualization_features` VirtualizationFeatures
      - `nested_virtualization` boolean — Whether nested virtualization is enabled, allowing a VM to run inside this VM.
  - `next_page_token` string — Base64 encoded token representing the next page of instances. Empty if currently on the last page.
  - `prev_page_token` string — Base64 encoded token representing the previous page of instances. Empty if currently on the first page.

## Other responses

- `401` — Error Authentication Failed
- `500` — Error Internal Server

---

[API](https://skmtc.net/crusoecloud/apis/crusoe-cloud-api-gateway.md) · [All operations](https://skmtc.net/crusoecloud/apis/crusoe-cloud-api-gateway/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/crusoecloud/crusoe-cloud-api-gateway/versions/a3fd2dedc72b/schema)
