---
title: "List service registrations"
method: GET
path: "/v1/vms/{id}/services"
tags: ["vm-services"]
---

# List service registrations

`GET /v1/vms/{id}/services`

Returns the services currently registered on this VM, sorted by
name. Each service is exposed at
`https://<name>--<vmIdHexNoHyphens>.proxy.<stack-domain>` over
HTTPS.

## Response `200`

Services

- Service[]
  - `name` string, required — Service name (1–29 chars). Embedded in the public URL as `<name>--<vmIdHexNoHyphens>.proxy.<stack-domain>`.
  - `port` integer, required — TCP port the service listens on inside the VM. Privileged ports (<1024) are rejected.
  - `h2c` boolean, required — When true, the proxy speaks HTTP/2 cleartext (h2c) to the backend. Required for gRPC and h2c-only apps. When false (default), the proxy uses HTTP/1.1 — covers HTTP/1.1 apps, Server-Sent Events, and WebSocket pass-through.

## Other responses

- `401` — Missing or invalid credentials
- `404` — Resource not found
- `500` — Internal server error

---

[API](https://skmtc.net/fastvm-org/apis/fastvm-api.md) · [All operations](https://skmtc.net/fastvm-org/apis/fastvm-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/fastvm-org/fastvm-api/revisions/480d9714a7a5/schema)
