Skip to content

GET /api/v1/hosts/machines/{id}/telemetry

Operation: getMachineTelemetry.

Rolling telemetry history in 5-minute buckets (host owner/admin)

Min/avg/max per measured field per 5-minute bucket, for sparklines. Host owner only: a non-owner receives 404, never 403, so machine existence never leaks. History is retained for 48 h and pruned by the worker cleanup task; a window longer than the retention is refused rather than silently clamped. A field that was never measured in a bucket is absent, and a bucket’s samples count states how much evidence backs it.

GET https://amplerun-api.spiry.org/api/v1/hosts/machines/{id}/telemetry

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
idpathRequiredUUID
windowqueryOptionalstringLookback as <n>s|<n>m|<n>h (default 6h, at most the retention window).

Telemetry history buckets, oldest first.

application/json

FieldTypePresenceDescription
machine_idUUIDRequired
window_sintegerRequired
bucket_s300Required
retention_s172800Required
bucketsarray of objectRequired
{
"type": "object",
"additionalProperties": false,
"required": [
"machine_id",
"window_s",
"bucket_s",
"retention_s",
"buckets"
],
"properties": {
"machine_id": {
"$ref": "#/components/schemas/UUID"
},
"window_s": {
"type": "integer",
"minimum": 1
},
"bucket_s": {
"type": "integer",
"enum": [
300
]
},
"retention_s": {
"type": "integer",
"enum": [
172800
]
},
"buckets": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"bucket",
"samples",
"devices"
],
"properties": {
"bucket": {
"$ref": "#/components/schemas/Rfc3339Utc"
},
"samples": {
"type": "integer",
"minimum": 1
},
"devices": {
"type": "array",
"items": {
"type": "object",
"required": [
"pci_address"
],
"properties": {
"pci_address": {
"type": "string"
},
"temperature_c": {
"$ref": "#/components/schemas/TelemetryNumberSummary"
},
"utilization_pct": {
"$ref": "#/components/schemas/TelemetryNumberSummary"
},
"power_watts": {
"$ref": "#/components/schemas/TelemetryNumberSummary"
},
"fan_pct": {
"$ref": "#/components/schemas/TelemetryNumberSummary"
},
"memory_used_bytes": {
"$ref": "#/components/schemas/TelemetryAmountSummary"
},
"unified_memory_used_bytes": {
"$ref": "#/components/schemas/TelemetryAmountSummary"
}
}
}
},
"host": {
"type": "object",
"properties": {
"cpu_utilization_pct": {
"$ref": "#/components/schemas/TelemetryNumberSummary"
},
"load1": {
"$ref": "#/components/schemas/TelemetryNumberSummary"
},
"memory_used_bytes": {
"$ref": "#/components/schemas/TelemetryAmountSummary"
},
"disk_free_bytes": {
"$ref": "#/components/schemas/TelemetryAmountSummary"
},
"uptime_s": {
"$ref": "#/components/schemas/TelemetryAmountSummary"
}
}
}
}
}
}
}
}

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/{id}/telemetry' \
--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