> ## 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.

# Obtener un trabajo de entrenamiento

> Obtén el estado, la configuración, las métricas y la disponibilidad del artefacto de un trabajo de entrenamiento.

Devuelve un trabajo de entrenamiento visible para el equipo del llamante.

## Solicitud

<ParamField header="X-API-Key" type="string" required>
  Tu clave de API de Fastino.
</ParamField>

<ParamField path="job_id" type="string" required>
  UUID del trabajo de entrenamiento.
</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>

## Respuesta

<ResponseField name="id" type="string">
  UUID del trabajo de entrenamiento.
</ResponseField>

<ResponseField name="status" type="string">
  Estado persistido del ciclo de vida.
</ResponseField>

<ResponseField name="normalized_status" type="string | null">
  Estado estable para compatibilidad del cliente.
</ResponseField>

<ResponseField name="is_terminal_status" type="boolean | null">
  Si la consulta puede detenerse.
</ResponseField>

<ResponseField name="progress_percent" type="integer | null">
  Porcentaje de finalización actual, de `0` a `100`.
</ResponseField>

<ResponseField name="current_epoch" type="integer | null">
  Época actual con índice 1.
</ResponseField>

<ResponseField name="error_message" type="string | null">
  Detalles del fallo cuando estén disponibles.
</ResponseField>

<ResponseField name="metrics" type="object | null">
  Métricas de entrenamiento disponibles. Las claves comunes son `final_training_loss`, `final_validation_loss` y `best_validation_loss`. Las métricas de evaluación son independientes y no están garantizadas.
</ResponseField>

<ResponseField name="artifact_ready" type="boolean | null">
  Si hay una ubicación de artefacto disponible.
</ResponseField>

<ResponseField name="is_deployable" type="boolean | null">
  Decisión autoritativa sobre la disponibilidad para despliegue.
</ResponseField>

<ResponseField name="deployability_reason" type="string | null">
  Por qué el trabajo no es desplegable.
</ResponseField>

El registro también devuelve la configuración de entrenamiento enviada, las marcas de tiempo, las referencias a datasets, los detalles del proveedor, las etiquetas y los metadatos del artefacto.

<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 trabajo desconocido o inaccesible devuelve `404`. Un valor de ruta inválido devuelve `422`.
