# Lectura web

Lee una URL como Markdown, texto, HTML o captura de pantalla.

Lee una página web específica en un formato que tu aplicación pueda consumir.

Todos los ejemplos usan `FELO_API_KEY` de la [vista general](https://openapi.felo.ai/es/docs/data-api/guides/felo-overview.md). Las llamadas usan **saldo de la plataforma**, no créditos Felo Pro. Los ejemplos de respuesta son ilustrativos; el contenido en vivo y los campos opcionales varían.

## Endpoint

`POST /api/v1/data/web/read`

## Solicitud

| Campo | Tipo | Requerido | Significado |
|---|---|---|---|
| `url` | string | Sí | URL de la página HTTP o HTTPS |
| `formats` | arreglo de strings | No | Exactamente uno de `MARKDOWN`, `TEXT`, `HTML`, `SCREENSHOT`; el valor predeterminado es Markdown |
| `mode` | string | No | `quality` (predeterminado), `fast` o `auto` |
| `timeout` | integer | No | Tiempo de espera en milisegundos, de 1 a 60.000; valor predeterminado 30.000 |
| `totalTimeout` | integer | No | Tiempo de espera total en milisegundos, de 1 a 60.000; por defecto usa `timeout` |

Elige un formato de salida por solicitud; no envíes los cuatro en el mismo arreglo.

```bash
curl -sS --request POST "https://openapi.felo.ai/api/v1/data/web/read" \
  -H "Authorization: Bearer $FELO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com","formats":["MARKDOWN"],"mode":"quality","timeout":30000}'
```

## Respuesta

HTTP 200 devuelve el campo de contenido seleccionado en la raíz JSON. Una respuesta Markdown puede verse así:

```json
{
  "title": "Example Domain",
  "markdown": "# Example Domain\n\nThis domain is for use in documentation examples.",
  "metadata": {}
}
```

Lee `markdown`, `text`, `html` o `screenshot` según el formato que solicitaste. Otros metadatos son opcionales; no exijas que estén presentes todos los campos de formato. Consulta el esquema `WebReadResponse` en la [definición OpenAPI](https://openapi.felo.ai/api/v1/data/openapi.json) para ver la respuesta completa.

## Facturación y fallos

`web.read` se factura por solicitud. Un tiempo de espera no es una página vacía: comprueba el estado HTTP antes de usar el cuerpo. No cambies a solicitudes rápidas repetidas después de un timeout; sigue [Facturación y errores](https://openapi.felo.ai/es/docs/data-api/guides/felo-billing.md).
