# Primeros pasos

Los trabajos de la API pública de Extract.FAST procesan un solo archivo. Envía un archivo de origen, espera a que termine y descarga un ZIP.

## 1. Obtener una clave de API

[Crea una cuenta](/?account=apiKeys&account_source=api-docs), ve a **Claves de API** y crea una clave. Envíala en el encabezado `X-Fast-Api-Key` con cada solicitud protegida. Los trabajos de extracción requieren acceso Pro y créditos de cuenta, así que añade créditos o suscríbete antes de ejecutar trabajos de API. Las herramientas CLI leen la variable de entorno `TOOLS_FAST_API_KEY`. Los ejemplos siguientes usan una variable local `API_KEY` para abreviar.

```bash
API_KEY="fast_prod_your_key_here"
```

## 2. Revisar créditos

```bash
curl https://api.tools.fast/extract/entitlements/me \
  -H "X-Fast-Api-Key: $API_KEY"
```

## 3. Estimar el trabajo

```bash
curl https://api.tools.fast/extract/estimate/mp4 \
  -H "X-Fast-Api-Key: $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "fileSizeMb": 25,
    "durationMinutes": 3,
    "options": {
      "extraction": {
        "selectedCapabilities": ["video.audio", "video.metadata"]
      }
    }
  }'
```

La respuesta de estimación incluye `quotedCredits` y, opcionalmente, `lineItems` con la extracción base y los complementos seleccionados que tienen coste.

## 4. Enviar un archivo

```bash
curl https://api.tools.fast/extract \
  -H "X-Fast-Api-Key: $API_KEY" \
  -F "file=@meeting.mp4" \
  -F 'options={
    "extraction": {
      "selectedCapabilities": ["video.audio", "video.metadata"]
    }
  }'
```

La respuesta es `202 Accepted` e incluye un id de trabajo y una URL de estado.

## 5. Consultar el estado

```bash
curl https://api.tools.fast/extract/job/$JOB_ID \
  -H "X-Fast-Api-Key: $API_KEY"
```

Consulta hasta que `status` sea `succeeded`, `failed` o `cancelled`.

## 6. Descargar

```bash
curl -L https://api.tools.fast/extract/job/$JOB_ID/download \
  -H "X-Fast-Api-Key: $API_KEY" \
  -o extracted.zip
```

## Responsabilidades del cliente

- Envía un archivo por trabajo.
- Guarda el id de trabajo devuelto.
- Consulta con reintentos progresivos.
- Trata `403 api_key.pro_required` como requisito de acceso Pro.
- Trata `402` como un problema de créditos o límite de plan.
