---
title: "List CVMs (paginated)"
method: GET
path: "/api/v1/cvms/paginated"
tags: ["CVMs"]
---

# List CVMs (paginated)

`GET /api/v1/cvms/paginated`

Returns paginated CVMs in current workspace with total count.

## Query parameters

- `user_id` union — Filter by owner (admin only). Use '0' for unassigned.
  - '0'
  - string, hashid — A hashed identifier that maps to an internal database ID
- `teepod_id` integer, nullable — Filter by node ID (admin only)
- `page` integer — Page number (1-indexed)
- `page_size` integer — Items per page (max 100)

## Response `200`

Paginated CVM list with total count

- union
  - PaginatedHostedCvms — Paginated response for CVM list endpoints
    - `items` HostedCvm[], required
      - `hosted` VmInfo, required — Mapping from Teepod RPC's VmInfo.
        - `id` string, required
        - `name` string, required
        - `status` string, required
        - `uptime` string, required
        - `app_url` string, nullable
        - `app_id` string, required
        - `instance_id` string, nullable
        - `configuration` VmConfiguration — Mapping from Teepod RPC's VmConfiguration.
          - `name` string, required
          - `image` string, required
          - `compose_file` AppComposeV2
            - `allowed_envs` string[]
            - `bash_script` string, nullable
            - `default_gateway_domain` string, nullable
            - `docker_compose_file` string, nullable
            - `init_script` string, nullable
            - `kms_enabled` boolean
            - `local_key_provider_enabled` boolean
            - `manifest_version` integer
            - `name` string, required
            - `no_instance_id` boolean
            - `pre_launch_script` string, nullable
            - `public_logs` boolean
            - `public_sysinfo` boolean
            - `public_tcbinfo` boolean
            - `runner` string
            - `gateway_enabled` boolean
            - `features` string[]
            - `salt` string, nullable
            - `secure_time` boolean
            - `storage_fs` union
              - …
            - `tproxy_enabled` boolean
          - `vcpu` integer, required
          - `memory` integer, required
          - `disk_size` integer, required
          - `ports` PortMapping[], nullable
            - `protocol` string, required
            - `host_port` integer, required
            - `vm_port` integer, required
            - `host_address` string, nullable
          - `encrypted_env` string, nullable
          - `app_id` string, nullable
          - `user_config` string, nullable
          - `hugepages` boolean
          - `pin_numa` boolean
          - `gpus` GpuConfig
            - `gpus` GpuSpec[], required
              - …
            - `attach_mode` union
              - …
          - `kms_urls` string[]
          - `gateway_urls` string[]
        - `exited_at` string, nullable
        - `boot_progress` string, nullable
        - `boot_error` string, nullable
        - `shutdown_progress` string, nullable
        - `image_version` string, nullable
        - `events` GuestEvent[]
          - `event` string, required
          - `body` string, required
          - `timestamp` integer
      - `name` string, required
      - `managed_user` ManagedUser
        - `id` integer, required
        - `username` string, required
      - `node` CvmNode
        - `id` integer, required
        - `name` string, required
        - `region_identifier` string, nullable
      - `listed` boolean
      - `status` string, required
      - `in_progress` boolean
      - `dapp_dashboard_url` string, nullable
      - `syslog_endpoint` string, nullable
      - `allow_upgrade` boolean
      - `project_id` string, hashid, nullable — A hashed identifier that maps to an internal database ID
      - `project_type` string, nullable
      - `billing_period` string, nullable
      - `kms_info` KMSInfo — KMS instance information.
        - `id` string, hashid, required — Hashed KMS identifier (kms_xxxxx)
        - `slug` string, nullable — Human-readable KMS name
        - `url` string, required — KMS endpoint URL
        - `version` string, required — KMS software version
        - `chain_id` integer, nullable — Blockchain chain ID if onchain
        - `kms_contract_address` string, nullable — Smart contract address if onchain
        - `gateway_app_id` string, nullable — Gateway application ID
      - `contract_address` string, nullable
      - `deployer_address` string, nullable
      - `vcpu` integer, nullable
      - `memory` integer, nullable
      - `disk_size` integer, nullable
      - `gateway_domain` string, nullable
      - `public_urls` CvmNetworkUrls[], required
        - `app` string, required
        - `instance` string, required
    - `total` integer, required
    - `page` integer, required
    - `page_size` integer, required
    - `pages` integer, required
  - PaginatedCvmInfos
    - `items` TeehouseApiRoutesCvmsV20260121SchemasCVMInfo[], required
      - `id` string, hashid, required — A hashed identifier that maps to an internal database ID
      - `name` string, required
      - `app_id` string, nullable
      - `vm_uuid` string, nullable
      - `instance_id` string, nullable
      - `resource` CVMResourceInfo, required
        - `instance_type` string, nullable
        - `vcpu` integer, nullable
        - `memory_in_gb` number, nullable
        - `disk_in_gb` integer, nullable
        - `gpus` integer, nullable
        - `compute_billing_price` string, decimal, nullable — A monetary value with precise decimal arithmetic
        - `billing_period` 'skip' | 'hourly' | 'monthly'
      - `node_info` NodeRef — Minimal node/teepod reference for embedding in responses.
        - `object_type` 'node' — Fixed value 'node'
        - `id` integer, nullable — Teepod numeric ID
        - `node_id` integer, nullable — Physical node numeric ID
        - `name` string, nullable — Node display name
        - `region` string, nullable — Region identifier
        - `device_id` string, nullable — Device ID
        - `ppid` string, nullable — PPID
        - `status` 'ONLINE' | 'OFFLINE' | 'MAINTENANCE'
        - `version` string, nullable — Teepod version
      - `os` CVMOSInfo
        - `name` string, nullable
        - `version` string, nullable
        - `is_dev` boolean, nullable
        - `os_image_hash` string, nullable
      - `kms_type` 'phala' | 'ethereum' | 'base' | 'legacy'
      - `kms_info` CVMKmsInfo
        - `chain_id` integer, nullable
        - `dstack_kms_address` string, nullable
        - `dstack_app_address` string, nullable
        - `deployer_address` string, nullable
        - `rpc_endpoint` string, nullable
        - `encrypted_env_pubkey` string, nullable
      - `status` string, required
      - `in_progress` boolean
      - `progress` CVMProgressInfo
        - `target` string, nullable
        - `started_at` string, date-time, nullable
        - `correlation_id` string, nullable
      - `compose_hash` string, nullable
      - `docker_compose_hash` string, nullable
      - `pre_launch_script_hash` string, nullable
      - `gateway` CVMGatewayInfo, required
        - `base_domain` string, nullable
        - `cname` string, nullable
      - `logs` CVMLogUrls
        - `serial` string, nullable
        - `stdout` string, nullable
        - `stderr` string, nullable
        - `container_log_base` string, nullable
      - `services` object[]
      - `endpoints` CvmNetworkUrls[], nullable
        - `app` string, required
        - `instance` string, required
      - `public_logs` boolean
      - `public_sysinfo` boolean
      - `public_tcbinfo` boolean
      - `gateway_enabled` boolean
      - `secure_time` boolean
      - `storage_fs` string
      - `workspace` WorkspaceRef — Minimal workspace reference for embedding in responses.
        - `object_type` 'workspace' — Fixed value 'workspace'
        - `id` string, hashid, required — Hashed workspace ID
        - `name` string, required — Workspace display name
        - `slug` string, nullable — URL-safe workspace identifier
        - `avatar_url` string, nullable — Workspace avatar URL from profile
      - `creator` UserRef — Minimal user reference for embedding in responses.
        - `object_type` 'user' — Fixed value 'user'
        - `id` string, hashid, nullable — A hashed identifier that maps to an internal database ID
        - `username` string, nullable — Display username
        - `avatar_url` string, nullable — Gravatar or OAuth provider avatar URL
      - `created_at` string, date-time, nullable
      - `deleted_at` string, date-time, nullable
      - `listed` boolean
      - `project_type` string, nullable
    - `total` integer, required
    - `page` integer, required
    - `page_size` integer, required
    - `pages` integer, required

## Other responses

- `401` — Authentication required
- `422` — Validation Error

---

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