GET /api/v1/offers/{id}
Operation: getOffer.
Get one offer (public)
Endpoint
Section titled “Endpoint”GET https://amplerun-api.spiry.org/api/v1/offers/{id}
Authentication
Section titled “Authentication”No default Bearer requirement is declared for this operation. Read its description for wallet signatures, host enrollment or other specialized proofs.
Parameters
Section titled “Parameters”| Name | Location | Presence | Type | Description |
|---|---|---|---|---|
id | path | Required | UUID |
Responses
Section titled “Responses”Offer summary.
application/json
| Field | Type | Presence | Description |
|---|---|---|---|
offer_id | UUID | Required | |
machine_id | UUID | Required | |
observed_at | Rfc3339Utc | Required | |
offer_version | DecimalString | Required | |
expected_version | DecimalString | Required | |
readiness | “ready” / “provisioning” / “unavailable” | Required | |
total_rate_micro_per_hour | MicroAmount | Required | |
included_quotas | object | Required | |
available_from | Rfc3339Utc | Required | |
available_until | Rfc3339Utc | Required | |
maintenance_windows | array of object | Required | |
gpu_count | integer | Optional | |
model | string | Optional | |
vram_bytes | DecimalString | Optional | |
region | string | Optional | |
country | string | Optional | Additive. ISO 3166-1 alpha-2 country of the machine, read by the controller from the agent’s request country as reported by the trusted proxy (never from host input). Absent when unknown. |
continent | Continent | Optional | |
ram_bytes | DecimalString | Optional | |
disk_bytes | DecimalString | Optional | |
measured_bandwidth_mbps | integer | Optional | netfacts lane. Measured DOWNLOAD rate in Mbps; additive. Absent = never measured (never 0). |
net_up_mbps | integer | Optional | netfacts lane. Measured UPLOAD rate in Mbps; rides the same measurement as measured_bandwidth_mbps. |
net_latency_ms | integer | Optional | netfacts lane. Median HTTPS latency in ms from the same measurement. |
speedtest_at | Rfc3339Utc | Optional | netfacts lane. When the current net facts were measured; renders ‘measured N ago’ honestly. |
tflops_bf16 | number | Optional | AI Speed. Measured dense BF16 matmul TFLOPS per GPU (the MIN across the machine’s GPUs); additive. Absent = never measured (never 0). |
tflops_total | number | Optional | AI Speed. tflops_bf16 x gpu_count, computed, one decimal. Absent with tflops_bf16 or gpu_count. |
mem_bw_gbps | number | Optional | AI Speed. Measured device memory bandwidth in GB/s per GPU (the MIN across the machine’s GPUs). Absent = never measured (never 0). |
ai_speed | integer | Optional | AI Speed. round(100sqrt((tflops_bf16/165.2)(mem_bw_gbps/1008))); RTX 4090 = 100. Absent unless both figures were measured. |
bench_at | Rfc3339Utc | Optional | AI Speed. When the current figures were measured. |
bench_flag | “unverified_spec” | Optional | AI Speed. The GPU has no datasheet row to check the figures against. |
disk_free_bytes | DecimalString | Optional | Additive. Free disk space in bytes from the machine’s latest telemetry sample. Absent when there is no sample, the sample is older than 60 seconds (2x the 30 s heartbeat, the host console STALE_AFTER_S rule) or the agent did not report it; never 0 as a stand-in. |
uptime_s | DecimalString | Optional | Additive. Seconds since the machine booted, from the latest telemetry sample. Absent under the same rules as disk_free_bytes. |
gpu_utilization_pct | number | Optional | Additive. Live GPU load, the PEAK across the machine’s devices, from the latest telemetry sample. Absent under the same rules as disk_free_bytes, and when no device reported utilisation. 0 means measured idle. |
telemetry_at | Rfc3339Utc | Optional | Additive. observed_at of the telemetry sample disk_free_bytes, uptime_s and gpu_utilization_pct came from. Present only with at least one of them; absent whenever they are. |
template_compatibility | array of string | Optional | |
manifest_hash | Sha256Hash | Optional | |
fit | TemplateFit | Optional | D-19(c). Present only when the request carried template_id; computed server-side from the template vram_fit against measured device VRAM. |
fits_template_ids | array of UUID | Optional | Additive. Present only when the request carried fits_for=all; the ids of every published template that fits this offer (the same rule as fit). |
platform_fee_bps | integer | Optional | Additive. Platform fee frozen into this offer version, in basis points (500 = 5%), taken out of each charge. |
verification_level | “unverified” / “auto_verified” / “manually_verified” | Optional | Additive. How the machine’s hardware claims were verified. |
admitted | boolean | Optional | Additive. Whether the machine has passed admission (a passed qualification for its current manifest). false is an unverified listing: shown in the catalog, never quoted or reserved (409 CONFLICT). |
tier | “container” / “inference” | Optional | Additive (D-23). container: SSH containers under the launch profile. inference: managed models on a signed, hash-pinned runtime with no renter code, reached over the host’s outbound session (community inference: don’t send sensitive data). |
backends | array of “cuda” / “rocm” / “sycl” / “vulkan” / “metal” | Optional | Additive. Backends the machine’s devices serve, in preference order (cuda > rocm > sycl > vulkan > metal). A template runs here with the first one it has a runtime for. |
reliability | object | Optional | Additive. Approximate reliability score from machine fields only (no per-job joins on the catalog path). |
availability_class | AvailabilityClass | Optional | |
preemption_notice_s | integer or null | Optional | D-22. Notice in seconds (SIGTERM plus /work/.amplerun-preempt) before the host stops an interruptible rental; null for dedicated. |
interruption_estimate | InterruptionEstimate or null | Optional | D-22. Present for interruptible offers (horizon 4 h in the catalog); null for dedicated. |
{ "$ref": "#/components/schemas/OfferSummary"}default
Section titled “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 |
{ "$ref": "#/components/schemas/ErrorEnvelope"}Static request outline
Section titled “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.
curl --request GET 'https://amplerun-api.spiry.org/api/v1/offers/{id}'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