# GET /api/v1/jobs/{id}

Job status, cumulative charge, funded-through (owner/admin)

Operation: `getJob`.

Job status, cumulative charge, funded-through (owner/admin)

Poll this after POST /api/v1/jobs. States run RESERVED -> STARTING -> RUNNING (verified ready; the meter starts here) -> STOPPING -> STOPPED -> CLEANING -> CLOSED, or FAILED / RECONCILING. GET /api/v1/jobs/{id}/access answers only while RUNNING (execution) or, for a limited window, after STOPPED (read-only retrieval); other states are 403.

## Endpoint

`GET https://amplerun-api.spiry.org/api/v1/jobs/{id}`

## Authentication

Use the credential and scope required by this operation. For programmatic renter/host calls: `Authorization: Bearer $AMPLERUN_API_KEY`. A host-agent signature or other specialized proof is required where the description specifies it.

## Parameters

| Name | Location | Presence | Type | Description |
| --- | --- | --- | --- | --- |
| `id` | path | Required | UUID |  |

## Responses

### `200`

Job detail.

`application/json`
| Field | Type | Presence | Description |
| --- | --- | --- | --- |
| `job_id` | UUID | Required |  |
| `state` | "RESERVED" / "STARTING" / "RUNNING" / "STOPPING" / "STOPPED" / "CLEANING" / "CLOSED" / "FAILED" / "RECONCILING" | Required |  |
| `cumulative_charge_micro` | MicroAmount | Required |  |
| `funded_through` | Rfc3339Utc | Required |  |
| `budget_version` | DecimalString | Required |  |
| `machine_id` | UUID | Optional |  |
| `fence` | DecimalString | Optional |  |
| `rate_micro_per_hour` | schema | Optional | 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. |
| `accepted_runtime_ms` | schema | Optional | Additive. Control-owned accepted-runtime accumulator; 0 before any accepted receipt. |
| `meter_started_at` | Rfc3339Utc or null | Optional | Additive. When the meter actually started (verified READY), not when the job was reserved. null means "not yet measured" — distinct from zero. |
| `last_meter_receipt_at` | Rfc3339Utc or null | Optional | 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. |
| `stopped_at` | Rfc3339Utc or null | Optional | 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. |
| `tier` | "container" / "inference" | Optional | Additive (D-23). The machine's tier; inference is community inference (don't send sensitive data). |
| `gpu_model` | string | Optional | 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. |
| `gpu_count` | integer | Optional | Additive. How many of `gpu_model` the machine has, from the same manifest. Absent with gpu_model. |
| `template` | object | Optional | Additive. Present only when the job's quote named a template (quotes.template_id); summary of templates.spec. |

```json
{
  "$ref": "#/components/schemas/Job"
}
```

### `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 |  |

```json
{
  "$ref": "#/components/schemas/ErrorEnvelope"
}
```

## 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.

```sh
curl --request GET 'https://amplerun-api.spiry.org/api/v1/jobs/{id}' \
  --header "Authorization: Bearer $AMPLERUN_API_KEY"
```

[Schema definitions](https://docs.amplerun.com/reference/schemas.md) · [Download OpenAPI](/openapi.json) · [Authentication](https://docs.amplerun.com/agents/authentication.md) · [Errors and recovery](https://docs.amplerun.com/reference/errors.md)

---
Generated from the AmpleRun API contract.
Canonical: https://docs.amplerun.com/reference/api/get-job/
