Skip to content

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"
}
{
"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"
}
{
"type": "string",
"pattern": "^(0|[1-9][0-9]*)$",
"description": "Unsigned base-10 integer as string; never a float.",
"example": "1"
}
{
"$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"
}
{
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$",
"example": "0x1111111111111111111111111111111111111111"
}
{
"type": "string",
"pattern": "^sha256:[0-9a-f]{64}$",
"example": "sha256:9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"
}
{
"type": "string",
"pattern": "^[^@\\s]+@sha256:[0-9a-f]{64}$",
"example": "registry.amplerun.com/templates/pytorch-cuda@sha256:9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"
}
{
"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"
}
}
}
}
}
{
"type": "object",
"additionalProperties": false,
"required": [
"items",
"next_cursor"
],
"properties": {
"items": {
"type": "array",
"items": {
"type": "object"
}
},
"next_cursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
}
}
{
"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"
}
}
}
{
"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."
}
{
"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)\"."
}
}
}
{
"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"
}
}
}
{
"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"
]
}
{
"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"
}
}
}
{
"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"
}
}
}
{
"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"
}
]
}
}
}
}
}
}
{
"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"
}
}
{
"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"
}
]
}
}
}
{
"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"
}
]
}
}
}
{
"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
}
}
}
{
"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"
]
}
}
}
{
"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"
}
}
}
{
"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"
]
}
}
}
}
{
"type": "object",
"additionalProperties": false,
"required": [
"tier",
"image_digest"
],
"properties": {
"tier": {
"enum": [
"container",
"inference"
]
},
"image_digest": {
"$ref": "#/components/schemas/ImageDigest"
}
}
}
{
"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"
}
}
}
{
"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
}
}
}
}
}
{
"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"
}
}
}
{
"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"
}
}
}
{
"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."
}
}
}
}
}
}
}
}
{
"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