# GET /api/check/{rut}

Recupera el Check más reciente de un RUT dentro del mes calendario en curso. **No crea un Check nuevo.** Si quieres garantizar que exista uno, usa primero [`POST /api/check`](/docs/api/endpoints/check).

- **URL completa:** `https://app.chapi.cl/api/check/{rut}`
- **Método:** `GET`
- **Auth:** `Authorization: Token <token>` o cookie `sessionid` ([más](/docs/api/authentication)).
- **Tag OpenAPI:** `Checks`

## Headers requeridos

| Header | Valor |
|---|---|
| `Authorization` | `Token <token>` (si no usas cookie auth) |

## Path parameters

| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| `rut` | string | sí | RUT a recuperar. Patrón: `\d{1,2}\.?\d{3}\.?\d{3}-[\dkK]$`. Ver [Convenciones](/docs/api/conventions). |

### Ejemplos válidos

```
GET /api/check/22222222-2
GET /api/check/12.345.678-9
GET /api/check/9876543-K
```

## Respuestas

### `200 OK`

Devuelve el Check vigente para el RUT en el mes calendario actual. Schema: `Check` (idéntico a `ACheck`).

```json
{
  "id": "5c7e0a1e-3c1d-4e0a-bf5a-2a0a9b1c0d1e",
  "permalink": "https://app.chapi.cl/check/5c7e0a1e-3c1d-4e0a-bf5a-2a0a9b1c0d1e",
  "rut": "22222222-2",
  "name": "Nombre Apellido",
  "data": {
    "causas_penales_count": 0,
    "causas_penales_rut_match_count": 0,
    "causas_penales_name_match_count": 0,
    "causas_civiles_count": 2,
    "causas_laborales_count": 0,
    "causas_sindicales_count": 0,
    "international_sanctions_count": 0,
    "pep": false
  },
  "created_at": "2026-05-01T12:00:00Z",
  "score": { "value": 0.18, "label": "low" },
  "pdf_report_url": "https://app.chapi.cl/checks/5c7e0a1e/report.pdf",
  "ai_summary": ""
}
```

Estructura completa de campos descrita en [`POST /api/check`](/docs/api/endpoints/check#campos-de-la-respuesta).

### Errores

| Código | Causa |
|---|---|
| `400` | `Invalid RUT` — el RUT no calza el regex. |
| `404` | No existe un Check para ese RUT dentro del mes calendario en curso. |

Schema de error: `{ "message": "..." }`. Más en [Errores](/docs/api/errors).

## Patrón típico: garantizar Check vigente

```python
import requests

def get_or_create_check(rut: str, token: str) -> dict:
    headers = {"Authorization": f"Token {token}"}
    r = requests.get(f"https://app.chapi.cl/api/check/{rut}", headers=headers, timeout=30)
    if r.status_code == 200:
        return r.json()
    if r.status_code == 404:
        r = requests.post(
            "https://app.chapi.cl/api/check",
            headers=headers,
            json={"rut": rut},
            timeout=30,
        )
        r.raise_for_status()
        return r.json()
    r.raise_for_status()
```

## Ejemplos

### curl

```bash
curl https://app.chapi.cl/api/check/22222222-2 \
  -H "Authorization: Token TU_TOKEN"
```

### Python (`requests`)

```python
import requests

resp = requests.get(
    "https://app.chapi.cl/api/check/22222222-2",
    headers={"Authorization": "Token TU_TOKEN"},
    timeout=30,
)
if resp.status_code == 404:
    print("No hay Check vigente este mes para ese RUT.")
else:
    resp.raise_for_status()
    print(resp.json()["score"]["label"])
```

### JavaScript (`fetch`)

```javascript
const resp = await fetch("https://app.chapi.cl/api/check/22222222-2", {
  headers: { "Authorization": "Token TU_TOKEN" },
});
if (resp.status === 404) {
  console.log("Sin Check vigente este mes.");
} else if (!resp.ok) {
  throw new Error(`HTTP ${resp.status}`);
} else {
  const check = await resp.json();
  console.log(check.score.label);
}
```

---

Última actualización: 2026-05-01
