# Inicio rápido de la API URL a Markdown: tu primera página en dos minutos

> Inicio rápido de la API URL a Markdown: obtén una clave, lee tu primera página con curl, Python o Node.js y revisa créditos. Desde 0,07 US$/1K páginas.

- URL: https://webreaderapi.com/es/docs/
- Última actualización: 2026-10-22
- Editor: WebReaderAPI (https://webreaderapi.com)

Un endpoint, un parámetro: envía una URL a `/read` y recibe el contenido principal de la página en Markdown. Esta página te lleva de un saldo vacío a una llamada que funciona y luego te señala todo lo demás.

**Respuesta rápida — ¿Cómo convierto una URL a Markdown con una API?**

Envía la URL a `GET https://webreaderapi.com/api/v1/read` con tu clave API en el header `Authorization`. **WebReaderAPI** obtiene la página, conserva el contenido principal y lo devuelve en Markdown con su título, autor, fecha y recuento de palabras. Una página cuesta un crédito (dos si necesita un navegador), desde 0,07 US$/1K páginas a fecha de octubre de 2026. Sin KYC; paga con criptomonedas.

## La API en una tabla

| Atributo | Valor |
| --- | --- |
| URL base | `https://webreaderapi.com/api/v1` |
| Leer una página | `GET` o `POST https://webreaderapi.com/api/v1/read` |
| Varias URLs o un sitio | `POST https://webreaderapi.com/api/v1/batch` y `POST https://webreaderapi.com/api/v1/crawl`, resultados desde `GET https://webreaderapi.com/api/v1/jobs/{job_id}` |
| Créditos restantes | `GET https://webreaderapi.com/api/v1/credits` (gratis) |
| Autenticación | Envía tu clave API en la cabecera Authorization como token Bearer, o en el parámetro de consulta api_key |
| Facturación | 1 crédito = 1 página leída sin navegador; 2 créditos cuando la página necesita un navegador para renderizar JavaScript. Una solicitud que falla, o que el robots.txt de un sitio rechaza, no se cobra |
| Nuestro rastreador | `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)`, token de robots.txt `WebReaderAPI` |
| Pack más pequeño | 10.000 páginas por 3,75 US$; los créditos no caducan |

## ¿Cómo consigo una clave API?

Tres pasos, sin formulario que rellenar. El más lento es la confirmación en la blockchain de tu recarga.

1. **Recarga con criptomonedas** — Envía al menos 25 US$ en BTC, USDT, USDC, ETH, SOL, LTC. Inicio de sesión con número de cuenta; el email es opcional.
2. **Comprar un pack de créditos** — 10.000 páginas por 3,75 US$ es suficiente para probar cada opción con tus propias URLs.
3. **Copia tu clave** — Tu clave API está lista en el panel en cuanto se confirma tu recarga con criptomonedas y has comprado un pack. Guárdala en una variable de entorno llamada WEBREADER_API_KEY.

## ¿Cómo es la primera petición?

Es un GET HTTPS normal con la dirección de la página en el parámetro `url`. Codifica la dirección, porque contiene sus propios caracteres `:` y `/`; curl lo hace por ti con `--data-urlencode`. La configuración predeterminada ya sirve para la mayoría de artículos y páginas de documentación: salida en Markdown, solo el contenido principal y un navegador solo cuando la página lo necesita.

*curl: leer una página*

```bash
curl -sG "https://webreaderapi.com/api/v1/read" \
  -H "Authorization: Bearer $WEBREADER_API_KEY" \
  --data-urlencode "url=https://example.com/blog/first-post"
```

*Python: leer una página y guardarla*

```python
import os

import requests

resp = requests.get(
    "https://webreaderapi.com/api/v1/read",
    headers={"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]},
    params={"url": "https://example.com/blog/first-post"},
    timeout=70,
)
resp.raise_for_status()
page = resp.json()
print(page["title"], "-", page["word_count"], "words,", page["credits_used"], "credit(s)")
with open("first-post.md", "w", encoding="utf-8") as f:
    f.write(page["markdown"])

```

*Node.js 18+: leer una página*

```javascript
const params = new URLSearchParams({ url: 'https://example.com/blog/first-post' });
const res = await fetch(`https://webreaderapi.com/api/v1/read?${params}`, {
  headers: { Authorization: `Bearer ${process.env.WEBREADER_API_KEY}` },
});
const page = await res.json();
if (!res.ok) throw new Error(`${page.error.code}: ${page.error.message}`);
console.log(page.title, page.word_count, 'words');
console.log(page.markdown.slice(0, 500));

```

## ¿Qué devuelve?

Un objeto JSON con el Markdown en el campo `markdown` y los metadatos de la página al lado: `title`, `description`, `author`, `published_at`, `language`, `site_name` y `word_count`. Dos campos te ayudan a comprobar qué ha pasado: `final_url` es la dirección después de las redirecciones, y `rendered` te indica si se necesitó un navegador.

`credits_used` muestra cuánto costó la llamada: 1 para una página normal, 2 cuando `rendered` es `true`, uno más si elegiste un `country`. La [página del formato de respuesta](https://webreaderapi.com/es/docs/response/) enumera cada campo con un ejemplo.

## ¿Qué opciones usaré más?

Cinco parámetros cubren la mayoría de las necesidades. Todos son opcionales.

| Parámetro | Úsalo para |
|---|---|
| `format` | Obtener `text` o `html` limpio en lugar de `markdown` |
| `main_content` | Establecer `false` para convertir la página entera, incluidos los menús |
| `render` | Forzar (`true`) o prohibir (`false`) el navegador; `auto` decide |
| `include_links` | Obtener los enlaces de la página como una lista aparte |
| `max_chars` | Recortar páginas largas para que quepan en el presupuesto de contexto de un modelo |

La [referencia de lectura](https://webreaderapi.com/es/docs/read/) describe cada parámetro, incluidos `country`, `include_images` y `timeout`.

## ¿Cómo compruebo mis créditos restantes?

Llama a `GET https://webreaderapi.com/api/v1/credits` con la misma clave. Devuelve `credits_remaining`, `credits_used_today` y tu `concurrency_limit`, y no cuesta nada. Ejecútalo al principio de un trabajo largo para que el trabajo se detenga limpiamente en lugar de fallar a mitad por `402 insufficient_credits`.

Los créditos prepago nunca caducan: las páginas sin usar permanecen en tu cuenta hasta que las uses, así que un pack comprado para un proyecto conserva su valor para el siguiente.

## ¿Qué pasa si un sitio no permite robots?

No leemos la página y no se te cobra. Nuestro rastreador se anuncia como `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)` y sigue el robots.txt del sitio. Una página no permitida devuelve `403 blocked_by_robots`; un sitio que rechaza la petición de otra forma devuelve `502 target_refused` con el código de estado propio del sitio.

Si un sitio rechaza nuestra solicitud, devolvemos su respuesta: nunca resolvemos CAPTCHAs, iniciamos sesión en cuentas ni intentamos saltar un bloqueo o un paywall. La [página de errores](https://webreaderapi.com/es/docs/errors/) explica qué errores merecen un reintento y cuáles son definitivos.

## ¿Adónde voy ahora?

- [Leer la referencia del endpoint](https://webreaderapi.com/es/docs/read/) — Cada parámetro de /read, con ejemplos
- [Batch y rastreo](https://webreaderapi.com/es/docs/crawl/) — Hasta 100 URLs por lote, o un sitio entero
- [Formato de respuesta](https://webreaderapi.com/es/docs/response/) — Cada campo de la respuesta
- [Errores y robots.txt](https://webreaderapi.com/es/docs/errors/) — Códigos, causas y reglas de reintento
- [Python](https://webreaderapi.com/es/docs/python/) — requests, httpx asíncrono, chunking para RAG
- [Node.js](https://webreaderapi.com/es/docs/node/) — fetch, un pool pequeño, polling de rastreo
- [curl y jq](https://webreaderapi.com/es/docs/curl/) — Recetas para la terminal
- [Servidor MCP](https://webreaderapi.com/es/docs/mcp/) — Una herramienta read_url para Claude y Cursor
- [LangChain y LlamaIndex](https://webreaderapi.com/es/docs/langchain/) — Loaders y herramientas para RAG
- [function calling de OpenAI](https://webreaderapi.com/es/docs/openai/) — Un esquema y bucle de la herramienta read_url
- [n8n](https://webreaderapi.com/es/docs/n8n/) — Herramienta HTTP Request para un Agente de IA
- [OpenClaw](https://webreaderapi.com/es/docs/openclaw/) — Añadir el servidor MCP junto a web_fetch

## Inicio rápido: preguntas frecuentes

### ¿Hay un SDK que instalar?

No. WebReaderAPI es una API HTTPS normal, así que cualquier cliente HTTP funciona. La documentación ofrece código listo para copiar y pegar para Python, Node.js y curl, y definiciones de herramientas para MCP, LangChain, LlamaIndex y OpenAI function calling. Nada se publica como paquete.

### ¿Puedo enviar la clave en la URL en lugar de en una cabecera?

Sí, como parámetro de consulta `api_key`. La cabecera `Authorization: Bearer` es más segura, porque las URLs acaban a menudo en registros e historiales del navegador. Crea varias claves API, por ejemplo una por agente o proyecto, y revoca cualquiera de ellas desde tu panel.

### ¿Una página fallida consume un crédito?

No. 1 crédito = 1 página leída sin navegador; 2 créditos cuando la página necesita un navegador para renderizar JavaScript. Una solicitud que falla, o que el robots.txt de un sitio rechaza, no se cobra. Solo se factura la página que devuelve contenido.

### ¿Puedo probarlo antes de comprar?

No hay plan gratuito. No hay plan gratuito: el pack más pequeño es la forma de probar, se paga desde la recarga mínima, y el importe añadido solo para alcanzar ese mínimo puede devolverse bajo petición en un plazo de 30 días, en USDT o USDC, mientras no se haya gastado.

---

WebReaderAPI: WebReaderAPI es una API de lectura web para agentes de IA que convierte cualquier página web pública en Markdown limpio, pagando con criptomonedas y sin subir ningún documento de identidad. Los créditos prepago desde 0,07 US$/1K páginas nunca caducan y se respeta robots.txt. Sin KYC: ni documento de identidad, ni selfie, ni documentos. Paga con criptomonedas.
