> ## 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/openapi.json as the source of truth for customer-facing Fastino API routes. Only call operations present in that specification. Do not infer or call undocumented routes. Direct Fastino API integrations use https://api.fastino.ai, /v1 routes, and FASTINO_API_KEY.

# Obtenir un job d'entraînement

> Obtenez le statut, la configuration, les métriques et la disponibilité de l'artefact d'un job d'entraînement.

Renvoie un job d'entraînement visible pour l'équipe de l'appelant.

## Requête

<ParamField header="X-API-Key" type="string" required>
  Votre clé API Fastino.
</ParamField>

<ParamField path="job_id" type="string" required>
  UUID du job d'entraînement.
</ParamField>

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

## Réponse

<ResponseField name="id" type="string">
  UUID du job d'entraînement.
</ResponseField>

<ResponseField name="status" type="string">
  Statut de cycle de vie persisté.
</ResponseField>

<ResponseField name="normalized_status" type="string | null">
  Statut stable pour la compatibilité client.
</ResponseField>

<ResponseField name="is_terminal_status" type="boolean | null">
  Indique si l'interrogation peut s'arrêter.
</ResponseField>

<ResponseField name="progress_percent" type="integer | null">
  Pourcentage d'achèvement actuel, de `0` à `100`.
</ResponseField>

<ResponseField name="current_epoch" type="integer | null">
  Époque actuelle indexée à partir de 1.
</ResponseField>

<ResponseField name="error_message" type="string | null">
  Détails de l'échec lorsqu'ils sont disponibles.
</ResponseField>

<ResponseField name="metrics" type="object | null">
  Métriques d'entraînement disponibles. Les clés courantes sont `final_training_loss`, `final_validation_loss` et `best_validation_loss`. Les métriques d'évaluation sont distinctes et non garanties.
</ResponseField>

<ResponseField name="artifact_ready" type="boolean | null">
  Indique si un emplacement d'artefact est disponible.
</ResponseField>

<ResponseField name="is_deployable" type="boolean | null">
  Décision faisant autorité sur la disponibilité du déploiement.
</ResponseField>

<ResponseField name="deployability_reason" type="string | null">
  Raison pour laquelle le job n'est pas déployable.
</ResponseField>

L'enregistrement renvoie également la configuration d'entraînement soumise, les horodatages, les références de datasets, les détails du fournisseur, les étiquettes et les métadonnées d'artefact.

<ResponseExample>
  ```json Response theme={null}
  {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "status": "running",
    "normalized_status": "running",
    "is_terminal_status": false,
    "progress_percent": 40,
    "current_epoch": 2,
    "metrics": {
      "final_training_loss": 0.12,
      "final_validation_loss": 0.18,
      "best_validation_loss": 0.15
    },
    "artifact_ready": false,
    "is_deployable": false,
    "deployability_reason": "job_incomplete"
  }
  ```
</ResponseExample>

Un job inconnu ou inaccessible renvoie `404`. Une valeur de chemin invalide renvoie `422`.
