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

# Platform API reference: endpoints, methods, and paths

> Every Kite Platform API endpoint at a glance — augmentation, training, and account routes, with methods, paths, and links to the OpenAPI spec.

All endpoints are under `https://api.kiteml.com/v1`. Every request needs `Authorization: Bearer kite_…`, and should send `Kite-Version: 2026-09-27` (see [versions](/platform-api/overview#conventions)). This page is the map; each endpoint's own page, with every parameter, response field, and error, is under the **API reference** tab. Both are generated from the OpenAPI document at `https://api.kiteml.com/v1/openapi.json`, so they describe exactly what the API does.

## Augmentations

| Method | Path | Description |
| - | - | - |
| `POST` | `/v1/augmentations` | Start a run (`source`, `instructions`, `model`, `reference_images`, `config`, `output`) |
| `POST` | `/v1/augmentations/estimate` | Estimate the token cost of a run before starting it (`model`: `relight` or `video`) |
| `GET` | `/v1/augmentations/:id` | Status, progress, and — when done — output files |
| `GET` | `/v1/augmentations` | List your runs |
| `POST` | `/v1/augmentations/:id/cancel` | Cancel a running augmentation |

See [Augmentations](/platform-api/augmentation) for the full lifecycle, request body, and response shapes.

## Account

| Method | Path | Description |
| - | - | - |
| `GET` | `/v1/keys/me` | Identity and scopes for the current API key |
| `GET` | `/v1/usage` | Token usage over a date range, grouped by resource |
| `GET` | `/v1/credits` | Current credit balance |

## Training runs

| Method | Path | Description |
| - | - | - |
| `POST` | `/v1/training_runs` | Start a run per policy (`dataset`, `policies`, `hardware_tier`, `config`) |
| `POST` | `/v1/training_runs/estimate` | Estimate the token cost of a run before starting it |
| `GET` | `/v1/training_runs/:id` | Status, phase, live metrics, and output |
| `GET` | `/v1/training_runs` | List your runs |
| `GET` | `/v1/training_runs/:id/logs` | Tail the trainer's output |
| `GET` | `/v1/training_runs/:id/checkpoints` | List the checkpoints a run saved |
| `GET` | `/v1/training_runs/:id/checkpoints/:step/download` | Download one checkpoint as a ZIP of its `pretrained_model/` |
| `POST` | `/v1/training_runs/:id/cancel` | Cancel a run and release its GPU |

See [Training runs](/platform-api/training-runs) for the full lifecycle, request body, and response shapes.

## Twins

Private beta — see [Twins](/platform-api/twins).

| Method | Path | Description |
| - | - | - |
| `POST` | `/v1/twins/validate` | Check a dataset for free: cameras, the one that seeds the room, and a time estimate |
| `POST` | `/v1/twins` | Build a twin from one episode (`source`) |
| `GET` | `/v1/twins/:id` | Status, stages with their measurements, and — when done — the scene download |
| `GET` | `/v1/twins` | List your twins |
| `GET` | `/v1/twins/:id/files` | Every file in a finished twin's archive, with size and SHA-256 |
| `GET` | `/v1/twins/:id/archive` | The scene as one `.tar.gz` (redirects to a signed link) |
| `POST` | `/v1/twins/:id/cancel` | Stop a twin that's building |
| `POST` | `/v1/twins/:id/resume` | Continue a failed or canceled twin from the stages it finished |

## RL runs

See [RL runs](/platform-api/rl-runs) for a worked example, from the request to the policy running in MuJoCo.

| Method | Path | Description |
| - | - | - |
| `GET` | `/v1/rl_runs/catalog` | Robots, objectives with every parameter and its bounds, hardware tiers, engines |
| `POST` | `/v1/rl_runs/plan` | A task spec from a plain-English description |
| `POST` | `/v1/rl_runs/validate` | Check a spec for free: compile it and roll canned policies through it |
| `POST` | `/v1/rl_runs/estimate` | Minutes and tokens for a spec |
| `POST` | `/v1/rl_runs` | Train: one run per seed |
| `GET` | `/v1/rl_runs/:id` | Status and live metrics; once packaged, the verdict and the outputs |
| `GET` | `/v1/rl_runs` | List your RL runs |
| `GET` | `/v1/rl_runs/:id/metrics` | The training curve, reward by term |
| `GET` | `/v1/rl_runs/:id/checkpoints` | Saved iterations; each downloads as ONNX or as the training checkpoint |
| `GET` | `/v1/rl_runs/:id/report` | The verdict, its checks, and the judge's read of the clip |
| `GET` | `/v1/rl_runs/:id/files` | Every file in the bundle, with size and SHA-256 |
| `GET` | `/v1/rl_runs/:id/archive` | The bundle as one zip |
| `POST` | `/v1/rl_runs/:id/cancel` | Stop a run; one that has trained keeps its policy |

## Catalog

| Method | Path | Description |
| - | - | - |
| `GET` | `/v1/training_policies` | Policy types you can train, and the GPU each one needs |
| `GET` | `/v1/hardware_tiers` | GPU tiers, with the token rate each one bills at |
| `POST` | `/v1/datasets/inspect` | Check a dataset is trainable and read its camera keys |

## Operations and webhooks

| Method | Path | Description |
| - | - | - |
| `GET` | `/v1/operations/:id` | Uniform status for any run, by id prefix (`aug_`, `trn_`, `twin_`) |
| `POST` | `/v1/webhook_endpoints` | Register a receiver for run events |
| `GET` | `/v1/webhook_endpoints` | List your receivers |
| `DELETE` | `/v1/webhook_endpoints/:id` | Remove a receiver |
| `GET` | `/v1/events` | The durable event log, so polling is always a fallback |

Events: `augmentation.completed`, `augmentation.failed`, `augmentation.canceled`, `training_run.completed`, `training_run.failed`, `training_run.canceled`, `twin.completed`, `twin.failed`, `twin.canceled`.

## Evaluate

<Note>
  **Coming soon.** Simulation evaluation endpoints aren't on `/v1` yet. Evaluation runs are available today from the [dashboard](https://app.kiteml.com) and the [Kite CLI](https://kiteml.com/docs/cli).
</Note>

<Info>
  The interactive reference at [`api.kiteml.com/v1/docs`](https://api.kiteml.com/v1/docs) is generated from the same OpenAPI spec the API is built on, so it's always in sync with production.
</Info>

<Tip>
  Every long-running resource answers to `GET /v1/operations/:id`, whatever its id prefix. If you poll more than one kind of run, write that loop once against `operations` rather than one loop per resource — the status vocabulary is the same for all of them.
</Tip>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.