Skip to content

GET /api/v1/hosts/machines

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.

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

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.

NameLocationPresenceTypeDescription
cursorqueryOptionalstringOpaque pagination cursor from a previous response.
limitqueryOptionalinteger

Page of machine summaries.

application/json

FieldTypePresenceDescription
next_cursorstringRequired
itemsarray of objectRequired
{
"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"
]
}
}
}
}
}
}
}
}

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

FieldTypePresenceDescription
errorobjectRequired
{
"$ref": "#/components/schemas/ErrorEnvelope"
}

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.

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

Schema definitions · Download OpenAPI · Authentication · Errors and recovery

Official AmpleRun documentation · Contract v3 · Generated from the API contract · Revision 52fe29de · Open AmpleRun · View Markdown · For agents