Get job details
get_jobGet one job: status, exit_code, error, started_at, ended_at, cost_per_hour and cost_usd (every attempt added up; final once the job has ended), attempts, tags and group_id. Statuses: queued (waiting for a machine: queue_reason says why, no_capacity, budget, max_parallel or volume_busy, and next_attempt_at when it is tried again), starting (machine launching), running (command started), then one final state that never changes: succeeded (exit code 0), failed (non-zero exit_code, or exit_code null and error says why, such as a reached budget, no capacity within capacity_wait_minutes, or a machine that failed with no retries left), cancelled, or timed_out (an attempt ran past max_runtime_minutes). A retried job goes back to queued with attempt one higher. cost_usd covers the machine's whole time, not only the command's: from when its machine came up until it stopped, so setup before the command (pulling the image, waiting for the GPU driver, unpacking code) is included, at each machine's hourly rate (cost_per_hour is the current one's) and with every attempt added up. It is in USD to six decimal places, so a short run is not shown as $0, and while the job runs it is the cost so far. The charge on the billing page can differ slightly: machines billed by the minute are charged whole minutes, including about 30 seconds of teardown, and time some hosts report offline is not charged.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"id": "<id>"
},
"name": "get_job"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Job ID | |
| workspace | No | Workspace ID (optional: defaults to the authenticated workspace) | |
| environment | No | Environment name (optional: defaults to the environment this session acts in) |