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

# API de web scraping

> La API de web scraping de Cleariflow ofrece extracción de páginas renderizadas con JavaScript a través de una interfaz JSON RESTful moderna con protección SSRF y opciones de renderizado flexibles.

## Primeros pasos

<Card title="Scraping síncrono" icon="browser" href="scrape/scrape">
  El endpoint `scrape` ejecuta una sesión de navegador y devuelve HTML renderizado en una sola solicitud — ideal para integraciones de baja latencia.
</Card>

<Card title="Trabajos asíncronos" icon="clock" href="scrape/jobs">
  Los endpoints `jobs` encolan tareas de scraping y permiten consultar el estado y los resultados — ideal para alto volumen o páginas lentas.
</Card>

### Arquitectura REST

La API de web scraping sigue los principios REST, con URLs predecibles orientadas a recursos y códigos de estado HTTP estándar para una integración fluida y manejo de errores.

### Seguridad HTTPS

Todas las comunicaciones de la API están protegidas con TLS 1.2 o superior para garantizar la integridad y privacidad de los datos.

### Versiones de la API

La API de web scraping mantiene compatibilidad hacia atrás mediante versionado y actualmente opera en la Versión 1.

### Autenticación

Su clave API es la credencial exclusiva para acceder a la API de web scraping. Cada servicio de Cleariflow requiere una clave única. Incluya su clave en el cuerpo JSON como `api_key`.

### URL base

```
https://scrape.cleariflow.com
```

### Renderizado de páginas

Las páginas se renderizan en un navegador headless real. JavaScript se ejecuta completamente antes de devolver el contenido. La protección SSRF integrada bloquea solicitudes a localhost y rangos de IP privadas.

## Códigos de respuesta y error

Cuando las solicitudes fallan, la API devuelve respuestas de error JSON estructuradas con códigos y descripciones específicos para una resolución eficaz de problemas.

| Code | Type                  | Details                                                                                                       |
| ---- | --------------------- | ------------------------------------------------------------------------------------------------------------- |
| 200  | OK                    | Todo funcionó como se esperaba.                                                                               |
| 202  | Accepted              | El trabajo asíncrono se encoló correctamente.                                                                 |
| 400  | Bad request           | Solicitud incorrecta — URL inválida, destino bloqueado o carga mal formada.                                   |
| 401  | Unauthorized          | La solicitud no fue aceptable. Normalmente porque falta la clave API o es incorrecta.                         |
| 422  | Quota reached         | La solicitud se abortó por créditos de API insuficientes. (Planes gratuitos)                                  |
| 429  | Too many requests     | Se alcanzó el límite de solicitudes por segundo. En planes gratuitos el límite es de 1 solicitud por segundo. |
| 500  | Internal server error | La solicitud no pudo completarse debido a un error del servidor.                                              |
