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

> ## Agent Instructions
> Use https://docs.fastino.ai/llms.txt to discover and navigate pages. Use https://docs.fastino.ai/llms-full.txt when you need the complete documentation corpus. Use https://docs.fastino.ai/openapi.json as the source of truth for customer-facing routes. For GLiDE decision inference, call POST https://api.fastino.ai/v1/systemone with model fastino/GLiDE. Create managed config jobs with POST /v1/training/jobs using base_model. For custom training loops, native JSON clients use the public operations under /v1/training/jobs and /v1/training/usage. Existing Tinker clients use tinker==0.32.0 with TINKER_BASE_URL=https://api.fastino.ai/v1/training/compat/tinker and TINKER_CREDENTIAL_CMD. Compatibility child routes are private and absent from OpenAPI. Auto Train is private access and has no public route; direct interested users to sales@fastino.ai. Do not infer undocumented routes. Read API keys from FASTINO_API_KEY and never embed credentials in code, logs, or reports.

# Obtenir un future interactif

> Lisez le statut et le résultat d'un future interactif. Avec wait=true, chaque requête attend jusqu'à 25 secondes ; les résultats sont conservés une heure.

`GET /v1/training/jobs/{job_id}/futures/{future_id}`

Every interactive-job call that does work returns a `future_id`. Read the
future until its `status` is `completed`, `failed`, or `cancelled`.
Use `wait=true` to wait at most 25 seconds per request. Continue polling a nonterminal future. Use `wait=true` to wait at most 25 seconds per request. Continue polling a nonterminal future. Use `wait=true` to wait at most 25 seconds per request. Continue polling a nonterminal future. Use `wait=true` to wait at most 25 seconds per request. Continue polling a nonterminal future. Use `wait=true` to wait at most 25 seconds per request. Continue polling a nonterminal future. Results are kept for one hour.

## Request

<ParamField header="X-API-Key" type="string" required>
  Your Fastino API key.
</ParamField>

<ParamField path="job_id" type="string" required>
  Interactive job ID.
</ParamField>

<ParamField path="future_id" type="string" required>
  Future ID returned when the work was queued.
</ParamField>

<ParamField query="wait" type="boolean" default="false">
  Wait up to 25 seconds for an unfinished future before answering. Repeat
  the request until it finishes.
</ParamField>

<RequestExample>
  ```bash cURL theme={null}
  curl "https://api.fastino.ai/v1/training/jobs/$TRAINING_JOB_ID/futures/$FUTURE_ID?wait=true" \
    -H "X-API-Key: $FASTINO_API_KEY"
  ```
</RequestExample>

## Response

<ResponseField name="future_id" type="string">
  The future.
</ResponseField>

<ResponseField name="job_id" type="string">
  The job.
</ResponseField>

<ResponseField name="type" type="string">
  `create`, `load`, `forward`, `forward_backward`, `optim_step`, `save`, or `sample`.
</ResponseField>

<ResponseField name="status" type="string">
  `pending`, `running`, `completed`, `failed`, or `cancelled`.
</ResponseField>

<ResponseField name="queue_state" type="string | null">
  While unfinished: `active`, or `paused_capacity` while GPU capacity warms up.
</ResponseField>

<ResponseField name="result" type="any">
  Once `completed`:

  * `forward` and `forward_backward`: `loss_fn_outputs` (one entry of tensors per
    datum, such as `logprobs`) and `metrics`.
  * `sample`: `sequences`, each with `tokens`, `logprobs`, and `stop_reason`,
    plus `prompt_logprobs` when requested.
  * `save`: the checkpoint path.
  * Other types: an acknowledgement.
</ResponseField>

<ResponseField name="error" type="object | null">
  When `failed` or `cancelled`: `message`, and `category` (`user` for a problem
  with the request, `server` for a Fastino problem).
</ResponseField>

<ResponseExample>
  ```json Pending theme={null}
  {
    "future_id": "FUTURE_ID",
    "job_id": "SESSION_ID:train:0",
    "type": "forward_backward",
    "status": "pending",
    "queue_state": "paused_capacity",
    "queue_state_reason": null,
    "result": null,
    "error": null
  }
  ```

  ```json Completed sample theme={null}
  {
    "future_id": "FUTURE_ID",
    "job_id": "SESSION_ID:train:0",
    "type": "sample",
    "status": "completed",
    "queue_state": null,
    "queue_state_reason": null,
    "result": {
      "sequences": [
        {"tokens": [59604, 13, 151645], "logprobs": [-0.21, -0.05, -0.01], "stop_reason": "stop", "topk_logprobs": null}
      ],
      "prompt_logprobs": null,
      "topk_prompt_logprobs": null,
      "prompt_cache_hit_tokens": 0
    },
    "error": null
  }
  ```
</ResponseExample>

| Status | Meaning |
| - | - |
| `404` | The job or future doesn't exist, or belongs to another team. |


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