# GET /api/v1/hosts/machines

List own machines (host owner/admin)

Operation: `listMachines`.

List own machines (host owner/admin)

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.

## Endpoint

`GET https://amplerun-api.spiry.org/api/v1/hosts/machines`

## Authentication

Use the credential and scope required by this operation. For programmatic renter/host calls: `Authorization: Bearer $AMPLERUN_API_KEY`. A host-agent signature or other specialized proof is required where the description specifies it.

## Parameters

| Name | Location | Presence | Type | Description |
| --- | --- | --- | --- | --- |
| `cursor` | query | Optional | string | Opaque pagination cursor from a previous response. |
| `limit` | query | Optional | integer |  |

## Responses

### `200`

Page of machine summaries.

`application/json`
| Field | Type | Presence | Description |
| --- | --- | --- | --- |
| `next_cursor` | string | Required |  |
| `items` | array of object | Required |  |

```json
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "items",
    "next_cursor"
  ],
  "properties": {
    "next_cursor": {
      "type": "string",
      "nullable": true
    },
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "machine_id",
          "state",
          "manifest_hash",
          "fence",
          "version",
          "last_healthy_at",
          "gpu_model",
          "gpu_count",
          "vram_bytes",
          "ram_bytes",
          "disk_bytes",
          "region",
          "current_offer"
        ],
        "properties": {
          "machine_id": {
            "$ref": "#/components/schemas/UUID"
          },
          "state": {
            "type": "string",
            "enum": [
              "UNQUALIFIED",
              "AVAILABLE",
              "ALLOCATED",
              "CLEANING",
              "DRAINING",
              "UNLISTED",
              "QUARANTINED"
            ]
          },
          "manifest_hash": {
            "type": "string"
          },
          "fence": {
            "$ref": "#/components/schemas/DecimalString"
          },
          "version": {
            "$ref": "#/components/schemas/DecimalString"
          },
          "last_healthy_at": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/Rfc3339Utc"
              },
              {
                "type": "null"
              }
            ]
          },
          "gpu_inventory": {
            "type": "array",
            "description": "Per-device discovery; not qualification. Shared-memory graphics remain distinct.",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "pci_address",
                "vendor",
                "model",
                "memory_bytes",
                "memory_class"
              ],
              "properties": {
                "pci_address": {
                  "type": "string"
                },
                "vendor": {
                  "type": "string"
                },
                "model": {
                  "type": "string",
                  "nullable": true
                },
                "memory_bytes": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/DecimalString"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "memory_class": {
                  "type": "string",
                  "enum": [
                    "dedicated",
                    "shared",
                    "unknown"
                  ]
                }
              }
            }
          },
          "gpu_model": {
            "type": "string",
            "nullable": true
          },
          "gpu_count": {
            "type": "integer",
            "minimum": 1,
            "nullable": true
          },
          "vram_bytes": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/DecimalString"
              },
              {
                "type": "null"
              }
            ]
          },
          "ram_bytes": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/DecimalString"
              },
              {
                "type": "null"
              }
            ]
          },
          "disk_bytes": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/DecimalString"
              },
              {
                "type": "null"
              }
            ]
          },
          "region": {
            "type": "string",
            "nullable": true
          },
          "current_offer": {
            "nullable": true,
            "type": "object",
            "additionalProperties": false,
            "required": [
              "offer_version",
              "rate_micro_per_hour",
              "state"
            ],
            "properties": {
              "offer_version": {
                "$ref": "#/components/schemas/DecimalString"
              },
              "rate_micro_per_hour": {
                "$ref": "#/components/schemas/MicroAmount"
              },
              "state": {
                "type": "string",
                "enum": [
                  "listed",
                  "unlisted",
                  "draining"
                ]
              }
            }
          }
        }
      }
    }
  }
}
```

### `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.

`application/json`
| Field | Type | Presence | Description |
| --- | --- | --- | --- |
| `error` | object | Required |  |

```json
{
  "$ref": "#/components/schemas/ErrorEnvelope"
}
```

## Static request outline

Replace path/query placeholders and provide the required JSON body, headers and credential from the sections above. This is a request outline, not a command that chooses an amount or starts a rental for you.

```sh
curl --request GET 'https://amplerun-api.spiry.org/api/v1/hosts/machines' \
  --header "Authorization: Bearer $AMPLERUN_API_KEY"
```

[Schema definitions](https://docs.amplerun.com/reference/schemas.md) · [Download OpenAPI](/openapi.json) · [Authentication](https://docs.amplerun.com/agents/authentication.md) · [Errors and recovery](https://docs.amplerun.com/reference/errors.md)

---
Generated from the AmpleRun API contract.
Canonical: https://docs.amplerun.com/reference/api/list-machines/
