> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ariacompute.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Retrieve full training job detail with checkpoints and metrics

> Fetch complete details for a single training job including checkpoints, MLflow links, latest progress, and hyperparameters.

Use this endpoint to retrieve the full state of a training job. The response includes LoRA config, hyperparameters, the latest progress snapshot, MLflow run links, and any error messages.

## Method + Path

```http theme={null}
GET /v1/jobs/:id
```

## Authentication

Include your PIN API token or JWT in the `Authorization` header as a Bearer token.

```http theme={null}
Authorization: Bearer <token>
```

## Path parameters

<ParamField path="id" type="string" required>
  The job identifier (e.g., `jb_abc123def456`).
</ParamField>

## Request example

<CodeGroup>
  ```bash curl theme={null}
  curl -s "https://api.ariacompute.com/v1/jobs/jb_abc123def456" \
    -H "Authorization: Bearer $PIN_API_TOKEN"
  ```
</CodeGroup>

## Response

Returns a standard PIN success envelope with the job object under `data`.

<ResponseField name="code" type="integer" required>
  `0` on success, nonzero on error.
</ResponseField>

<ResponseField name="data" type="object" required>
  <Expandable title="job object">
    <ResponseField name="job_id" type="string">
      Unique job identifier.
    </ResponseField>

    <ResponseField name="type" type="string">
      Training type: `sft`, `opd`, `pretrain`, `distill`, `qat`, `grpo`, `dpo`, `kto`, `orpo`, `simpo`, `ppo`.
    </ResponseField>

    <ResponseField name="base_model" type="string">
      Base model from the catalog.
    </ResponseField>

    <ResponseField name="teacher_model" type="string">
      Frozen teacher for OPD/distill.
    </ResponseField>

    <ResponseField name="lora" type="object">
      LoRA/QLoRA/DoRA configuration.

      <Expandable title="properties">
        <ResponseField name="method" type="string">
          `lora`, `qlora`, `dora`, or `none`.
        </ResponseField>

        <ResponseField name="rank" type="integer">
          LoRA rank (1 to 64).
        </ResponseField>

        <ResponseField name="alpha" type="integer">
          LoRA alpha (1 to 128).
        </ResponseField>

        <ResponseField name="lora_dropout" type="number">
          Dropout rate (0 to 0.5).
        </ResponseField>

        <ResponseField name="target_modules" type="array">
          Target module names.
        </ResponseField>

        <ResponseField name="quantization" type="string">
          `4bit_nf4` for QLoRA.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="hyperparams" type="object">
      Training hyperparameters.
    </ResponseField>

    <ResponseField name="auto_intervention" type="object">
      Auto-intervention config if enabled.
    </ResponseField>

    <ResponseField name="dataset_id" type="string">
      Linked dataset ID.
    </ResponseField>

    <ResponseField name="dataset_path" type="string">
      Resolved storage path or HF repo.
    </ResponseField>

    <ResponseField name="dataset_hf_repo" type="string">
      Hugging Face dataset repo.
    </ResponseField>

    <ResponseField name="dataset_access" type="string">
      Dataset access mode.
    </ResponseField>

    <ResponseField name="status" type="string">
      Current status.
    </ResponseField>

    <ResponseField name="dispatch_status" type="string">
      Controller dispatch state.
    </ResponseField>

    <ResponseField name="agent_id" type="string">
      Agent executing the job.
    </ResponseField>

    <ResponseField name="gpu_index" type="integer">
      Assigned GPU index.
    </ResponseField>

    <ResponseField name="mlflow_run_id" type="string">
      MLflow run ID.
    </ResponseField>

    <ResponseField name="mlflow_url" type="string">
      Direct MLflow URL.
    </ResponseField>

    <ResponseField name="error" type="string">
      Last recorded error.
    </ResponseField>

    <ResponseField name="progress" type="object">
      Latest step metrics.

      <Expandable title="properties">
        <ResponseField name="step" type="integer">
          Training step.
        </ResponseField>

        <ResponseField name="loss" type="number">
          Latest loss.
        </ResponseField>

        <ResponseField name="reward" type="number">
          Latest reward (RL jobs).
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="created_at" type="string">
      ISO 8601 creation timestamp.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="message" type="string">
  Human-readable message (empty on success).
</ResponseField>

### Example response

```json theme={null}
{
  "code": 0,
  "data": {
    "job_id": "jb_abc123def456",
    "type": "grpo",
    "base_model": "meta-llama/Llama-3-8B",
    "lora": {
      "method": "lora",
      "rank": 16,
      "alpha": 32,
      "lora_dropout": 0.05,
      "target_modules": ["q_proj", "v_proj"],
      "quantization": "4bit_nf4"
    },
    "hyperparams": {
      "epochs": 3,
      "lr": 0.00002,
      "max_length": 2048,
      "group_size": 4,
      "kl_coef": 0.1
    },
    "dataset_id": "ds_xyz789",
    "status": "running",
    "dispatch_status": "running",
    "agent_id": "ag_node01_001",
    "gpu_index": 0,
    "mlflow_run_id": "run_20250115_001",
    "mlflow_url": "http://mlflow:5000/#/experiments/0/runs/run_20250115_001",
    "progress": {
      "step": 2150,
      "loss": 0.6123,
      "reward": 0.8741
    },
    "created_at": "2025-01-15T09:23:17Z"
  },
  "message": ""
}
```

## Errors

| Code | HTTP | Meaning                                  |
| ---- | ---- | ---------------------------------------- |
| 401  | 401  | Missing or invalid Bearer token.         |
| 404  | 404  | Job not found or does not belong to you. |
| 500  | 500  | Internal server error.                   |


## Related topics

- [Get Evaluation](/api-reference/pin/evaluations/get.md)
- [Analyze training metrics and detect reward hacking](/api-reference/pin/jobs/analysis.md)
- [List All Training Checkpoints - PIN API](/api-reference/pin/checkpoints/list.md)
- [Pause, resume, start, or stop a training job](/api-reference/pin/jobs/lifecycle.md)
- [Report Training Metrics and Status - Node Agent](/api-reference/pin/node-agent/metrics.md)
