---
title: "List own machines (host owner/admin)"
method: GET
path: "/api/v1/hosts/machines"
tags: ["hosts"]
---

# List own machines (host owner/admin)

`GET /api/v1/hosts/machines`

## Request

- Base URL: `https://amplerun-api.spiry.org`
- URL: `https://amplerun-api.spiry.org/api/v1/hosts/machines`
- Auth: HTTP bearer

Each row carries the machine's hardware specs and its current offer, so a console can render a fleet table without one detail fetch per machine. Specs are read from the same source the public catalog reads (`manifest->devices`). A spec nobody measured is `null` — never 0 and never an empty string; `ram_bytes`, `disk_bytes` and `region` are not measured anywhere today and are therefore null in practice. `current_offer` is null when the machine has no published offer version, which is a real state (a machine mid-onboarding), not a free listing.

## Query parameters

- `cursor` string
- `limit` integer

## Response `200`

Page of machine summaries.

- object
  - `next_cursor` string, nullable, required
  - `items` object[], required
    - `machine_id` string, uuid, required
    - `state` 'UNQUALIFIED' | 'AVAILABLE' | 'ALLOCATED' | 'CLEANING' | 'DRAINING' | 'UNLISTED' | 'QUARANTINED', required
    - `manifest_hash` string, required
    - `fence` string, required: Unsigned base-10 integer as string; never a float.
    - `version` string, required: Unsigned base-10 integer as string; never a float.
    - `last_healthy_at` string, date-time, required
    - `gpu_inventory` object[]: Per-device discovery; not qualification. Shared-memory graphics remain distinct.
      - `pci_address` string, required
      - `vendor` string, required
      - `model` string, nullable, required
      - `memory_bytes` string, required: Unsigned base-10 integer as string; never a float.
      - `memory_class` 'dedicated' | 'shared' | 'unknown', required
    - `gpu_model` string, nullable, required
    - `gpu_count` integer, nullable, required
    - `vram_bytes` string, required: Unsigned base-10 integer as string; never a float.
    - `ram_bytes` string, required: Unsigned base-10 integer as string; never a float.
    - `disk_bytes` string, required: Unsigned base-10 integer as string; never a float.
    - `region` string, nullable, required
    - `current_offer` object, nullable, required
      - `offer_version` string, required: Unsigned base-10 integer as string; never a float.
      - `rate_micro_per_hour` string, required: Unsigned base-10 integer as string; never a float.
      - `state` 'listed' | 'unlisted' | 'draining', required

## Other responses

- `default`: Error envelope. 401 unauthenticated, 403/404 forbidden, 409 conflict, 422 invalid input, 429 rate limited (code UNAVAILABLE, retryable:true, no Retry-After header), 503 unavailable money/provider state with retryable:true.

---

[API](https://skmtc.dev/amplerun/apis/amplerun-business-api.md) · [All operations](https://skmtc.dev/amplerun/apis/amplerun-business-api/llms.txt) · [OpenAPI document](https://skmtc.dev/amplerun/apis/amplerun-business-api/revisions/40944687fa52?raw)
