API schema definitions
These definitions are generated without changing the contract. Required fields, enums and numeric-string formats come from the OpenAPI source. Download the complete specification.
{ "type": "string", "format": "uuid", "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$", "example": "3f0e2a55-8c1b-4d2e-9a6f-0b7c1d2e3f40"}Rfc3339Utc
Section titled “Rfc3339Utc”{ "type": "string", "format": "date-time", "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\\.[0-9]+)?Z$", "example": "2026-09-25T12:00:00Z"}DecimalString
Section titled “DecimalString”{ "type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "Unsigned base-10 integer as string; never a float.", "example": "1"}MicroAmount
Section titled “MicroAmount”{ "$ref": "#/components/schemas/DecimalString", "description": "Money in micro-units of the settlement asset as a base-10 integer string (\"5000000\" is 5 USDC). Never a float.", "example": "5000000"}EvmAddress
Section titled “EvmAddress”{ "type": "string", "pattern": "^0x[0-9a-fA-F]{40}$", "example": "0x1111111111111111111111111111111111111111"}Sha256Hash
Section titled “Sha256Hash”{ "type": "string", "pattern": "^sha256:[0-9a-f]{64}$", "example": "sha256:9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"}ImageDigest
Section titled “ImageDigest”{ "type": "string", "pattern": "^[^@\\s]+@sha256:[0-9a-f]{64}$", "example": "registry.amplerun.com/templates/pytorch-cuda@sha256:9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"}ErrorEnvelope
Section titled “ErrorEnvelope”{ "type": "object", "additionalProperties": false, "required": [ "error" ], "example": { "error": { "code": "QUOTE_EXPIRED", "message": "quote expired", "retryable": false, "request_id": "3f0e2a55-8c1b-4d2e-9a6f-0b7c1d2e3f40" } }, "properties": { "error": { "type": "object", "additionalProperties": false, "required": [ "code", "message", "retryable", "request_id" ], "properties": { "code": { "type": "string", "minLength": 1, "description": "Stable machine-readable code (packages/contracts ERROR_CODES). Business routes use UNAUTHENTICATED (401), FORBIDDEN (403: missing scope, step-up or role), NOT_FOUND (404, also used where existence must not leak), INVALID_INPUT (422), ADMISSION_PAUSED and AUTHORIZATION_INVALID (403), IDEMPOTENCY_CONFLICT, CONFLICT, VERSION_CONFLICT, STALE_VERSION, STALE_FENCE, QUOTE_EXPIRED, INSUFFICIENT_FUNDS and STOP_IRREVERSIBLE (409), and UNAVAILABLE (503, or 429 when rate limited). The host-agent protocol adds BUDGET_VERSION_OLDER, BUDGET_FUNDING_MISMATCH, LEASE_SEQ_REPLAY, COMMAND_EXPIRED, UNSUPPORTED_PROTOCOL_VERSION and UNKNOWN_COMMAND_KIND. New codes may appear; handle an unknown code by its HTTP status." }, "message": { "type": "string", "minLength": 1, "description": "Human-readable; never contains secrets or stack traces." }, "retryable": { "type": "boolean", "description": "True when the identical request may succeed later: back off and retry with the same Idempotency-Key." }, "request_id": { "$ref": "#/components/schemas/UUID" } } } }}CursorPage
Section titled “CursorPage”{ "type": "object", "additionalProperties": false, "required": [ "items", "next_cursor" ], "properties": { "items": { "type": "array", "items": { "type": "object" } }, "next_cursor": { "anyOf": [ { "type": "string" }, { "type": "null" } ] } }}SettingView
Section titled “SettingView”{ "type": "object", "additionalProperties": false, "required": [ "key", "category", "label", "help", "secret", "editable", "pinned_reason", "value", "source", "version", "updated_at", "updated_by", "env" ], "description": "One row of the D-20 settings registry, or a pinned root-of-trust key. When `secret` is true, `value` is always `{set: boolean}` — the wire never carries a secret or a root-of-trust value.", "properties": { "key": { "type": "string" }, "category": { "type": "string", "enum": [ "branding", "contact", "money", "mail", "alerts", "auth-providers", "chain-access", "operations" ] }, "label": { "type": "string" }, "help": { "type": "string" }, "secret": { "type": "boolean" }, "editable": { "type": "boolean", "description": "False for a root-of-trust key — refused at the API, read-only in the UI." }, "pinned_reason": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "value": {}, "source": { "type": "string", "enum": [ "database", "environment", "default" ] }, "version": { "type": "integer" }, "updated_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ] }, "updated_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "env": { "type": "string" } }}AvailabilityClass
Section titled “AvailabilityClass”{ "type": "string", "enum": [ "dedicated", "interruptible" ], "description": "D-22. dedicated (the default) is never preempted. interruptible is sold only from idle or co-listed hosts: the host may take the machine back after preemption_notice_s seconds of notice, and billing stops at the notice."}InterruptionEstimate
Section titled “InterruptionEstimate”{ "type": "object", "additionalProperties": false, "required": [ "runs", "uninterrupted", "horizon_h", "computed_at", "summary" ], "description": "D-22, interruptible offers only. Plain observed counts, never a prediction. A run is one continuous period in which the host reported the machine offerable (from heartbeats); it counts when it ended, or has already lasted horizon_h. uninterrupted is null below the sample gate (20 runs): not enough history.", "properties": { "runs": { "type": "integer", "minimum": 0, "description": "Most recent decided runs counted (at most 40)." }, "uninterrupted": { "anyOf": [ { "type": "integer", "minimum": 0 }, { "type": "null" } ], "description": "Of those runs, how many lasted horizon_h without interruption; null below the sample gate." }, "horizon_h": { "type": "integer", "minimum": 1 }, "computed_at": { "$ref": "#/components/schemas/Rfc3339Utc" }, "summary": { "type": "string", "description": "The counts in words, e.g. \"34 of the last 40 runs lasted 4 h without interruption\" or \"Not enough history (12 runs so far)\"." } }}OfferSummary
Section titled “OfferSummary”{ "type": "object", "additionalProperties": false, "required": [ "offer_id", "machine_id", "observed_at", "offer_version", "readiness", "total_rate_micro_per_hour", "included_quotas", "available_from", "available_until", "maintenance_windows", "expected_version" ], "properties": { "offer_id": { "$ref": "#/components/schemas/UUID" }, "machine_id": { "$ref": "#/components/schemas/UUID" }, "observed_at": { "$ref": "#/components/schemas/Rfc3339Utc" }, "offer_version": { "$ref": "#/components/schemas/DecimalString" }, "expected_version": { "$ref": "#/components/schemas/DecimalString" }, "readiness": { "enum": [ "ready", "provisioning", "unavailable" ] }, "total_rate_micro_per_hour": { "$ref": "#/components/schemas/MicroAmount" }, "included_quotas": { "type": "object", "additionalProperties": false, "required": [ "included_disk_gib", "included_egress_gib" ], "properties": { "included_disk_gib": { "type": "integer", "minimum": 0 }, "included_egress_gib": { "type": "integer", "minimum": 0 } } }, "available_from": { "$ref": "#/components/schemas/Rfc3339Utc" }, "available_until": { "$ref": "#/components/schemas/Rfc3339Utc" }, "maintenance_windows": { "type": "array", "items": { "type": "object", "additionalProperties": false, "required": [ "starts_at", "ends_at", "reason" ], "properties": { "starts_at": { "$ref": "#/components/schemas/Rfc3339Utc" }, "ends_at": { "$ref": "#/components/schemas/Rfc3339Utc" }, "reason": { "type": "string" } } } }, "gpu_count": { "type": "integer", "minimum": 1 }, "model": { "type": "string" }, "vram_bytes": { "$ref": "#/components/schemas/DecimalString" }, "region": { "type": "string" }, "country": { "type": "string", "pattern": "^[A-Z]{2}$", "description": "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": { "$ref": "#/components/schemas/Continent" }, "ram_bytes": { "$ref": "#/components/schemas/DecimalString" }, "disk_bytes": { "$ref": "#/components/schemas/DecimalString" }, "measured_bandwidth_mbps": { "type": "integer", "minimum": 0, "description": "netfacts lane. Measured DOWNLOAD rate in Mbps; additive. Absent = never measured (never 0)." }, "net_up_mbps": { "type": "integer", "minimum": 0, "description": "netfacts lane. Measured UPLOAD rate in Mbps; rides the same measurement as measured_bandwidth_mbps." }, "net_latency_ms": { "type": "integer", "minimum": 0, "description": "netfacts lane. Median HTTPS latency in ms from the same measurement." }, "speedtest_at": { "$ref": "#/components/schemas/Rfc3339Utc", "description": "netfacts lane. When the current net facts were measured; renders 'measured N ago' honestly." }, "tflops_bf16": { "type": "number", "exclusiveMinimum": 0, "description": "AI Speed. Measured dense BF16 matmul TFLOPS per GPU (the MIN across the machine's GPUs); additive. Absent = never measured (never 0)." }, "tflops_total": { "type": "number", "exclusiveMinimum": 0, "description": "AI Speed. tflops_bf16 x gpu_count, computed, one decimal. Absent with tflops_bf16 or gpu_count." }, "mem_bw_gbps": { "type": "number", "exclusiveMinimum": 0, "description": "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": { "type": "integer", "minimum": 1, "description": "AI Speed. round(100*sqrt((tflops_bf16/165.2)*(mem_bw_gbps/1008))); RTX 4090 = 100. Absent unless both figures were measured." }, "bench_at": { "$ref": "#/components/schemas/Rfc3339Utc", "description": "AI Speed. When the current figures were measured." }, "bench_flag": { "type": "string", "enum": [ "unverified_spec" ], "description": "AI Speed. The GPU has no datasheet row to check the figures against." }, "disk_free_bytes": { "$ref": "#/components/schemas/DecimalString", "description": "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": { "$ref": "#/components/schemas/DecimalString", "description": "Additive. Seconds since the machine booted, from the latest telemetry sample. Absent under the same rules as disk_free_bytes." }, "gpu_utilization_pct": { "type": "number", "minimum": 0, "maximum": 100, "description": "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": { "$ref": "#/components/schemas/Rfc3339Utc", "description": "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": { "type": "array", "items": { "type": "string" } }, "manifest_hash": { "$ref": "#/components/schemas/Sha256Hash" }, "fit": { "$ref": "#/components/schemas/TemplateFit", "description": "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": { "type": "array", "items": { "$ref": "#/components/schemas/UUID" }, "description": "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": { "type": "integer", "minimum": 0, "description": "Additive. Platform fee frozen into this offer version, in basis points (500 = 5%), taken out of each charge." }, "verification_level": { "enum": [ "unverified", "auto_verified", "manually_verified" ], "description": "Additive. How the machine's hardware claims were verified." }, "admitted": { "type": "boolean", "description": "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": { "enum": [ "container", "inference" ], "description": "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": { "description": "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.", "type": "array", "items": { "enum": [ "cuda", "rocm", "sycl", "vulkan", "metal" ] } }, "reliability": { "description": "Additive. Approximate reliability score from machine fields only (no per-job joins on the catalog path).", "type": "object", "additionalProperties": false, "required": [ "score", "stars", "band", "approximate" ], "properties": { "score": { "type": "number", "minimum": 0, "maximum": 100 }, "stars": { "type": "string" }, "band": { "type": "string" }, "approximate": { "type": "boolean" } } }, "availability_class": { "$ref": "#/components/schemas/AvailabilityClass" }, "preemption_notice_s": { "anyOf": [ { "type": "integer", "minimum": 0, "maximum": 3600 }, { "type": "null" } ], "description": "D-22. Notice in seconds (SIGTERM plus /work/.amplerun-preempt) before the host stops an interruptible rental; null for dedicated." }, "interruption_estimate": { "description": "D-22. Present for interruptible offers (horizon 4 h in the catalog); null for dedicated.", "anyOf": [ { "$ref": "#/components/schemas/InterruptionEstimate" }, { "type": "null" } ] } }, "description": "No host management address is ever exposed. gpu_count, model and vram_bytes come from the machine manifest; vram_bytes is per GPU and is absent when the GPUs differ or memory was not measured. region, ram_bytes and disk_bytes are absent when the host did not measure them, never 0.", "example": { "offer_id": "8b0c2f4e-1d3a-4c5b-9e6f-7a8b9c0d1e2f", "machine_id": "5d6e7f80-9a1b-4c2d-8e3f-4a5b6c7d8e9f", "observed_at": "2026-09-25T12:00:00Z", "offer_version": "3", "expected_version": "12", "readiness": "ready", "total_rate_micro_per_hour": "450000", "platform_fee_bps": 500, "included_quotas": { "included_disk_gib": 100, "included_egress_gib": 50 }, "available_from": "2026-09-25T00:00:00Z", "available_until": "2026-10-25T00:00:00Z", "maintenance_windows": [], "gpu_count": 1, "model": "NVIDIA GeForce RTX 4090", "vram_bytes": "25757220864", "region": "us-east-1", "manifest_hash": "sha256:9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08", "verification_level": "auto_verified", "admitted": true, "fit": { "fits": true, "reason": "ok" } }}Continent
Section titled “Continent”{ "description": "Additive. Continent derived from country: AF Africa, AN Antarctica, AS Asia, EU Europe, NA North America, OC Oceania, SA South America. Absent when the country is unknown.", "enum": [ "AF", "AN", "AS", "EU", "NA", "OC", "SA" ]}ContinentFilter
Section titled “ContinentFilter”{ "description": "A continent code, case-insensitive, or americas (North and South America).", "enum": [ "af", "an", "as", "eu", "na", "oc", "sa", "americas", "AF", "AN", "AS", "EU", "NA", "OC", "SA" ]}{ "type": "object", "additionalProperties": false, "required": [ "quote_id", "expires_at", "machine_id", "gpu_count", "machine_rate_micro_per_hour", "platform_fee_bps", "budget_micro", "duration_limit_s", "manifest_hash", "image_digest", "terms_version", "meter_start" ], "properties": { "quote_id": { "$ref": "#/components/schemas/UUID" }, "expires_at": { "$ref": "#/components/schemas/Rfc3339Utc", "description": "Quotes expire after 60 seconds." }, "machine_id": { "$ref": "#/components/schemas/UUID" }, "gpu_count": { "type": "integer", "minimum": 1 }, "machine_rate_micro_per_hour": { "$ref": "#/components/schemas/MicroAmount" }, "platform_fee_bps": { "type": "integer", "minimum": 0 }, "budget_micro": { "$ref": "#/components/schemas/MicroAmount" }, "duration_limit_s": { "type": "integer", "minimum": 1 }, "included_disk_gib": { "type": "integer", "minimum": 0 }, "included_egress_gib": { "type": "integer", "minimum": 0 }, "manifest_hash": { "$ref": "#/components/schemas/Sha256Hash" }, "image_digest": { "$ref": "#/components/schemas/ImageDigest" }, "terms_version": { "type": "string" }, "meter_start": { "const": "verified_ready" }, "template_id": { "$ref": "#/components/schemas/UUID", "description": "D-19(c): echoed when the quote was created for a template." }, "image_ref": { "type": "string", "description": "Echoed when the request named a custom image by image_ref; image_digest is what it was pinned to." }, "estimated_total_micro": { "$ref": "#/components/schemas/MicroAmount", "description": "D-19(c): floor(total_rate_micro_per_hour * duration_limit_s / 3600), fee included; informational — the quote's budget_micro remains the only price authority." }, "asset": { "enum": [ "USDC", "USDT" ], "description": "Additive. Settlement asset whose balance the reservation holds; USDC unless the request chose USDT." }, "availability_class": { "$ref": "#/components/schemas/AvailabilityClass" }, "preemption_notice_s": { "anyOf": [ { "type": "integer", "minimum": 0, "maximum": 3600 }, { "type": "null" } ], "description": "D-22. Notice in seconds before an interruptible rental is stopped; null for dedicated." }, "interruption_estimate": { "description": "D-22. For an interruptible quote, computed with horizon_h = the quoted duration rounded up to whole hours; null for dedicated.", "anyOf": [ { "$ref": "#/components/schemas/InterruptionEstimate" }, { "type": "null" } ] } }, "example": { "quote_id": "0c1d2e3f-4a5b-4c6d-8e7f-8091a2b3c4d5", "expires_at": "2026-09-25T12:01:00Z", "machine_id": "5d6e7f80-9a1b-4c2d-8e3f-4a5b6c7d8e9f", "gpu_count": 1, "machine_rate_micro_per_hour": "450000", "platform_fee_bps": 500, "budget_micro": "1000000", "duration_limit_s": 7200, "included_disk_gib": 100, "included_egress_gib": 50, "manifest_hash": "sha256:9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08", "image_digest": "registry.amplerun.com/templates/pytorch-cuda@sha256:9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08", "terms_version": "rental-v1", "meter_start": "verified_ready", "template_id": "a35d15fe-ab57-4283-87f8-a00528d1d631", "estimated_total_micro": "900000", "asset": "USDC" }}{ "type": "object", "additionalProperties": false, "required": [ "job_id", "state", "cumulative_charge_micro", "funded_through", "budget_version" ], "properties": { "job_id": { "$ref": "#/components/schemas/UUID" }, "state": { "enum": [ "RESERVED", "STARTING", "RUNNING", "STOPPING", "STOPPED", "CLEANING", "CLOSED", "FAILED", "RECONCILING" ] }, "cumulative_charge_micro": { "$ref": "#/components/schemas/MicroAmount" }, "funded_through": { "$ref": "#/components/schemas/Rfc3339Utc" }, "budget_version": { "$ref": "#/components/schemas/DecimalString" }, "machine_id": { "$ref": "#/components/schemas/UUID" }, "fence": { "$ref": "#/components/schemas/DecimalString" }, "rate_micro_per_hour": { "description": "Additive. The rate agreed at reservation, read from the job's quote snapshot (quotes.machine_rate_micro_per_hour). Evidence only: never recomputed from current offers, never an input to billing or state.", "allOf": [ { "$ref": "#/components/schemas/MicroAmount" } ] }, "accepted_runtime_ms": { "description": "Additive. Control-owned accepted-runtime accumulator; 0 before any accepted receipt.", "allOf": [ { "$ref": "#/components/schemas/DecimalString" } ] }, "meter_started_at": { "description": "Additive. When the meter actually started (verified READY), not when the job was reserved. null means \"not yet measured\" — distinct from zero.", "oneOf": [ { "$ref": "#/components/schemas/Rfc3339Utc" }, { "type": "null" } ] }, "last_meter_receipt_at": { "description": "Additive. Observation time (wall_time) of the most recent ACCEPTED meter receipt. null when no receipt has been accepted yet — a RUNNING job with meter_started_at set may still have this null.", "oneOf": [ { "$ref": "#/components/schemas/Rfc3339Utc" }, { "type": "null" } ] }, "stopped_at": { "description": "Additive. When the machine confirmed the stop (jobs.stopped_at). Set once the job reaches STOPPED; null before, and null when no stop was confirmed. Display only.", "oneOf": [ { "$ref": "#/components/schemas/Rfc3339Utc" }, { "type": "null" } ] }, "tier": { "description": "Additive (D-23). The machine's tier; inference is community inference (don't send sensitive data).", "enum": [ "container", "inference" ] }, "gpu_model": { "description": "Additive. The GPU model the machine's agent reported (its manifest), for naming the deployment (\"Qwen3 8B · RTX 4090\"). Absent when the agent reported none. Display only, never billing input.", "type": "string", "minLength": 1 }, "gpu_count": { "description": "Additive. How many of `gpu_model` the machine has, from the same manifest. Absent with gpu_model.", "type": "integer", "minimum": 1 }, "template": { "description": "Additive. Present only when the job's quote named a template (quotes.template_id); summary of templates.spec.", "type": "object", "additionalProperties": false, "required": [ "template_id", "name", "kind" ], "properties": { "template_id": { "type": "string", "pattern": "^[a-z0-9][a-z0-9-]{0,63}$" }, "name": { "type": "string", "minLength": 1 }, "kind": { "enum": [ "model", "classical", "custom" ] } } } }, "example": { "job_id": "7e8f9a0b-1c2d-4e3f-9a4b-5c6d7e8f9a0b", "state": "RUNNING", "cumulative_charge_micro": "112500", "funded_through": "2026-09-25T14:00:00Z", "budget_version": "1", "machine_id": "5d6e7f80-9a1b-4c2d-8e3f-4a5b6c7d8e9f", "fence": "4", "rate_micro_per_hour": "450000", "accepted_runtime_ms": "900000", "meter_started_at": "2026-09-25T12:02:10Z", "last_meter_receipt_at": "2026-09-25T12:17:10Z", "template": { "template_id": "pytorch-cuda", "name": "PyTorch (CUDA)", "kind": "classical" } }}JobEvent
Section titled “JobEvent”{ "type": "object", "additionalProperties": false, "required": [ "seq", "type", "at" ], "properties": { "seq": { "$ref": "#/components/schemas/DecimalString" }, "type": { "type": "string" }, "at": { "$ref": "#/components/schemas/Rfc3339Utc" }, "detail": { "type": "object" } }}DepositAddress
Section titled “DepositAddress”{ "type": "object", "additionalProperties": false, "required": [ "chain_id", "network", "address", "assets", "min_deposit_micro", "max_deposit_micro", "finalized_block_number", "networks", "deposits" ], "properties": { "chain_id": { "type": "integer", "enum": [ 8453 ] }, "network": { "type": "string", "enum": [ "base" ] }, "address": { "$ref": "#/components/schemas/EvmAddress" }, "networks": { "description": "Every network this address is watched on right now (Base first). The address is the same on each. Stablecoins credit 1:1; the native coin credits in USD at the Chainlink price at finality minus spread_bps.", "type": "array", "items": { "type": "object", "additionalProperties": false, "required": [ "key", "chain_id", "caip2", "name", "native_symbol", "explorer_url", "assets", "native", "status", "finalized_block_number" ], "properties": { "key": { "type": "string", "enum": [ "base", "arbitrum", "ethereum", "optimism", "polygon", "bnb", "avalanche", "sei", "xlayer", "robinhood", "arc" ] }, "chain_id": { "type": "integer" }, "caip2": { "type": "string", "pattern": "^eip155:[0-9]+$" }, "name": { "type": "string" }, "native_symbol": { "type": "string" }, "explorer_url": { "type": "string", "format": "uri" }, "assets": { "type": "array", "items": { "type": "object", "additionalProperties": false, "required": [ "asset", "contract" ], "properties": { "asset": { "type": "string", "enum": [ "USDC", "USDT" ] }, "contract": { "$ref": "#/components/schemas/EvmAddress" } } } }, "native": { "description": "null when the native coin is not credited on this network.", "anyOf": [ { "type": "object", "additionalProperties": false, "required": [ "symbol", "spread_bps", "quote_micro_per_coin", "price_updated_at" ], "properties": { "symbol": { "type": "string" }, "spread_bps": { "type": "integer", "minimum": 0, "maximum": 1000 }, "quote_micro_per_coin": { "description": "Live quote for one whole coin after the spread (display only; the credit uses the price at finality).", "anyOf": [ { "$ref": "#/components/schemas/MicroAmount" }, { "type": "null" } ] }, "price_updated_at": { "anyOf": [ { "$ref": "#/components/schemas/Rfc3339Utc" }, { "type": "null" } ] } } }, { "type": "null" } ] }, "status": { "type": "string", "enum": [ "OK", "UNAVAILABLE" ] }, "finalized_block_number": { "anyOf": [ { "$ref": "#/components/schemas/DecimalString" }, { "type": "null" } ] }, "wallet_add_chain": { "description": "EIP-3085 wallet_addEthereumChain parameters (public RPC and explorer), for a wallet that doesn't know this network yet. Read-only; null when no public RPC is known. Absent from older servers.", "anyOf": [ { "type": "object", "additionalProperties": false, "required": [ "chainId", "chainName", "nativeCurrency", "rpcUrls", "blockExplorerUrls" ], "properties": { "chainId": { "type": "string", "pattern": "^0x[0-9a-f]+$" }, "chainName": { "type": "string" }, "nativeCurrency": { "type": "object", "additionalProperties": false, "required": [ "name", "symbol", "decimals" ], "properties": { "name": { "type": "string" }, "symbol": { "type": "string" }, "decimals": { "type": "integer", "minimum": 0 } } }, "rpcUrls": { "type": "array", "minItems": 1, "items": { "type": "string", "format": "uri" } }, "blockExplorerUrls": { "type": "array", "items": { "type": "string", "format": "uri" } } } }, { "type": "null" } ] } } } }, "assets": { "type": "array", "items": { "type": "object", "additionalProperties": false, "required": [ "asset", "contract" ], "properties": { "asset": { "type": "string", "enum": [ "USDC", "USDT" ] }, "contract": { "$ref": "#/components/schemas/EvmAddress" } } } }, "min_deposit_micro": { "$ref": "#/components/schemas/MicroAmount" }, "max_deposit_micro": { "description": "Room left under the account balance cap; null = no limit.", "anyOf": [ { "$ref": "#/components/schemas/MicroAmount" }, { "type": "null" } ] }, "finalized_block_number": { "anyOf": [ { "$ref": "#/components/schemas/DecimalString" }, { "type": "null" } ] }, "deposits": { "type": "array", "maxItems": 10, "items": { "type": "object", "additionalProperties": false, "required": [ "chain_id", "network", "tx_hash", "log_index", "asset", "amount_micro", "amount_wei", "block_number", "state", "blocks_to_finality", "reason", "created_at" ], "properties": { "chain_id": { "type": "integer" }, "network": { "type": "string" }, "tx_hash": { "description": "null for a native-coin credit (credited from the address balance at finality, not per transaction).", "anyOf": [ { "type": "string", "pattern": "^0x[0-9a-f]{64}$" }, { "type": "null" } ] }, "log_index": { "anyOf": [ { "type": "integer", "minimum": 0 }, { "type": "null" } ] }, "asset": { "type": "string", "enum": [ "USDC", "USDT", "ETH", "POL", "BNB", "AVAX" ] }, "amount_micro": { "$ref": "#/components/schemas/MicroAmount" }, "amount_wei": { "description": "Native coins only, in the coin's base unit.", "anyOf": [ { "$ref": "#/components/schemas/DecimalString" }, { "type": "null" } ] }, "block_number": { "anyOf": [ { "$ref": "#/components/schemas/DecimalString" }, { "type": "null" } ] }, "state": { "type": "string", "enum": [ "SEEN", "CREDITED", "HELD" ] }, "blocks_to_finality": { "anyOf": [ { "$ref": "#/components/schemas/DecimalString" }, { "type": "null" } ] }, "reason": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "created_at": { "anyOf": [ { "$ref": "#/components/schemas/Rfc3339Utc" }, { "type": "null" } ] } } } } }}BalanceSet
Section titled “BalanceSet”{ "type": "object", "additionalProperties": false, "required": [ "spendable_micro", "held_micro", "pending_micro", "disputed_micro", "withdrawable_micro", "spend_30d_micro", "spend_window_from", "spend_window_to", "active_hold_micro" ], "properties": { "spendable_micro": { "$ref": "#/components/schemas/MicroAmount" }, "held_micro": { "$ref": "#/components/schemas/MicroAmount" }, "pending_micro": { "$ref": "#/components/schemas/MicroAmount" }, "disputed_micro": { "$ref": "#/components/schemas/MicroAmount" }, "withdrawable_micro": { "$ref": "#/components/schemas/MicroAmount" }, "spend_30d_micro": { "type": "string", "pattern": "^-?(0|[1-9][0-9]*)$" }, "spend_window_from": { "$ref": "#/components/schemas/Rfc3339Utc" }, "spend_window_to": { "$ref": "#/components/schemas/Rfc3339Utc" }, "active_hold_micro": { "$ref": "#/components/schemas/MicroAmount" }, "confirming_micro": { "description": "Stablecoin deposits credited before chain finality. Already in spendable_micro (usable for rentals), not yet in withdrawable_micro; they become withdrawable once final, or are reversed if the chain drops them.", "$ref": "#/components/schemas/MicroAmount" }, "confirming_ready_at": { "description": "When the last confirming deposit should be final (the chain's typical finality lag); null when none is confirming. An estimate, not a promise.", "anyOf": [ { "$ref": "#/components/schemas/Rfc3339Utc" }, { "type": "null" } ] } }, "example": { "spendable_micro": "4000000", "held_micro": "1000000", "pending_micro": "0", "disputed_micro": "0", "withdrawable_micro": "4000000", "spend_30d_micro": "2500000", "spend_window_from": "2026-08-26T00:00:00Z", "spend_window_to": "2026-09-25T00:00:00Z", "active_hold_micro": "1000000" }}WalletBinding
Section titled “WalletBinding”{ "type": "object", "additionalProperties": false, "required": [ "binding_id", "chain_id", "address", "version", "linked_at", "unlinked_at" ], "properties": { "binding_id": { "$ref": "#/components/schemas/UUID" }, "chain_id": { "const": 8453 }, "address": { "$ref": "#/components/schemas/EvmAddress" }, "version": { "$ref": "#/components/schemas/DecimalString" }, "linked_at": { "$ref": "#/components/schemas/Rfc3339Utc" }, "unlinked_at": { "anyOf": [ { "$ref": "#/components/schemas/Rfc3339Utc" }, { "type": "null" } ] } }}WithdrawalAddress
Section titled “WithdrawalAddress”{ "description": "A saved withdrawal / payout address (034). CONFIRMED by its email link (or the account's sign-in wallet); PENDING until then.", "type": "object", "additionalProperties": false, "required": [ "id", "network", "chain_id", "address", "label", "state", "version", "created_at", "confirmed_at" ], "properties": { "id": { "$ref": "#/components/schemas/UUID" }, "network": { "type": "string", "enum": [ "base" ] }, "chain_id": { "type": "integer" }, "address": { "$ref": "#/components/schemas/EvmAddress" }, "label": { "anyOf": [ { "type": "string", "maxLength": 40 }, { "type": "null" } ] }, "state": { "type": "string", "enum": [ "PENDING", "CONFIRMED" ] }, "version": { "$ref": "#/components/schemas/DecimalString" }, "created_at": { "$ref": "#/components/schemas/Rfc3339Utc" }, "confirmed_at": { "anyOf": [ { "$ref": "#/components/schemas/Rfc3339Utc" }, { "type": "null" } ] } }}TransferRequest
Section titled “TransferRequest”{ "description": "A withdrawal or host payout to a typed address. Sessions confirm with `code`: the authenticator code when the account has 2FA, else the 6-digit code from POST /api/v1/withdrawals/code. A wallet-only account (no email) sends `siwe_message` + `signature` (a step-up challenge from its sign-in wallet) instead. API keys send no code and reach saved (CONFIRMED) addresses only.", "type": "object", "additionalProperties": false, "required": [ "address", "amount_micro" ], "properties": { "network": { "type": "string", "enum": [ "base" ], "description": "Defaults to base." }, "address": { "$ref": "#/components/schemas/EvmAddress" }, "amount_micro": { "$ref": "#/components/schemas/MicroAmount" }, "asset": { "type": "string", "enum": [ "USDC", "USDT" ], "description": "Defaults to USDC." }, "label": { "type": "string", "minLength": 1, "maxLength": 40, "description": "Saved with a new address." }, "code": { "type": "string", "pattern": "^[0-9]{6}$" }, "siwe_message": { "type": "string", "minLength": 1 }, "signature": { "type": "string", "minLength": 1 } }}TransferAccepted
Section titled “TransferAccepted”{ "description": "INTENT: queued to a saved address (withdrawal_id or payout_id set). AWAITING_EMAIL_CONFIRMATION: a new address; nothing is locked until the emailed link (30 min) is opened, which queues exactly this request.", "type": "object", "additionalProperties": false, "required": [ "state", "address_id", "asset" ], "properties": { "state": { "type": "string", "enum": [ "INTENT", "AWAITING_EMAIL_CONFIRMATION" ] }, "withdrawal_id": { "$ref": "#/components/schemas/UUID" }, "payout_id": { "$ref": "#/components/schemas/UUID" }, "confirmation_id": { "$ref": "#/components/schemas/UUID" }, "address_id": { "$ref": "#/components/schemas/UUID" }, "expires_at": { "$ref": "#/components/schemas/Rfc3339Utc" }, "asset": { "type": "string", "enum": [ "USDC", "USDT" ] } }}ApiKeyView
Section titled “ApiKeyView”{ "description": "API key metadata. The secret itself appears only in the creation response.", "type": "object", "required": [ "key_id", "label", "prefix", "scopes", "expires_at", "revoked_at", "created_at" ], "properties": { "key_id": { "$ref": "#/components/schemas/UUID" }, "label": { "type": "string" }, "prefix": { "type": "string", "description": "First 12 characters of the key, for recognising it." }, "scopes": { "type": "array", "items": { "enum": [ "renter", "host" ] } }, "expires_at": { "anyOf": [ { "$ref": "#/components/schemas/Rfc3339Utc" }, { "type": "null" } ] }, "revoked_at": { "anyOf": [ { "$ref": "#/components/schemas/Rfc3339Utc" }, { "type": "null" } ] }, "created_at": { "$ref": "#/components/schemas/Rfc3339Utc" } }}Template
Section titled “Template”{ "description": "Public template (D-19(b)); mirrors packages/contracts/schemas/template.schema.json, which remains the authority for templates.spec. kind=model requires model_ref and readiness.", "type": "object", "additionalProperties": false, "required": [ "id", "published", "template_id", "name", "template_version", "image_digest", "launch_profile_version", "kind", "engine", "vram_fit", "exposes", "env", "min_gpu_count", "required_runtime", "setup_notes" ], "properties": { "id": { "$ref": "#/components/schemas/UUID" }, "published": { "type": "boolean" }, "template_id": { "type": "string", "pattern": "^[a-z0-9][a-z0-9-]{0,63}$" }, "name": { "type": "string", "minLength": 1 }, "template_version": { "type": "string", "minLength": 1 }, "image_digest": { "$ref": "#/components/schemas/ImageDigest", "description": "Pinned OCI reference (name@sha256:<64 hex>) — the same form quotes, START commands and qualification records carry." }, "launch_profile_version": { "type": "string", "minLength": 1 }, "kind": { "enum": [ "model", "classical", "custom" ] }, "engine": { "enum": [ "vllm", "llamacpp", "comfyui", "faster-whisper", "pytorch", "jupyter", "ollama", "oci" ] }, "model_ref": { "type": "object", "additionalProperties": false, "required": [ "hf_repo", "revision", "files" ], "properties": { "hf_repo": { "type": "string", "minLength": 1 }, "revision": { "type": "string", "minLength": 1 }, "files": { "type": "array", "minItems": 1, "items": { "type": "object", "additionalProperties": false, "required": [ "name", "sha256", "size_bytes" ], "properties": { "name": { "type": "string", "pattern": "^(?!\\.\\.?$)[A-Za-z0-9._-]+$" }, "sha256": { "type": "string", "pattern": "^[0-9a-f]{64}$" }, "size_bytes": { "$ref": "#/components/schemas/DecimalString" } } } } } }, "quantization": { "type": "string", "minLength": 1 }, "vram_fit": { "type": "object", "additionalProperties": false, "required": [ "min_vram_bytes", "est_weights_bytes", "est_kv_bytes_per_1k_tokens" ], "properties": { "min_vram_bytes": { "$ref": "#/components/schemas/DecimalString" }, "est_weights_bytes": { "$ref": "#/components/schemas/DecimalString" }, "est_kv_bytes_per_1k_tokens": { "$ref": "#/components/schemas/DecimalString" } } }, "readiness": { "type": "object", "additionalProperties": false, "required": [ "http_path", "expect_status" ], "properties": { "http_path": { "type": "string", "pattern": "^/" }, "expect_status": { "type": "integer", "minimum": 100, "maximum": 599 } } }, "exposes": { "type": "array", "minItems": 1, "items": { "type": "object", "additionalProperties": false, "required": [ "name", "port", "protocol" ], "properties": { "name": { "type": "string", "minLength": 1 }, "port": { "type": "integer", "minimum": 1, "maximum": 65535 }, "protocol": { "enum": [ "http", "ssh", "tcp" ] } } } }, "env": { "type": "object", "propertyNames": { "pattern": "^[A-Z][A-Z0-9_]{1,63}$" }, "additionalProperties": { "type": "string" } }, "min_gpu_count": { "type": "integer", "minimum": 1 }, "required_runtime": { "enum": [ "cuda", "rocm-hip", "level-zero", "opencl", "xpu" ] }, "setup_notes": { "type": "string" }, "runtimes": { "description": "Additive. One template, many backends: the same weights and API contract per backend. tier container is an OCI image; tier inference is the signed Tier B runtime artifact (<source>@sha256:<hex>). The control plane picks the machine's runtime by preference (cuda > rocm > sycl > vulkan > metal) and pins its digest in the quote and lease.", "type": "object", "additionalProperties": false, "properties": { "cuda": { "$ref": "#/components/schemas/TemplateRuntime" }, "rocm": { "$ref": "#/components/schemas/TemplateRuntime" }, "sycl": { "$ref": "#/components/schemas/TemplateRuntime" }, "vulkan": { "$ref": "#/components/schemas/TemplateRuntime" }, "metal": { "$ref": "#/components/schemas/TemplateRuntime" } } }, "backends": { "description": "Additive. Backends with a built runtime, in preference order (\"Works on\" filter). Spec compatibility, not a hardware test.", "type": "array", "items": { "enum": [ "cuda", "rocm", "sycl", "vulkan", "metal" ] } }, "works_on": { "description": "Additive. Hardware vendors those backends cover. Spec compatibility only; a hardware report is what says \"tested on\".", "type": "array", "items": { "enum": [ "nvidia", "amd", "intel", "apple" ] } } }}TemplateRuntime
Section titled “TemplateRuntime”{ "type": "object", "additionalProperties": false, "required": [ "tier", "image_digest" ], "properties": { "tier": { "enum": [ "container", "inference" ] }, "image_digest": { "$ref": "#/components/schemas/ImageDigest" } }}TemplateFit
Section titled “TemplateFit”{ "description": "D-19(c) per-offer fit verdict for a template, computed server-side from vram_fit against measured device VRAM. reason is human-readable and non-empty when fits is false.", "type": "object", "additionalProperties": false, "required": [ "fits", "reason" ], "properties": { "fits": { "type": "boolean" }, "reason": { "type": "string" } }}TelemetrySample
Section titled “TelemetrySample”{ "description": "Task A machine telemetry sample, mirroring telemetry.schema.json (the cross-language authority). EVERY measurement is optional: a probe that failed or was absent omits its field entirely. An absent field means \"not measured\", never 0 and never the previous reading. Byte/second counters are decimal strings; percentages and temperatures are bounded numbers.", "type": "object", "required": [ "devices" ], "properties": { "devices": { "type": "array", "items": { "type": "object", "required": [ "pci_address" ], "properties": { "pci_address": { "type": "string" }, "temperature_c": { "type": "number" }, "utilization_pct": { "type": "number", "minimum": 0, "maximum": 100 }, "memory_used_bytes": { "$ref": "#/components/schemas/DecimalString" }, "power_watts": { "type": "number", "minimum": 0 }, "fan_pct": { "type": "number", "minimum": 0, "maximum": 100 }, "vendor": { "type": "string", "enum": [ "nvidia", "amd", "intel", "apple" ] }, "uuid": { "type": "string", "description": "Normalised device UUID (GPU-/MIG- prefix stripped, lowercase)." }, "memory_total_bytes": { "$ref": "#/components/schemas/DecimalString" }, "unified_memory_used_bytes": { "$ref": "#/components/schemas/DecimalString" }, "health": { "type": "object", "description": "Absent = this vendor gives no health signal. ok=false carries the reason.", "required": [ "ok" ], "properties": { "ok": { "type": "boolean" }, "reason": { "type": "string" } } }, "source": { "type": "string", "enum": [ "lib", "cli", "sysfs" ] } } } }, "host": { "type": "object", "properties": { "cpu_utilization_pct": { "type": "number", "minimum": 0, "maximum": 100 }, "memory_used_bytes": { "$ref": "#/components/schemas/DecimalString" }, "disk_free_bytes": { "$ref": "#/components/schemas/DecimalString" }, "uptime_s": { "$ref": "#/components/schemas/DecimalString" }, "load1": { "type": "number", "minimum": 0 } } } }}TelemetryNumberSummary
Section titled “TelemetryNumberSummary”{ "description": "Min/avg/max of one measured numeric field within a 5-minute bucket. Present only when the field was measured at least once in that bucket.", "type": "object", "additionalProperties": false, "required": [ "min", "avg", "max" ], "properties": { "min": { "type": "number" }, "avg": { "type": "number" }, "max": { "type": "number" } }}TelemetryAmountSummary
Section titled “TelemetryAmountSummary”{ "description": "Min/avg/max of one measured byte/second counter within a 5-minute bucket, as exact decimal strings (avg is floored; a byte count is never a float).", "type": "object", "additionalProperties": false, "required": [ "min", "avg", "max" ], "properties": { "min": { "$ref": "#/components/schemas/DecimalString" }, "avg": { "$ref": "#/components/schemas/DecimalString" }, "max": { "$ref": "#/components/schemas/DecimalString" } }}X402PaymentRequired
Section titled “X402PaymentRequired”{ "description": "x402 v2 PaymentRequired. accepts has one entry, the exact EIP-3009 USDC payment to the treasury.", "type": "object", "required": [ "x402Version", "error", "resource", "accepts" ], "properties": { "x402Version": { "type": "integer", "enum": [ 2 ] }, "error": { "type": "string" }, "resource": { "type": "object", "required": [ "url", "description", "mimeType" ], "properties": { "url": { "type": "string" }, "description": { "type": "string" }, "mimeType": { "type": "string" } } }, "accepts": { "type": "array", "items": { "type": "object", "required": [ "scheme", "network", "amount", "asset", "payTo", "maxTimeoutSeconds", "extra" ], "properties": { "scheme": { "type": "string", "enum": [ "exact" ] }, "network": { "type": "string", "description": "CAIP-2, \"eip155:8453\" (Base)." }, "amount": { "$ref": "#/components/schemas/DecimalString" }, "asset": { "type": "string", "description": "Pinned native USDC contract (EIP-712 verifying contract)." }, "payTo": { "type": "string", "description": "The treasury." }, "maxTimeoutSeconds": { "type": "integer" }, "extra": { "type": "object", "required": [ "assetTransferMethod", "name", "version" ], "properties": { "assetTransferMethod": { "type": "string", "enum": [ "eip3009" ] }, "name": { "type": "string", "description": "EIP-712 domain name." }, "version": { "type": "string", "description": "EIP-712 domain version." } } } } } } }}X402TopUp
Section titled “X402TopUp”{ "type": "object", "required": [ "intent_id", "state", "amount_micro", "payer", "tx_hash", "log_index", "network" ], "properties": { "intent_id": { "$ref": "#/components/schemas/UUID" }, "state": { "type": "string", "enum": [ "PENDING_FINALITY", "CONFIRMED", "EXCEPTION" ] }, "amount_micro": { "$ref": "#/components/schemas/DecimalString" }, "credited_micro": { "$ref": "#/components/schemas/DecimalString" }, "reason": { "type": "string" }, "payer": { "type": "string", "description": "The wallet that signed the authorization. It need not be linked to the account." }, "tx_hash": { "type": "string" }, "log_index": { "type": "integer" }, "network": { "type": "string" } }}Official AmpleRun documentation · Contract v3 · Generated from the API contract · Revision 52fe29de · Open AmpleRun · View Markdown · For agents