---
title: "Look up a training call by its Idempotency-Key"
method: GET
path: "/v1/training/operations/{idempotency_key}"
tags: ["training"]
---

# Look up a training call by its Idempotency-Key

`GET /v1/training/operations/{idempotency_key}`

## Request

- Base URL: `https://api.fastino.ai`
- URL: `https://api.fastino.ai/v1/training/operations/{idempotency_key}`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer
- TypeScript: <https://skmtc.dev/fastino-ai/apis/pioneer-inference-api/docs/v1/training/operations/:idempotency_key/get.ts> (a function with typed inputs; its response is checked against the schema)

Whether a call to an interactive job route (create-model, forward, forward-backward, optim-step, save-weights, save-weights-for-sampler, load-weights, sample, stop), or a `POST /v1/training/jobs` create, sent with this `Idempotency-Key` was accepted, and the job and future it made. A native call still admitting, before its job is recorded, reads as `not_found` with a 200 because its owner and Experiment cannot yet be verified. `not_found` does not prove the call never arrived: retry the original request with the same key, never a fresh key.

## Path parameters

- `idempotency_key` string, required

## Response `200`

Successful Response

- TrainingOperation: ``GET /v1/training/operations/{idempotency_key}``: what the call sent with this key did, if it arrived.
  - `future_id` string, nullable: The future it queued; null until recorded, for a stop and for `create-job`.
  - `future_status` 'pending' | 'running' | 'completed' | 'failed' | 'cancelled' | 'lost', nullable: The future's status; null without a future, and once a finished future is deleted (its retention).
  - `idempotency_key` string, required
  - `job_id` string, nullable: The job the call created or acted on; null until its identity is recorded.
  - `operation` string, nullable: The route the key was used on: `create-model`, `forward-backward`, `stop`, ..., or `create-job` for `POST /v1/training/jobs`.
  - `status` 'accepted' | 'not_found', required: `accepted`: a call with this key was accepted and its job was recorded (work may still be running). `not_found`: no receipt is visible in the caller's scope, including while a native call is still admitting; this does not prove no work was accepted. Reconcile using the original key and request, not a fresh key.

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-17** `81465e18c1d2`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/fastino-ai/apis/pioneer-inference-api/changes/v1/training/operations/:idempotency_key/get.md)

---

[API](https://skmtc.dev/fastino-ai/apis/pioneer-inference-api.md) - [All operations](https://skmtc.dev/fastino-ai/apis/pioneer-inference-api/llms.txt) - [OpenAPI document](https://skmtc.dev/fastino-ai/apis/pioneer-inference-api/revisions/81465e18c1d2?raw)
