---
title: "Get Training Job Billing"
method: GET
path: "/v1/training-jobs/{job_id}/billing"
tags: ["training-jobs"]
---

# Get Training Job Billing

`GET /v1/training-jobs/{job_id}/billing`

## Request

- Base URL: `https://api.pioneer.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.pioneer.ai/v1/training-jobs/{job_id}/billing`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer
- TypeScript: <https://skmtc.dev/pioneer/apis/brain-api/docs/v1/training-jobs/:job_id/billing/get.ts> (a function with typed inputs; its response is checked against the schema)

Get the billing outcome for a specific training job, by job ID.

Closes the API gap in ENG-6131: reports whether a job was billed and,
if so, for how much and how long, so a billing-correctness fix like
ENG-6068 can be verified live without direct database access. Read
visibility matches ``get_training_job`` and the other
``training-jobs/{job_id}`` read routes.

## Path parameters

- `job_id` string, required

## Response `200`

Successful Response

- TrainingJobBillingResponse: Per-job billing outcome, verifiable by ``training_job_id`` (ENG-6131).
  - `job_id` string, required
  - `status` string, required
  - `started_at` string, nullable: When the job was dispatched to Modal (spawn / queue time).
  - `compute_started_at` string, nullable: When the training container actually began executing (ENG-6068). Distinct from started_at. FAILED/CANCELLED jobs bill only when this is set, so a null value here explains why billed=false.
  - `completed_at` string, nullable
  - `billed` boolean, required: Whether a billing request row exists for this job.
  - `request_id` string, nullable: The requests.id row this job was billed against, if billed.
  - `charged_usd` string, nullable: Selling price actually charged for this job's GPU time.
  - `gpu_minutes` string, nullable: Billed GPU minutes, derived from the billed request's duration_ms.
  - `billed_at` string, nullable: When the billing request row was created.

## Other responses

- `422`: Validation Error

## Changes

- **2026-09-24** `0e5e86e2bae5`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/pioneer/apis/brain-api/changes/v1/training-jobs/:job_id/billing/get.md)

---

[API](https://skmtc.dev/pioneer/apis/brain-api.md) - [All operations](https://skmtc.dev/pioneer/apis/brain-api/llms.txt) - [OpenAPI document](https://skmtc.dev/pioneer/apis/brain-api/revisions/0e5e86e2bae5?raw)
