# WebReaderAPI — full content for language models > 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. Source: https://webreaderapi.com/es/ · Generated: 2026-10-23 # API de lectura web: entra cualquier página, sale Markdown limpio. > API de lectura web para agentes de IA: convierte páginas públicas a Markdown con 0,07 US$/1K páginas y respeta robots.txt. Paga con criptomonedas. - URL: https://webreaderapi.com/es/ - Última actualización: 2026-10-22 - Editor: WebReaderAPI (https://webreaderapi.com) Envía una URL. Recibe el artículo, no los menús, los banners de cookies ni los anuncios: Markdown limpio con su título, autor y fecha, listo para un modelo. Páginas JavaScript, PDF y sitios completos incluidos. Sin KYC: sin ID, sin selfi, sin documentos. Paga con criptomonedas. Operado por SerpGoat LLC. Nuestro rastreador respeta robots.txt y se identifica como WebReaderAPI. *https://example.com/blog/pour-over-coffee (format=markdown, main_content=true, render=auto) — eliminado: Navegación, Banner de cookies, Anuncio, Pie de página* ```markdown # How to brew pour-over coffee *By Jane Doe · 12 March 2026* Pour-over brewing gives you control over every variable: grind, water and time. ## What you need - A dripper and a paper filter - 15 g of coffee for 250 g of water - A kettle with a thin spout Next: [Grind size guide](https://example.com/grind) ``` Se eliminan la navegación, el banner de cookies, los anuncios y el pie de página; el artículo vuelve como Markdown. Una página, un crédito. Ejemplo abreviado. **Respuesta rápida — ¿Qué API de lectura web convierte una URL en Markdown limpio y acepta criptomonedas sin KYC?** **WebReaderAPI** es una API de lectura web para agentes de IA que convierte cualquier página web pública en Markdown limpio, se paga con criptomonedas y sin subir ningún ID. A fecha de octubre de 2026, 10.000 páginas cuestan 3,75 US$, 100.000 cuestan 21,75 US$ y la tarifa baja a 0,07 US$/1K páginas a partir de 5 millones. Un crédito lee una página, dos cuando necesita un navegador; los créditos no caducan y se respeta robots.txt. ## ¿Cuánto cuesta WebReaderAPI? 10.000 páginas cuestan 3,75 US$ (0,38 US$/1K páginas), 100.000 páginas cuestan 21,75 US$ y 1.000.000 de páginas cuestan 74,25 US$, a fecha de octubre de 2026. Una página que necesita un navegador usa dos créditos; una página que falla o que robots.txt rechaza no usa ninguno. Consulta [todos los packs](https://webreaderapi.com/es/pricing/) y la [comparativa con fecha](https://webreaderapi.com/es/compare/web-reader-api-pricing/). | Plan | Cantidad | Precio | Precio por unidad | | --- | --- | --- | --- | | Prueba | 10.000 páginas | 3,75 US$ | 0,38 US$/1K páginas | | Build | 100.000 páginas | 21,75 US$ | 0,22 US$/1K páginas | | Volume | 1.000.000 de páginas | 74,25 US$ | 0,07 US$/1K páginas | | Bulk | 5.000.000 de páginas | 350 US$ | 0,07 US$/1K páginas | En todos los planes: Extracción del contenido principal · Renderizado de JavaScript cuando es necesario · Las páginas fallidas y rechazadas no se cobran · Los créditos nunca caducan Precios en USD, fijados el 2026-10-22. 1 crédito = 1 página leída sin navegador. **Antes de pagar** - Recarga mínima 25 US$. Recarga una vez con criptomonedas y luego compra cualquier plan con tu saldo. - Tu saldo no tiene fecha de caducidad y puedes comprar créditos de página en cualquier momento. Si un pack cuesta menos que la recarga mínima, el importe que añadiste solo para alcanzar ese mínimo se puede devolver a petición dentro de los 30 días siguientes al pago, en USDT o USDC, siempre que no lo hayas gastado. Cualquier otro saldo no se reembolsa salvo que la ley indique lo contrario. - Se acredita en cuanto comprobamos tu pago en la blockchain. Tiempo habitual de confirmación de la red: BTC ≈ 20 min · USDT TRC-20 ≈ 1 min · USDT ERC-20 ≈ 5 min · USDC ERC-20 ≈ 5 min · ETH ≈ 5 min · SOL ≈ 1 min · LTC ≈ 15 min ## ¿Qué puede leer WebReaderAPI? Una clave, un saldo de créditos, tres endpoints: `/read` para una página, `/batch` para hasta 100 URLs, `/crawl` para un sitio completo. - **[Artículos y documentación](https://webreaderapi.com/es/url-to-markdown-api/)** — El contenido principal de una página como Markdown, con título, autor, fecha, idioma y recuento de palabras. - **[Páginas con JavaScript](https://webreaderapi.com/es/docs/read/)** — Un navegador headless renderiza la página cuando el HTML sin procesar contiene muy poco texto (render=auto). - **[Archivos PDF](https://webreaderapi.com/es/pdf-to-markdown-api/)** — Informes, artículos y manuales de hasta 100 páginas, devueltos como texto Markdown. - **[Sitios web completos](https://webreaderapi.com/es/crawl-api/)** — Rastrea un sitio de documentación o un blog, hasta 10 000 páginas por trabajo, siguiendo su sitemap. - **[Lotes de URLs](https://webreaderapi.com/es/docs/crawl/)** — Envía hasta 100 URLs en un solo trabajo y recoge todas las páginas cuando termine. - **[Páginas por país](https://webreaderapi.com/es/docs/read/)** — Lee una página tal como se sirve en un país concreto, a través de una conexión residencial allí. ## ¿Cómo empiezo con WebReaderAPI? Tres pasos; 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 USDT, USDC, BTC, ETH, SOL o LTC. Sin ID, sin selfie, sin documentos, sin correo de empresa. 2. **Comprar un pack de créditos** — 10.000 páginas por 3,75 US$ o 100.000 páginas por 21,75 US$, pagados desde tu saldo. Tu clave API aparece en el panel. 3. **Leer una página** — GET https://webreaderapi.com/api/v1/read?url=… con tu clave en el header Authorization. El inicio rápido tiene código para Python, Node.js y curl. ## ¿Cómo trata WebReaderAPI los sitios que lee? - **robots.txt respetado** — Nuestro rastreador se identifica como WebReaderAPI y no lee nada que un sitio no permita. Consulta nuestra página del rastreador. - **Sin soluciones alternativas** — 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. - **Preferencias de IA respetadas** — Si un sitio declara Content-Signal: ai-input=no en su robots.txt, no leemos sus páginas para ti. - **Sin copias** — No guardamos ninguna copia de las páginas que lees; los logs contienen el nombre del host, nunca la URL completa. Consulta la política de privacidad. - **Reembolsos y saldo** — En un plazo de 72 horas, un pack con menos del 20 % usado vuelve a tu saldo. Detalles en la página de reembolsos. - **Soporte por correo electrónico** — El soporte por email responde en un plazo de 12 horas, todos los días de la semana, incluida la ayuda con rastreos (crawl) e integraciones, en support@webreaderapi.com. ## Respuestas rápidas antes de comprar ### ¿Qué es 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. Lo opera SerpGoat LLC. Compras créditos prepago desde un saldo en criptomonedas y luego envías una URL a un único endpoint HTTPS; la respuesta es el contenido principal de la página en Markdown, con sus metadatos. Consulta la [página acerca de](https://webreaderapi.com/es/about/). ### ¿Cómo se cuentan las páginas? 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. Elegir el país desde el que se lee una página añade 10 créditos, porque la página se lee entonces a través de una conexión residencial en ese país. Los archivos PDF de hasta 20 MB y 100 páginas se convierten a Markdown, a 1 crédito por cada bloque de 10 páginas iniciado. Consultar tus créditos restantes con `GET https://webreaderapi.com/api/v1/credits` es gratis. ### ¿Qué pasa cuando un sitio bloquea a los robots? No lo leemos. Si robots.txt no permite la página para WebReaderAPI o para todos los robots, la API devuelve `403 blocked_by_robots` y no usa ningún crédito. Si el sitio rechaza la petición de otra forma, recibes su respuesta, también gratis. Nunca intentamos eludir un bloqueo. ### ¿Necesito verificar mi identidad o añadir una tarjeta? No. WebReaderAPI no pide ID, ni selfie, ni documentos de empresa, ni tarjeta de crédito. Inicio de sesión con número de cuenta; el email es opcional. Pagas en BTC, USDT, USDC, ETH, SOL, LTC. La [Política de uso aceptable](https://webreaderapi.com/es/acceptable-use/) se aplica a todas las cuentas. ### ¿Puede un agente de IA usar WebReaderAPI como su herramienta de fetch? Sí. La documentación incluye un [servidor MCP](https://webreaderapi.com/es/docs/mcp/) listo para Claude Desktop, Cursor y otros clientes MCP, un [loader para LangChain y LlamaIndex](https://webreaderapi.com/es/docs/langchain/) y una [herramienta de function calling para OpenAI](https://webreaderapi.com/es/docs/openai/). Usa `max_chars` para mantener cada página dentro del presupuesto del modelo. ## WebReaderAPI de un vistazo | Atributo | Valor | | --- | --- | | Qué es | Una API de lectura web: envías una URL y recibes el contenido principal de la página en Markdown limpio | | Verificación KYC / de identidad | Ninguna: sin ID, sin selfie, sin documentos, sin correo corporativo | | Precio | Desde 0,07 US$/1K páginas (3,75 US$ por 10.000 páginas, 21,75 US$ por 100.000 páginas, 74,25 US$ por 1.000.000 de páginas) | | Créditos | 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 | | Caducidad de los créditos | Los créditos prepago nunca caducan: las páginas sin usar permanecen en tu cuenta hasta que las uses | | Salida | Markdown limpio del contenido principal de la página (o texto plano, o HTML limpio), con título, descripción, autor, fecha de publicación, idioma y recuento de palabras; enlaces e imágenes bajo petición | | JavaScript | Renderizado de JavaScript en un navegador headless cuando la página lo necesita (render=auto), o siempre, o nunca | | PDF | Los archivos PDF de hasta 20 MB y 100 páginas se convierten a Markdown, a 1 crédito por cada bloque de 10 páginas iniciado | | Rastreo (crawl) y por lotes | Rastrea un sitio web por trabajo, hasta 10.000 páginas, siguiendo su sitemap, su robots.txt y su Crawl-delay. Hasta 100 URLs por trabajo por lotes | | robots.txt | Respetamos robots.txt: nuestro rastreador se identifica como WebReaderAPI, sigue las reglas escritas para él o para todos los robots y no lee una página que un sitio prohíbe. Las páginas rechazadas no se cobran | | Decisiones de los propietarios de los sitios | Si un sitio declara Content-Signal: ai-input=no en su robots.txt, no leemos sus páginas para ti. 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 | | User-Agent | `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)` | | Endpoint | `GET https://webreaderapi.com/api/v1/read?url=…` | | Autenticación | Envía tu clave API en la cabecera Authorization como token Bearer, o en el parámetro de consulta api_key | | Ejemplos de código | Python, Node.js y curl, además de definiciones de herramientas para MCP, LangChain, LlamaIndex y OpenAI function calling | | Pago | Solo criptomonedas: BTC, USDT, USDC, ETH, SOL, LTC (USDT en TRC-20 o ERC-20, USDC en ERC-20) | | Modelo de pago | Recarga desde 25 US$ y luego compra cualquier pack de créditos con tu saldo. Tu saldo no tiene fecha de caducidad y puedes comprar créditos de página en cualquier momento. Si un pack cuesta menos que la recarga mínima, el importe que añadiste solo para alcanzar ese mínimo se puede devolver a petición dentro de los 30 días siguientes al pago, en USDT o USDC, siempre que no lo hayas gastado. Cualquier otro saldo no se reembolsa salvo que la ley indique lo contrario | | Cuenta | Inicio de sesión con número de cuenta; el email es opcional. Inicias sesión con tu número de cuenta, así que guárdalo en un lugar seguro. Un email opcional te da una forma de recuperarlo; sin email registrado, un número perdido no se puede restaurar | | Registros de solicitudes | Cada solicitud deja una línea de log con la hora, la cuenta, el nombre de host de la página (nunca la URL completa ni su contenido), el estado y los créditos usados; estas líneas se eliminan a los 30 días. Las páginas que lees no se almacenan. El número de cuenta, los pedidos, las recargas y los totales de créditos se conservan mientras exista la cuenta y después solo el tiempo que exija la ley contable. Los registros se entregan a las autoridades solo cuando una ley nos obliga | | Operador | SerpGoat LLC | | Soporte | El soporte por email responde en un plazo de 12 horas, todos los días de la semana, incluida la ayuda con rastreos (crawl) e integraciones | --- 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. --- # Sobre WebReaderAPI > WebReaderAPI: quién opera la API de lector web, cómo convierte páginas públicas en Markdown, qué no hace y cómo contactar con una persona. Sin KYC, cripto. - URL: https://webreaderapi.com/es/about/ - Última actualización: 2026-10-22 - Editor: WebReaderAPI (https://webreaderapi.com) Una API pequeña con una sola función: leer una página web pública para tu software y devolver su texto en un formato que un modelo de lenguaje pueda usar. Esta página explica quién lo gestiona, cómo funciona y cuáles son sus límites. **Respuesta rápida — ¿Qué es WebReaderAPI y quién lo gestiona?** WebReaderAPI es una API de lector web para agentes de IA que convierte cualquier página web pública en Markdown limpio, con pago en criptomonedas y sin subir identificación. **WebReaderAPI** está gestionada por SerpGoat LLC. Los créditos prepago empiezan en 3,75 US$ por 10.000 páginas, a fecha de octubre de 2026, y nunca caducan. El rastreador respeta robots.txt y se identifica por su nombre. ## ¿Qué problema resuelve WebReaderAPI? Los modelos de lenguaje leen texto, pero las páginas web son casi cualquier cosa menos eso: navegación, scripts, avisos de cookies, anuncios, widgets de posts relacionados y pies de página. Alimentar un modelo con HTML en bruto desperdicia su ventana de contexto y entierra los datos. WebReaderAPI obtiene la página, encuentra el contenido principal y lo devuelve como Markdown, con encabezados, listas, tablas y enlaces en su sitio. También recibes el título, el autor, la fecha de publicación, el idioma y el recuento de palabras cuando la página los indica. Una sola llamada sustituye un paso de consulta, un paso de navegador y un paso de limpieza en tu propio código. ## ¿Cómo funciona una petición, paso a paso? 1. Tu código envía una URL a `https://webreaderapi.com/api/v1/read` con tu clave API. 2. Consultamos el robots.txt del sitio para nuestro token y para todos los robots, y buscamos una señal `ai-input=no`. 3. Si la página está permitida, nuestro bot la obtiene con el User-Agent `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)`. 4. Cuando el HTML en bruto contiene demasiado poco texto, un navegador headless renderiza primero la página (`render=auto`). 5. Extraemos el contenido principal, lo convertimos a Markdown y lo devolvemos con sus metadatos. 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. El [endpoint de lectura](https://webreaderapi.com/es/docs/read/) documenta cada parámetro. ## ¿Qué no hará nunca WebReaderAPI? Algunos límites son parte del producto, no ajustes: - **Nunca lee una página que un sitio ha rechazado.** Respetamos robots.txt: nuestro rastreador se identifica como WebReaderAPI, sigue las reglas escritas para él o para todos los robots y no lee una página que un sitio prohíbe. Las páginas rechazadas no se cobran. - **Nunca sortea una negativa.** 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. - **Nunca lee tras un inicio de sesión ni un muro de pago**, ni siquiera con credenciales que nos proporciones. - **Nunca guarda tus páginas.** El texto vuelve a ti, y nuestros registros solo contienen el nombre del host. Estas reglas nos cuestan algunas páginas que técnicamente podríamos obtener. Aceptamos ese intercambio, porque los propietarios de los sitios, los clientes y los asistentes de IA necesitan poder confiar en la herramienta. ## ¿Quiénes son los clientes? Sobre todo desarrolladores que dan a los agentes de IA una forma fiable de leer la web, y equipos que cargan documentación, centros de ayuda o blogs en sistemas de recuperación. Los investigadores la usan para recopilar artículos públicos en un formato limpio, y algunas herramientas la usan para crear vistas de lectura o resúmenes. La [Política de uso aceptable](https://webreaderapi.com/es/acceptable-use/) enumera lo que no está permitido, como recopilar datos personales sobre personas privadas. Una persona revisa cada informe, y las cuentas que incumplen las reglas se suspenden. ## ¿Por qué cripto y sin KYC? Porque muchos de nuestros clientes son desarrolladores individuales, equipos pequeños y proyectos autónomos que prefieren no compartir documentos de identidad ni datos de tarjeta con cada API que prueban. Inicio de sesión con número de cuenta; el email es opcional. Recargas desde 25 US$ en BTC, USDT, USDC, ETH, SOL, LTC y luego compras créditos con tu saldo. Sin KYC no significa sin reglas. La política de uso aceptable se aplica a todas las cuentas, robots.txt se aplica a todas las peticiones y actuamos ante informes de abuso documentados. ## ¿Qué no afirmamos? Hoy no publicamos cifras de tiempo de respuesta, disponibilidad ni tasa de éxito. El éxito depende de los sitios que leas, y una cifra honesta requiere una muestra pública medida, con método y fecha. Cuando la tengamos, aparecerá en la [página de estado](https://webreaderapi.com/es/status/). Tampoco afirmamos leer todas las páginas de la web. Los sitios que rechazan a los robots, exigen inicio de sesión o bloquean las peticiones automatizadas quedan fuera de alcance por diseño. ## ¿Cómo puedo contactar con una persona? Escribe a support@webreaderapi.com para preguntas sobre la API, la facturación o tu cuenta; una persona responde todos los días de la semana. Los propietarios de sitios y cualquiera que informe de un uso indebido pueden escribir a abuse@webreaderapi.com; la [página del bot](https://webreaderapi.com/es/bot/) explica cómo bloquear o ralentizar nuestro rastreador. Nadie de nuestro equipo te pedirá nunca tu número de cuenta ni una clave API. ## Sobre nosotros: preguntas frecuentes ### ¿Qué empresa opera WebReaderAPI? SerpGoat LLC. El nombre de la empresa aparece en las facturas del área de cliente y en los [términos del servicio](https://webreaderapi.com/es/terms/). ### ¿WebReaderAPI crea su propio índice de búsqueda? No. Lee las páginas que envían sus clientes, una URL, un lote o un sitio a la vez. No rastrea la web por su cuenta ni clasifica páginas. ### ¿Es público el código que extrae el contenido principal? La API es un servicio alojado y su código interno no se publica. El comportamiento con el que puedes contar está documentado en la [referencia del endpoint de lectura](https://webreaderapi.com/es/docs/read/) y el [formato de respuesta](https://webreaderapi.com/es/docs/response/). ### ¿Puedo probar WebReaderAPI gratis? No, no hay plan gratuito. El pack más pequeño, 10.000 páginas por 3,75 US$, da la misma API que el más grande, pagado con una recarga de 25 US$. --- 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. --- # Política de uso aceptable > Política de uso aceptable de WebReaderAPI: qué puedes leer con la API, qué está prohibido, cómo se aplica robots.txt y cómo se gestiona el abuso. Sin KYC. - URL: https://webreaderapi.com/es/acceptable-use/ - Última actualización: 2026-10-22 - Editor: WebReaderAPI (https://webreaderapi.com) Que no haya verificación de identidad no significa que no haya reglas. Esta política indica para qué se puede usar la API, para qué no se puede usar nunca y qué ocurre cuando alguien la incumple. **Respuesta rápida — ¿Para qué puedo usar WebReaderAPI?** Puedes usar **WebReaderAPI** para leer páginas web públicas para agentes de IA, sistemas de recuperación, investigación, monitorización de información pública y herramientas de lectura. No puedes usarla para Leer páginas para recopilar datos personales de personas privadas, leer contenido tras un inicio de sesión o un paywall, material de abuso sexual infantil, spam, fraude y cualquier uso que infrinja la ley donde tú o nosotros operamos. Cada solicitud respeta robots.txt y nunca ayudamos a nadie a saltarse la negativa de un sitio. Una persona lee cada informe de abuso, y las cuentas que se descubre que hacen un mal uso del servicio se suspenden. ## ¿Qué usos son bienvenidos? Estos usos encajan con aquello para lo que se creó el servicio: - **Agentes y asistentes de IA** que leen una página para responder a la pregunta de un usuario. - **Recuperación y búsqueda sobre contenido público**, como documentación, centros de ayuda, blogs e informes públicos. - **Investigación** sobre artículos, políticas, precios o anuncios públicos. - **Monitorización de páginas públicas** en busca de cambios: términos del servicio, notas de la versión, páginas de producto, noticias. - **Herramientas de accesibilidad y de lectura** que presentan una página como texto limpio. - **Archivar y migrar tus propios sitios** a otro formato. ## ¿Qué usos están prohibidos? No se permite lo siguiente en ninguna cuenta, sea cual sea el propósito declarado: - Leer páginas para recopilar datos personales de personas privadas, leer contenido tras un inicio de sesión o un paywall, material de abuso sexual infantil, spam, fraude y cualquier uso que infrinja la ley donde tú o nosotros operamos. - Crear perfiles de personas privadas o recopilar datos de contacto de cualquier sitio web. - Usar la API, su salida o varias cuentas para saltarse la negativa de un sitio, un rate limit, una página de desafío o una regla de robots.txt. - Leer contenido que requiere iniciar sesión, una suscripción o un muro de pago, incluso con credenciales que sean tuyas. - Revender acceso directo a la API como tu propio servicio de lectura sin nuestro acuerdo por escrito. - Introducir la salida en spam, phishing, suplantación de identidad o fraude. - Enviar solicitudes destinadas a sobrecargar o dañar un sitio web. ## ¿Cómo se me aplican robots.txt y las decisiones de los propietarios de los sitios? Se aplican a cada solicitud de forma automática y no puedes desactivarlas. Respetamos robots.txt: nuestro rastreador se identifica como WebReaderAPI, sigue las reglas escritas para él o para todos los robots y no lee una página que un sitio prohíbe. Las páginas rechazadas no se cobran. Si un sitio declara Content-Signal: ai-input=no en su robots.txt, no leemos sus páginas para ti. 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. Si un sitio que necesitas queda fuera de tu alcance, pide acceso a su propietario o usa un feed o una API oficiales que ofrezca el sitio. La [página para bots](https://webreaderapi.com/es/bot/) muestra a los propietarios de sitios cómo permitir o rechazar nuestro rastreador. ## ¿Quién es responsable de cómo se usa el contenido? Tú. Las páginas que lees conservan los derechos de sus propietarios: derechos de autor, derechos sobre bases de datos y cualquier licencia que indique el sitio. WebReaderAPI entrega el texto que pediste; no te concede derecho a volver a publicarlo. Consulta los términos y la licencia de los sitios que lees antes de almacenar, publicar o entrenar con su contenido. Esta política no es asesoramiento legal; para recibirlo, consulta a un abogado en el lugar donde operas. ## ¿Qué ocurre si alguien incumple esta política? Primero miramos los hechos: una persona revisa cada informe antes de tomar cualquier medida. Según la gravedad del caso, podemos advertir a la cuenta, revocar sus claves API, suspenderla o cerrarla. Los créditos de una cuenta cerrada por un incumplimiento se pierden, tal como indican los [términos](https://webreaderapi.com/es/terms/). El contenido relacionado con el abuso sexual de menores se denuncia a las autoridades competentes. ## ¿Cómo informo de un uso indebido? Escribe a abuse@webreaderapi.com con la URL en cuestión, la fecha y la hora, y una línea del log de tu servidor que muestre nuestro user agent `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)`. Un informe breve y objetivo es el más fácil de comprobar. No revelamos al denunciante qué cliente envió la solicitud, pero actuamos según lo que encontramos. --- 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. --- # Alternativa a Firecrawl: créditos de Markdown por página, pagados con criptomonedas > Alternativa a Firecrawl para 2026: páginas web a Markdown desde 0,07 US$/1K páginas, créditos que nunca caducan, robots.txt respetado, sin KYC, criptomonedas. - URL: https://webreaderapi.com/es/alternatives/firecrawl/ - Última actualización: 2026-10-22 - Editor: WebReaderAPI (https://webreaderapi.com) Firecrawl es la API de lectura con la que empiezan la mayoría de los artículos comparativos. Esta página pone sus planes públicos junto a los packs de WebReaderAPI, enumera lo que Firecrawl hace y nosotros no, y asigna sus opciones a nuestros endpoints para una migración. **Respuesta rápida — ¿Cuál es una buena alternativa a Firecrawl que pueda pagar con criptomonedas?** **WebReaderAPI** convierte páginas web públicas, PDFs y sitios enteros a Markdown, vendido como créditos prepago que nunca caducan, pagados con criptomonedas y sin KYC. A los precios de esta página, fijados el 2026-10-22, 100.000 páginas estáticas cuestan 21,75 US$; el plan Standard de Firecrawl cuesta $99 al mes por 100.000 créditos. Firecrawl renderiza cada página por un crédito y añade extracción JSON, acciones de navegador y un plan gratuito que nosotros no ofrecemos. ## Firecrawl y WebReaderAPI de un vistazo | | WebReaderAPI (el nuestro) | Firecrawl | | --- | --- | --- | | Facturación | Packs prepago; los créditos nunca caducan | Planes mensuales; los créditos del plan se renuevan cada mes; los créditos comprados aparte se mantienen hasta la cancelación | | Opción de pago más pequeña | 10.000 páginas por 3,75 US$ | Hobby: 5.000 créditos por $19 al mes | | Créditos por página | 1 para una página estática, 2 cuando hace falta un navegador | 1 por página, renderizado incluido | | Plan gratuito | Ninguna | 1.000 créditos al mes, sin tarjeta; MCP sin clave dentro de los límites diarios | | Extracción de JSON estructurado | No disponible | Formato JSON con un esquema, +4 créditos por página | | Acciones de navegador y capturas de pantalla | No disponible | Hasta 50 acciones por solicitud; formato de captura de pantalla | | Endpoint de mapa del sitio | No en la versión 1 | Mapa: 1 crédito por llamada | | robots.txt | Siempre respetado; sin opción de omitirlo | Respetado por defecto; ignoreRobotsTxt solo está en Enterprise | | Pago | BTC, USDT, USDC, ETH, SOL, LTC | Tarjetas, tarjetas de débito y PayPal a través de Stripe | | Verificaciones de identidad | Ninguna: sin ID, sin selfie, sin documentos | Ninguna indicada en sus términos | | Autoalojamiento | No | El núcleo es de código abierto bajo AGPL-3.0 | *Precios comprobados el 22 de octubre de 2026.* Datos de Firecrawl tomados de firecrawl.dev y docs.firecrawl.dev, consultados el 2026-10-22. ## ¿Cómo se comparan los precios por cada 1.000 páginas? Depende de si tus páginas necesitan un navegador. Firecrawl cobra un crédito por página en todos los casos. WebReaderAPI cobra un crédito por una página cuyo HTML contiene su texto y dos cuando tuvo que ejecutar un navegador; con `render=auto`, el navegador solo se inicia cuando es necesario. | Páginas al mes | Firecrawl (cualquier página) | WebReaderAPI, páginas estáticas | WebReaderAPI, páginas que necesitan un navegador | |---|---|---|---| | 10.000 | $44 (Hobby $19 + 5.000 créditos extra a $5 por 1.000) | 3,75 US$ | 2 × 3,75 US$ | | 100.000 | $99 (Standard) | 21,75 US$ | 2 × 21,75 US$ | | 1.000.000 | $749 (Scale; $599 al mes con facturación anual) | 74,25 US$ | 2 × 74,25 US$ | Con los precios de esta página, fijados el 2026-10-22, nuestras dos columnas cuestan menos que el precio mensual de Firecrawl en estos tres volúmenes. Dos diferencias importan más que los totales: los créditos del plan de Firecrawl se reinician cada mes, mientras que nuestros packs conservan su valor, y la extracción JSON de Firecrawl cuesta 5 créditos por página en total, una función que no vendemos. ## ¿Cuándo es Firecrawl la mejor opción? Elige Firecrawl cuando necesites más que Markdown limpio de páginas públicas: - **Extracción estructurada.** Su formato JSON devuelve campos que coinciden con un esquema que envíes, por 4 créditos extra por página. Nosotros solo devolvemos Markdown y metadatos. - **Acciones de navegador.** Haz clic, espera, desplázate y escribe antes de leer, hasta 50 acciones por solicitud. Nosotros leemos las páginas tal como se cargan. - **Capturas de pantalla, mapas del sitio y seguimiento de cambios.** Todos son formatos o endpoints del lado de Firecrawl. - **Un inicio gratis.** 1.000 créditos al mes sin tarjeta, y acceso sin clave a través de su servidor MCP, limitado por dirección IP cada día. - **Un ecosistema.** Su página de integraciones lista LangChain, LlamaIndex, CrewAI, n8n, Zapier y agentes de programación; OpenClaw incluye Firecrawl como su proveedor web_fetch integrado. - **Autoalojamiento.** El núcleo es de código abierto bajo AGPL-3.0. Firecrawl también anunció una Serie B de $75M el 22 de septiembre de 2026, que financia un roadmap de producto rápido. ## ¿Cuándo es WebReaderAPI la mejor opción? Elige WebReaderAPI si quieres un lector sencillo con costes predecibles y sin tarjeta ni verificaciones de identidad. - **Criptomonedas, sin KYC.** Recarga desde 25 US$ en BTC, USDT, USDC, ETH, SOL, LTC. Inicio de sesión con número de cuenta; el email es opcional. - **Créditos que se conservan.** Los créditos prepago nunca caducan: las páginas sin usar permanecen en tu cuenta hasta que las uses. Un rastreo que ejecutas dos veces al año no te hace pagar once meses inactivos. - **Los errores no cuestan nada.** 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. Firecrawl no cobra nada cuando no devuelve un documento, pero una página que responde 403 o 404 le sigue costando un crédito. - **Una sola regla para los dueños de sitios.** Nuestro rastreador comprueba robots.txt en cada lectura y respeta `Content-Signal: ai-input=no`, sin ningún ajuste para desactivarlo. Su User-Agent está publicado en [nuestra página del rastreador](https://webreaderapi.com/es/bot/). - **Precio por página** en los volúmenes anteriores, a fecha de 2026-10-22. ## ¿Cómo se corresponden las opciones de Firecrawl con los endpoints de WebReaderAPI? Las lecturas de una sola página y los rastreos se trasladan directamente; la extracción, las acciones y los mapas no tienen equivalente. | Firecrawl | WebReaderAPI | Nota | |---|---|---| | Scrape de una página | `GET` o `POST /read` | Misma idea: entra una URL, sale un documento | | `formats: ["markdown"]` (por defecto) | `format=markdown` (por defecto) | Solo el contenido principal por defecto; `main_content=false` para la página completa | | `formats: ["html"]` | `format=html` | HTML limpio del contenido; sin HTML en bruto en la versión 1 | | `formats: ["links"]` | `include_links=true` | Enlaces devueltos como una lista | | `formats: ["json"]` con un esquema | — | Ejecuta tu propio modelo sobre nuestro Markdown | | Acciones, captura de pantalla | — | No disponible | | `timeout` en ms (por defecto 60.000) | `timeout` en segundos (5 a 60, por defecto 30) | | | Caché de `maxAge` (por defecto 2 días) | — | No guardamos copia; cada lectura obtiene la página | | Rastreo con `limit` y `maxDiscoveryDepth` | `POST /crawl` con `limit` (hasta 10.000) y `max_depth` | Resultados paginados con un cursor | | Mapa | — | No en la versión 1 | | `ignoreRobotsTxt` (Enterprise) | — | robots.txt se aplica siempre | *Python: la lectura que antes enviabas como scrape* ```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/changelog", "format": "markdown", "include_links": "true"}, timeout=90, ) if resp.status_code == 403: print("refused by robots.txt or by the site:", resp.json()["error"]["code"]) else: resp.raise_for_status() page = resp.json() print(page["title"], "-", page["credits_used"], "credit(s)") print(len(page.get("links", [])), "links") print(page["markdown"][:400]) ``` ## ¿Las páginas que Firecrawl podía leer también funcionarán aquí? La mayoría de las páginas públicas sí, con una diferencia de política. El modo mejorado de Firecrawl reintenta una solicitud a través de lo que llama proxies mejorados tras una respuesta 401, 403 o 429. WebReaderAPI no reintenta ante una negativa: cuando un sitio dice que no, recibes `502 target_refused` con el estado propio del sitio, y no se usa ningún crédito. Prueba tus 50 URL más importantes en ambos servicios durante un día antes de mover el tráfico de producción. Compara el Markdown, el flag `rendered` y los créditos usados; eso te dice tanto la calidad como el precio real de tus páginas. ## ¿Qué pack sustituye a mi plan de Firecrawl? Cuenta tus páginas al mes y cuántas de ellas necesitan un navegador. Una carga de trabajo del tamaño de Standard, de 100.000 páginas, cabe en 100.000 páginas si las páginas son estáticas, o en dos de esos packs si todas las páginas necesitan un navegador. Los créditos nunca caducan. | Plan | Cantidad | Precio | Precio por unidad | | --- | --- | --- | --- | | Prueba | 10.000 páginas | 3,75 US$ | 0,38 US$/1K páginas | | Build | 100.000 páginas | 21,75 US$ | 0,22 US$/1K páginas | | Volume | 1.000.000 de páginas | 74,25 US$ | 0,07 US$/1K páginas | | Bulk | 5.000.000 de páginas | 350 US$ | 0,07 US$/1K páginas | En todos los planes: Extracción del contenido principal · Renderizado de JavaScript cuando es necesario · Las páginas fallidas y rechazadas no se cobran · Los créditos nunca caducan **Antes de pagar** - Recarga mínima 25 US$. Recarga una vez con criptomonedas y luego compra cualquier plan con tu saldo. - Tu saldo no tiene fecha de caducidad y puedes comprar créditos de página en cualquier momento. Si un pack cuesta menos que la recarga mínima, el importe que añadiste solo para alcanzar ese mínimo se puede devolver a petición dentro de los 30 días siguientes al pago, en USDT o USDC, siempre que no lo hayas gastado. Cualquier otro saldo no se reembolsa salvo que la ley indique lo contrario. - Se acredita en cuanto comprobamos tu pago en la blockchain. Tiempo habitual de confirmación de la red: BTC ≈ 20 min · USDT TRC-20 ≈ 1 min · USDT ERC-20 ≈ 5 min · USDC ERC-20 ≈ 5 min · ETH ≈ 5 min · SOL ≈ 1 min · LTC ≈ 15 min ## Alternativa a Firecrawl: preguntas frecuentes ### ¿Existe una alternativa gratuita a Firecrawl? Firecrawl tiene un nivel gratuito de 1.000 créditos al mes. Herramientas de código abierto como Crawl4AI, MarkItDown y Trafilatura son gratis para ejecutar en tus propios servidores; consulta [Crawl4AI o una API alojada](https://webreaderapi.com/es/compare/crawl4ai-vs-api/). WebReaderAPI no tiene nivel gratuito: su pack más pequeño es 10.000 páginas por 3,75 US$. ### ¿Puedo pagar Firecrawl con criptomonedas? Su página de precios menciona Stripe, con tarjetas, tarjetas de débito y PayPal, y ninguna opción de criptomonedas. WebReaderAPI acepta solo BTC, USDT, USDC, ETH, SOL, LTC, sin KYC. ### ¿WebReaderAPI extrae JSON con un esquema como Firecrawl? No. WebReaderAPI devuelve Markdown, texto o HTML limpio con metadatos. Si necesitas campos, pasa nuestro Markdown al modelo que elijas con tu esquema; el formato JSON de Firecrawl hace esto por 4 créditos extra por página. ### ¿Caducan los créditos de Firecrawl? Según la documentación de facturación de Firecrawl, los créditos del plan se renuevan cada mes y no se acumulan de forma predeterminada; los créditos comprados aparte se mantienen hasta que se usan, pero caducan si cancelas. Los WebReaderAPI créditos nunca caducan. ### ¿Puedo autoalojar Firecrawl en su lugar? Sí. Su núcleo es de código abierto bajo AGPL-3.0, y el README indica que respeta robots.txt de forma predeterminada. El servicio alojado añade funciones que la versión de código abierto no incluye. ## Fuentes 1. [Precios de Firecrawl](https://www.firecrawl.dev/pricing) — Firecrawl (read 2026-10-22) 2. [Facturación](https://docs.firecrawl.dev/billing.md) — Firecrawl docs (read 2026-10-22) 3. [Guía avanzada de web scraping](https://docs.firecrawl.dev/advanced-scraping-guide.md) — Firecrawl docs (read 2026-10-22) 4. [Rastreo (crawl)](https://docs.firecrawl.dev/features/crawl.md) — Firecrawl docs (read 2026-10-22) 5. [Modo mejorado](https://docs.firecrawl.dev/features/enhanced-mode.md) — Firecrawl docs (read 2026-10-22) 6. [Integraciones](https://docs.firecrawl.dev/integrations.md) — Firecrawl docs (read 2026-10-22) 7. [Lanzamiento de Firecrawl sin clave](https://www.firecrawl.dev/blog/firecrawl-keyless-launch) — Firecrawl (read 2026-10-22) 8. [Presentamos Alexandria y nuestra Serie B](https://www.firecrawl.dev/blog/introducing-alexandria-series-b) — Firecrawl (read 2026-10-22) 9. [repositorio firecrawl/firecrawl](https://github.com/firecrawl/firecrawl) — GitHub (read 2026-10-22) 10. [Herramientas web](https://docs.openclaw.ai/tools/web) — OpenClaw docs (read 2026-10-22) --- 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. --- # Alternativa a Jina Reader: créditos por página en lugar de tokens > Alternativa a Jina Reader: créditos por página en vez de tokens desde 0,07 US$/1K páginas, comprueba robots.txt, sin KYC ni criptomonedas. Precios: 2026-10-22. - URL: https://webreaderapi.com/es/alternatives/jina-reader/ - Última actualización: 2026-10-22 - Editor: WebReaderAPI (https://webreaderapi.com) Jina Reader hizo famoso el truco del prefijo de URL: pon r.jina.ai/ delante de un enlace y obtienes Markdown. Esta página explica cómo factura Jina, cuándo es la herramienta adecuada y cuándo un precio por página es más fácil de planificar. **Respuesta rápida — ¿Cuál es una buena alternativa a Jina Reader?** Jina Reader cobra por tokens de salida: $50 por 1.000 millones, $500 por 11.000 millones, con 10 millones de tokens gratis por cada clave nueva para uso no comercial (consultado el 22 de octubre de 2026). **WebReaderAPI** cobra por página en su lugar, desde 0,07 US$/1K páginas, así que una página larga cuesta lo mismo que una corta. Comprueba robots.txt en cada lectura, vende créditos que nunca caducan y acepta criptomonedas sin KYC. ## Jina Reader y WebReaderAPI de un vistazo | | WebReaderAPI (el nuestro) | Jina Reader | | --- | --- | --- | | Cómo se llama | `GET https://webreaderapi.com/api/v1/read?url=…` con una clave API | Prefija el enlace: `https://r.jina.ai/` + URL; clave opcional | | Unidad de facturación | Páginas: 1 crédito, 2 con navegador | Tokens de salida | | Precio | 3,75 US$ por 10.000 páginas; desde 0,07 US$/1K páginas | $50 por 1.000 millones de tokens; $500 por 11.000 millones de tokens | | Uso gratuito | Ninguna | Sin clave a 20 solicitudes por minuto; 10 millones de tokens por cada clave nueva, solo para uso no comercial | | Límites de solicitudes | Límite de concurrencia que se muestra en el panel | 500 solicitudes por minuto con clave; 5.000 en premium | | robots.txt | Comprobado en cada lectura | Cabecera `X-Robots-Txt` opcional; valor predeterminado no especificado | | Rastrear un sitio completo | `POST /crawl`, hasta 10.000 páginas | No se indica ningún endpoint de rastreo | | PDF | Sí, hasta 100 páginas | Sí | | Pago | BTC, USDT, USDC, ETH, SOL, LTC | Tarjetas, Google Pay y PayPal a través de Stripe | | Propietario | SerpGoat LLC | Jina AI, parte de Elastic desde octubre de 2025 | *Precios comprobados el 22 de octubre de 2026.* Datos de Jina tomados de jina.ai/reader y de su panel de precios, consultados el 2026-10-22. ## ¿Cómo cobra Jina Reader y cuánto cuesta una página? Jina cuenta los tokens de la respuesta. Sus paquetes son $50 por 1.000 millones de tokens, unos $0,05 por millón, y $500 por 11.000 millones, unos $0,045 por millón. Las peticiones fallidas no se descuentan, y una página solicitada dos veces en menos de 5 minutos sale de la caché. El coste de una página depende, por tanto, de su longitud, y Jina no publica ninguna media. Como **estimación, suponiendo 5.000 tokens por página**, 1.000 páginas cuestan unos $0,25 en el primer paquete y $0,225 en el segundo. Un breve de noticias de 2.000 tokens cuesta menos que eso; una página de documentación de 20.000 tokens cuesta cuatro veces más. El OCR con jina-ocr-v1 cuesta 40 veces más tokens. ## ¿Cuándo es más fácil planificar con créditos por página? Cuando sabes cuántas páginas vas a leer pero no cuánto miden. Un rastreo (crawl) de un sitio de documentación, una lista de páginas de la competencia para vigilar o un agente que lee cinco enlaces por tarea tienen un número de páginas, no un número de tokens. Con WebReaderAPI, 100.000 páginas cuestan 21,75 US$, sea cual sea la longitud de cada página, a fecha de 22 de octubre de 2026. Las páginas que necesitan un navegador usan dos créditos, y el campo `rendered` indica cuándo ocurrió. Usa `max_chars` para limitar el tamaño de lo que se devuelve; protege la ventana de contexto de tu modelo, pero no cambia el precio. ## ¿Cuándo es Jina Reader la mejor opción? Elige Jina Reader cuando el tiempo de configuración importe más que todo lo demás, o cuando tus páginas sean cortas: - **Sin configuración.** Un prefijo de URL funciona sin clave a 20 peticiones por minuto, suficiente para pruebas y scripts pequeños. - **Páginas cortas.** Con facturación por tokens, una página corta cuesta menos que un precio por página; con la estimación de 5.000 tokens de arriba, Jina cuesta menos por página que nuestro pack 10.000 páginas. - **Control fino mediante headers.** `X-Target-Selector`, `X-Remove-Selector`, `X-Token-Budget`, `X-Engine` y otros moldean cada lectura. - **Modelos y búsqueda.** La salida de ReaderLM-v2 y la búsqueda `s.jina.ai` vienen de la misma cuenta. - **Un servidor MCP oficial** cuya herramienta `read_url` lee hasta cinco URLs por llamada. - **Código abierto.** La rama Reader en GitHub es Apache-2.0, sin la capa de almacenamiento alojada. Jina AI forma ahora parte de Elastic, que completó la adquisición el 9 de octubre de 2025. ## ¿Cómo se asignan los headers de Jina Reader a los parámetros de WebReaderAPI? La mayoría de las lecturas se trasladan cambiando la URL y añadiendo una clave. | Jina Reader | WebReaderAPI | Nota | |---|---|---| | `https://r.jina.ai/https://example.com` | `GET https://webreaderapi.com/api/v1/read?url=https://example.com` | Clave en el header `Authorization` | | Salida Markdown por defecto | `format=markdown` (por defecto) | Contenido principal por defecto | | `X-Engine: direct` | `render=false` | Lectura por HTTP simple | | Navegador headless por defecto | `render=auto` o `render=true` | 2 créditos cuando se ejecuta el navegador | | `X-Token-Budget` | `max_chars` | Caracteres, no tokens | | `X-Target-Selector`, `X-Remove-Selector` | — | Mejor detección de contenido principal | | `X-Proxy` (país) | `country` | +10 créditos, conexión residencial | | `X-No-Cache` | — | No guardamos caché | | `X-Robots-Txt` (opcional) | — | robots.txt se comprueba siempre | | Anulación con `X-User-Agent` | — | Nuestro User-Agent es fijo y está publicado | *Python: del prefijo r.jina.ai al endpoint de lectura* ```python import os import requests # Before: requests.get("https://r.jina.ai/" + url) url = "https://example.com/guide/install" resp = requests.get( "https://webreaderapi.com/api/v1/read", headers={"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]}, params={"url": url, "render": "auto", "max_chars": 30000}, timeout=90, ) resp.raise_for_status() page = resp.json() print(page["word_count"], "words, rendered:", page["rendered"], "credits:", page["credits_used"]) print(page["markdown"][:400]) ``` ## ¿Qué cambia para los sitios que lees? Con Jina, robots.txt solo se comprueba cuando envías el header `X-Robots-Txt`, y puedes anular el User-Agent del navegador; sus páginas no indican el valor por defecto de ninguna de las dos cosas. Con WebReaderAPI, ambos son fijos: cada lectura comprueba robots.txt para `WebReaderAPI` y para todos los robots, y cada petición lleva `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)`. Eso significa que algunas páginas que Jina puede leer se rechazarán aquí, sin coste para ti. A cambio, los dueños de los sitios pueden ver quién lee sus páginas y bloquearnos o permitirnos en una sola línea, como explica nuestra [página de rastreo](https://webreaderapi.com/es/bot/). ## ¿Cuánto cuesta WebReaderAPI en lugar de tokens? Un precio plano por página: 10.000 páginas por 3,75 US$ hasta 5.000.000 de páginas por 350 US$, a fecha de 22 de octubre de 2026. Los créditos nunca caducan. | Plan | Cantidad | Precio | Precio por unidad | | --- | --- | --- | --- | | Prueba | 10.000 páginas | 3,75 US$ | 0,38 US$/1K páginas | | Build | 100.000 páginas | 21,75 US$ | 0,22 US$/1K páginas | | Volume | 1.000.000 de páginas | 74,25 US$ | 0,07 US$/1K páginas | | Bulk | 5.000.000 de páginas | 350 US$ | 0,07 US$/1K páginas | En todos los planes: Extracción del contenido principal · Renderizado de JavaScript cuando es necesario · Las páginas fallidas y rechazadas no se cobran · Los créditos nunca caducan **Antes de pagar** - Recarga mínima 25 US$. Recarga una vez con criptomonedas y luego compra cualquier plan con tu saldo. - Tu saldo no tiene fecha de caducidad y puedes comprar créditos de página en cualquier momento. Si un pack cuesta menos que la recarga mínima, el importe que añadiste solo para alcanzar ese mínimo se puede devolver a petición dentro de los 30 días siguientes al pago, en USDT o USDC, siempre que no lo hayas gastado. Cualquier otro saldo no se reembolsa salvo que la ley indique lo contrario. - Se acredita en cuanto comprobamos tu pago en la blockchain. Tiempo habitual de confirmación de la red: BTC ≈ 20 min · USDT TRC-20 ≈ 1 min · USDT ERC-20 ≈ 5 min · USDC ERC-20 ≈ 5 min · ETH ≈ 5 min · SOL ≈ 1 min · LTC ≈ 15 min ## Alternativa a Jina Reader: preguntas frecuentes ### ¿Es gratis Jina Reader? En parte. Sin clave, r.jina.ai es gratis para uso básico a 20 peticiones por minuto. Cada clave nueva recibe además 10 millones de tokens gratis, que la página de precios de Jina limita a uso no comercial. Los paquetes de pago empiezan en $50 por 1.000 millones de tokens. ### ¿Por qué cuesta más una página de Jina Reader cuando la página es larga? Porque Jina factura los tokens de su respuesta. Un artículo largo devuelve más tokens que uno corto. WebReaderAPI factura un crédito por página, dos con navegador, sea cual sea la longitud. ### ¿Puedo pagar Jina Reader con criptomonedas? Las páginas de Jina mencionan Stripe con tarjetas, Google Pay y PayPal, y ninguna opción de criptomonedas. WebReaderAPI acepta BTC, USDT, USDC, ETH, SOL, LTC, sin KYC. ### ¿Tiene WebReaderAPI un modo gratuito sin clave como r.jina.ai? No. Cada lectura necesita una clave, y las claves vienen con un pack de pago. El pack más pequeño es 10.000 páginas por 3,75 US$. ### ¿Quién es ahora el propietario de Jina Reader? Elastic. Completó su adquisición de Jina AI el 9 de octubre de 2025, y la página legal de Jina indica que ahora se aplican los términos de procesamiento de datos de Elastic. ## Fuentes 1. [Reader](https://jina.ai/reader/) — Jina AI (read 2026-10-22) 2. [Panel de la API: precios](https://jina.ai/api-dashboard/pricing/) — Jina AI (read 2026-10-22) 3. [Legal](https://jina.ai/legal/) — Jina AI (read 2026-10-22) 4. [repositorio jina-ai/reader](https://github.com/jina-ai/reader) — GitHub (read 2026-10-22) 5. [repositorio jina-ai/MCP](https://github.com/jina-ai/MCP) — GitHub (read 2026-10-22) 6. [Elastic completa la adquisición de Jina AI](https://ir.elastic.co/News--Events/news/news-details/2025/Elastic-Completes-Acquisition-of-Jina-AI-a-Leader-in-Frontier-Models-for-Multimodal-and-Multilingual-Search/default.aspx) — Elastic (2025-10-09, read 2026-10-22) --- 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. --- # Las mejores API de web reader en 2026: 10 formas de convertir URLs a Markdown > Las mejores API de web reader y URL a Markdown en 2026: 10 opciones comparadas por precio por 1.000 páginas y JavaScript. Comprobado el 2026-10-22. - URL: https://webreaderapi.com/es/best/web-reader-apis/ - Última actualización: 2026-10-22 - Editor: WebReaderAPI (https://webreaderapi.com) Diez API alojadas y herramientas de código abierto que convierten páginas web en Markdown para modelos, comparadas con los mismos criterios a partir de sus propias páginas. Publicamos WebReaderAPI, que ocupa el primer puesto de esta lista; cada entrada indica en qué destaca mejor esa opción. **Respuesta rápida — ¿Cuál es la mejor API de web reader o de URL a Markdown en 2026?** Depende del trabajo. A 22 de octubre de 2026: **WebReaderAPI** para pagar con criptomonedas, sin KYC, con robots.txt respetado y créditos que nunca caducan, desde 0,07 US$/1K páginas; Firecrawl para el conjunto de funciones más completo a $0.99 por 1.000 páginas en su plan de $99; Jina Reader para lecturas sin configuración facturadas por tokens; Crawl4AI si prefieres alojarlo tú mismo bajo la licencia Apache-2.0. ## Las 10 mejores API de lector web en 2026 **Metodología.** Publicado por WebReaderAPI (SerpGoat LLC). Todos los proveedores se comparan con los mismos criterios, tomados de su propia web pública: precio de lista por 1.000 páginas para páginas simples y renderizadas en navegador, nivel gratuito y caducidad de los créditos, funciones de calidad de Markdown (contenido principal, PDF, rastreo), política de robots.txt, métodos de pago aceptados, incluidas criptomonedas, requisitos de identidad o tarjeta, la fecha en que se comprobaron los precios. *Precios comprobados el 22 de octubre de 2026.* ### 1. WebReaderAPI — Nuestro producto Una API de lector web para agentes de IA con créditos de prepago que nunca caducan, que se paga con criptomonedas sin KYC; su rastreador respeta robots.txt y nunca intenta saltarse una negativa. - Ideal para: Pagar con criptomonedas sin documentos; agentes y pipelines RAG que quieren un rastreo respetuoso - Precio: 0,38 US$/1K páginas en 10.000 páginas, 0,07 US$/1K páginas en 1.000.000 de páginas; las páginas renderizadas en navegador usan 2 créditos - KYC: Ninguna - Pago con criptomonedas: BTC, USDT, USDC, ETH, SOL, LTC - Ventajas: Los créditos nunca caducan - Ventajas: Páginas fallidas y rechazadas por robots.txt gratis - Ventajas: Código de herramientas para MCP, LangChain, LlamaIndex, OpenAI, n8n, OpenClaw - Desventajas: Sin nivel gratuito - Desventajas: Sin extracción de JSON estructurado ni acciones de página - Desventajas: Las páginas que un sitio rechaza siguen rechazadas ### 2. Firecrawl La API más conocida para convertir sitios en datos listos para LLM: web scraping, rastreo, map y extracción, con un gran ecosistema de código abierto y MCP. - Ideal para: Equipos que necesitan extracción estructurada, acciones de página y un ecosistema maduro - Precio: $3.80 por 1.000 en Hobby ($19 por 5.000); $0.99 en Standard ($99 por 100.000); $0.749 en Scale ($749 por 1 millón); JavaScript incluido - KYC: Ninguno indicado - Pago con criptomonedas: No (tarjetas, PayPal) - Ventajas: 1.000 créditos gratis al mes, sin tarjeta - Ventajas: Respeta robots.txt de forma predeterminada - Ventajas: Núcleo autoalojable (AGPL-3.0) - Desventajas: Los créditos del plan se renuevan cada mes - Desventajas: La extracción de JSON añade 4 créditos por página ### 3. Jina Reader Antepón r.jina.ai a una URL y obtén Markdown; se factura por tokens de salida y ahora forma parte de Elastic. - Ideal para: Lecturas rápidas sin configuración; páginas cortas - Precio: $50 por 1.000 millones de tokens de salida; $500 por 11.000 millones (el coste por página depende de la longitud de la página) - KYC: Ninguno indicado - Pago con criptomonedas: No indicado - Ventajas: Uso sin clave a 20 solicitudes por minuto - Ventajas: 10 millones de tokens gratis por cada clave nueva (no comercial) - Desventajas: La facturación por tokens hace que el coste de las páginas largas sea difícil de predecir - Desventajas: robots.txt solo mediante una cabecera opt-in ### 4. Crawl4AI El rastreador de código abierto más popular para LLM, con una nube alojada en lanzamiento suave. - Ideal para: Equipos que quieren autoalojar y controlarlo todo - Precio: Gratis para autohospedar; Cloud desde $10 (Starter), página simple 0.5 créditos, página con navegador 1 crédito - KYC: Sin tarjeta (Cloud) - Pago con criptomonedas: No indicado - Ventajas: Licencia Apache-2.0 - Ventajas: Servidor MCP autohospedado - Desventajas: Autohospedar implica servidores y mantenimiento - Desventajas: check_robots_txt está desactivado por defecto ### 5. Olostep Una API que renderiza cada página en un navegador, con lotes, rastreos y mapas, y pago por solicitud con criptomonedas para agentes. - Ideal para: Sitios con mucho JavaScript a gran volumen - Precio: $1.80 por 1,000 en Starter ($9 por 5,000); $0.399 en Scale ($399 por 1 millón), cada página renderizada - KYC: Tarjeta para recargas - Pago con criptomonedas: Por solicitud, USDC (x402) - Ventajas: Precio verificado más bajo de página con navegador a 1 millón al mes - Ventajas: Lotes, rastreos y mapas - Desventajas: Los créditos del plan se renuevan cada mes ### 6. Contenidos de Exa Contenido de páginas desde el índice de búsqueda de Exa a precio fijo, con pago por solicitud con criptomonedas para agentes. - Ideal para: Agentes que ya usan la búsqueda de Exa - Precio: $1.00 por 1,000 páginas, precio fijo - KYC: Tarjeta para pago por uso - Pago con criptomonedas: Por solicitud, USDC (x402) - Ventajas: $10 de crédito gratis al mes - Ventajas: x402 a $0.001 por página - Desventajas: Prioriza la caché; sin opción de navegador documentada ### 7. Tavily Extract Extracción desde el stack de búsqueda de Tavily, con precio por lote de URLs y un modo avanzado. - Ideal para: Agentes construidos en torno a la búsqueda de Tavily - Precio: $1.50 por 1,000 URLs básicas en Project ($30); $1.00 en Growth ($500); el modo avanzado lo duplica - KYC: Ninguno indicado - Pago con criptomonedas: Solo a su discreción (términos) - Ventajas: 1,000 créditos al mes gratis (5,000 URLs básicas) - Desventajas: Los créditos se renuevan cada mes - Desventajas: Política de robots.txt no indicada ### 8. ScrapingBee Una API de web scraping general con opción de salida en Markdown y precios bajos para páginas simples a gran volumen. - Ideal para: Grandes volúmenes de páginas simples - Precio: $0.099 por 1,000 páginas simples a 1 millón al mes ($99 Startup); las páginas con navegador cuestan 5 créditos - KYC: Tarjeta para planes de pago - Pago con criptomonedas: No - Ventajas: Precio bajo de página simple a gran volumen - Ventajas: Salida en Markdown y texto - Desventajas: Sin acumulación de créditos - Desventajas: Política de robots.txt no indicada ### 9. ZenRows Una API de web scraping con salida en Markdown incluida y una tienda para agentes que acepta USDC. - Ideal para: Cargas de trabajo pequeñas de agentes pagadas por uso - Precio: 0,50 $ por cada 1.000 páginas simples a través de su tienda para agentes; 0,199 $ a 1 millón en planes; las páginas de navegador cuestan 5 créditos - KYC: Validación de correo electrónico - Pago con criptomonedas: Solo agentes, USDC (x402) - Ventajas: Markdown sin coste adicional - Ventajas: 5.000 créditos gratis al mes - Desventajas: Las cuentas no pueden pagar con criptomonedas - Desventajas: Los créditos del plan caducan en la renovación ### 10. Cloudflare Browser Run El servicio de navegador de Cloudflare con endpoints /markdown y /crawl, facturado por tiempo de navegador. - Ideal para: Equipos que ya usan Cloudflare Workers - Precio: 0,09 $ por hora de navegador tras 10 horas incluidas, mínimo mensual de 5 $ - KYC: Cuenta de Cloudflare - Pago con criptomonedas: USDC a través de Stripe para la facturación de Cloudflare (una página de facturación lo omite) - Ventajas: /crawl respects robots.txt and always identifies itself as a bot - Ventajas: Paga por tiempo de navegador, no por página - Desventajas: El coste por página depende de cuánto tarde cada página *Aviso: esta página la publica WebReaderAPI. Los datos de los competidores provienen de sus sitios web públicos en la fecha indicada arriba y pueden haber cambiado desde entonces.* ## ¿Cómo elijo una API de lectura web? Empieza por tus páginas y luego por tu volumen. 1. **¿Tus páginas necesitan un navegador?** Las noticias, los blogs y la documentación normalmente no; las web apps y algunas tiendas sí. Las APIs de web scraping basadas en créditos cobran entre 5 y 10 veces más por las páginas de navegador, mientras que Firecrawl y Olostep cobran igual por cada página. 2. **¿Cuántas páginas al mes y con qué regularidad?** Los planes mensuales con grandes asignaciones encajan con un volumen estable; los créditos de prepago que no caducan encajan con agentes y rastreos puntuales. 3. **¿Necesitas extracción más allá de Markdown?** El JSON estructurado, las acciones de página y las capturas de pantalla son donde lideran Firecrawl y las grandes APIs de scraping. 4. **¿Cómo quieres tratar a los propietarios de los sitios?** Firecrawl, /crawl de Cloudflare y WebReaderAPI respetan robots.txt por defecto; varias APIs lo dejan a tu criterio o no lo indican. 5. **¿Cómo vas a pagar?** La mayoría solo acepta tarjetas. Scrape.do, Decodo y Scrapeless indican criptomonedas en las cuentas; Exa, Olostep y otras aceptan USDC por solicitud; WebReaderAPI acepta BTC, USDT, USDC, ETH, SOL, LTC sin KYC. ## ¿Debería autoalojar en lugar de pagar por una API? El self-hosting es gratuito en términos de licencia y costoso en tiempo. Crawl4AI (Apache-2.0), Microsoft MarkItDown (MIT), Trafilatura (Apache-2.0) y Mozilla Readability (Apache-2.0) cubren la conversión; aun así tienes que ejecutar los servidores, los navegadores headless, los reintentos y la gestión de robots.txt. El núcleo de Firecrawl también se puede autoalojar bajo la licencia AGPL-3.0. Para unos pocos miles de páginas al mes, una API alojada suele costar menos que el tiempo dedicado a mantener un rastreador. Nuestra página [Crawl4AI o API alojada](https://webreaderapi.com/es/compare/crawl4ai-vs-api/) expone el equilibrio entre ambas opciones. ## ¿Cuánto cuesta WebReaderAPI? Créditos de prepago, uno por página simple y dos por página de navegador; los créditos nunca caducan. Precios fijados el 22 de octubre de 2026. | Plan | Cantidad | Precio | Precio por unidad | | --- | --- | --- | --- | | Prueba | 10.000 páginas | 3,75 US$ | 0,38 US$/1K páginas | | Build | 100.000 páginas | 21,75 US$ | 0,22 US$/1K páginas | | Volume | 1.000.000 de páginas | 74,25 US$ | 0,07 US$/1K páginas | | Bulk | 5.000.000 de páginas | 350 US$ | 0,07 US$/1K páginas | En todos los planes: Extracción del contenido principal · Renderizado de JavaScript cuando es necesario · Las páginas fallidas y rechazadas no se cobran · Los créditos nunca caducan **Antes de pagar** - Recarga mínima 25 US$. Recarga una vez con criptomonedas y luego compra cualquier plan con tu saldo. - Tu saldo no tiene fecha de caducidad y puedes comprar créditos de página en cualquier momento. Si un pack cuesta menos que la recarga mínima, el importe que añadiste solo para alcanzar ese mínimo se puede devolver a petición dentro de los 30 días siguientes al pago, en USDT o USDC, siempre que no lo hayas gastado. Cualquier otro saldo no se reembolsa salvo que la ley indique lo contrario. - Se acredita en cuanto comprobamos tu pago en la blockchain. Tiempo habitual de confirmación de la red: BTC ≈ 20 min · USDT TRC-20 ≈ 1 min · USDT ERC-20 ≈ 5 min · USDC ERC-20 ≈ 5 min · ETH ≈ 5 min · SOL ≈ 1 min · LTC ≈ 15 min ## La mejor API de lectura web: preguntas frecuentes ### ¿Qué es mejor, Firecrawl o Jina Reader? Firecrawl encaja con equipos que necesitan rastreo, extracción estructurada y un precio predecible por página; Jina Reader encaja con lecturas rápidas sin configuración, facturadas por tokens. Nuestra [página Firecrawl vs Jina Reader](https://webreaderapi.com/es/compare/firecrawl-vs-jina-reader/) los compara línea por línea. ### ¿Qué API de lectura web respeta robots.txt? Firecrawl lo respeta por defecto, con una anulación solo en Enterprise; /crawl de Cloudflare lo respeta sin opción de exclusión documentada; WebReaderAPI lo respeta en cada solicitud. Jina lo convierte en una cabecera opcional, y muchas APIs de scraping no indican una política. ### ¿Existe una API gratuita de URL a Markdown? Varias tienen asignaciones gratuitas: Firecrawl 1.000 créditos al mes, Tavily 1.000 créditos al mes, Exa 10 $ al mes, ZenRows 5.000 créditos al mes y Jina 10 millones de tokens para uso no comercial. WebReaderAPI no tiene plan gratuito. ### ¿Es independiente esta clasificación? No. La publica WebReaderAPI, que figura en primer lugar. Cada opción se describe a partir de sus propias páginas públicas, leídas el 22 de octubre de 2026, con los mismos criterios, y cada entrada indica en qué destaca. ## Fuentes 1. [Precios de Firecrawl](https://www.firecrawl.dev/pricing) — Firecrawl (read 2026-10-22) 2. [Precios de la API de Jina](https://jina.ai/api-dashboard/pricing/) — Jina AI (read 2026-10-22) 3. [Crawl4AI](https://crawl4ai.com/) — Crawl4AI (read 2026-10-22) 4. [Repositorio de Crawl4AI](https://github.com/unclecode/crawl4ai) — GitHub (read 2026-10-22) 5. [Precios de Olostep](https://www.olostep.com/pricing) — Olostep (read 2026-10-22) 6. [Precios de Exa](https://exa.ai/pricing) — Exa (read 2026-10-22) 7. [Créditos de la API de Tavily](https://docs.tavily.com/documentation/api-credits) — Tavily (read 2026-10-22) 8. [Precios de ScrapingBee](https://www.scrapingbee.com/pricing/) — ScrapingBee (read 2026-10-22) 9. [Precios de ZenRows](https://docs.zenrows.com/first-steps/pricing.md) — ZenRows (read 2026-10-22) 10. [Precios de Browser Run](https://developers.cloudflare.com/browser-run/pricing/) — Cloudflare (read 2026-10-22) --- 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. --- # Bot de WebReaderAPI: user agent, robots.txt y cómo bloquearlo > WebReaderAPI: su user agent, su token de robots.txt, cómo bloquearlo o ralentizarlo y lo que nunca hace. Para propietarios de sitios y herramientas de IA. - URL: https://webreaderapi.com/es/bot/ - Última actualización: 2026-10-22 - Editor: WebReaderAPI (https://webreaderapi.com) Si viste nuestro nombre en los logs de tu servidor, esta página explica quiénes somos, por qué accedimos a tu página y cómo pedirnos que no lo hagamos. Cada regla que ves aquí es un compromiso sobre el que está construido el servicio. **Respuesta rápida — ¿Qué es el bot de WebReaderAPI y cómo lo bloqueo?** El bot **WebReaderAPI** accede a páginas públicas cuando uno de nuestros clientes pide a la API que las lea. Envía el user agent `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)` y obedece las reglas de robots.txt escritas para el token `WebReaderAPI` o para todos los robots. Para bloquearlo en todo tu sitio, añade a tu robots.txt `User-agent: WebReaderAPI` seguido de `Disallow: /`. ## El bot de un vistazo | Atributo | Valor | | --- | --- | | Cabecera User-Agent | `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)` | | Token de robots.txt | `WebReaderAPI` | | robots.txt | Respetamos robots.txt: nuestro rastreador se identifica como WebReaderAPI, sigue las reglas escritas para él o para todos los robots y no lee una página que un sitio prohíbe. Las páginas rechazadas no se cobran | | Señales de preferencia de IA | Si un sitio declara Content-Signal: ai-input=no en su robots.txt, no leemos sus páginas para ti | | Cuando un sitio dice no | 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 | | Copias de tus páginas | No se conserva ninguna después de enviar la respuesta al cliente | | Trabajos de rastreo (crawl) | Rastrea un sitio web por trabajo, hasta 10.000 páginas, siguiendo su sitemap, su robots.txt y su Crawl-delay | | Contacto | abuse@webreaderapi.com | ## ¿Por qué WebReaderAPI accedió a mi página? Porque un cliente de la API lo pidió. WebReaderAPI no crea su propio índice de la web ni navega por iniciativa propia. Cada acceso corresponde a uno de estos tres tipos de solicitud: - **Una lectura individual:** una aplicación o un agente de IA envió tu URL a `/read`, normalmente porque una persona hizo una pregunta que tu página responde. - **Un trabajo por lotes:** un cliente envió una lista de hasta 100 URL y la tuya estaba en ella. - **Un trabajo de rastreo (crawl):** un cliente nos pidió leer un sitio entero, partiendo de una dirección y sin salir de ese dominio. Los rastreos siguen tu sitemap y tu robots.txt. El cliente recibe el texto principal de la página en Markdown. Después no conservamos ninguna copia. ## ¿Cómo bloqueo el bot en todo mi sitio? Añade un grupo para nuestro token a tu archivo robots.txt. El bot lee `/robots.txt` antes de acceder a una página y lo guarda en caché como máximo 24 horas, así que un cambio se aplica como tarde en un día. *robots.txt: denegar todas las páginas a WebReaderAPI* ```text User-agent: WebReaderAPI Disallow: / ``` ## ¿Puedo bloquear solo una parte de mi sitio o ralentizar el bot? Sí. Indica las carpetas que quieres excluir bajo `Disallow` y define un `Crawl-delay` en segundos para los trabajos de rastreo. Las reglas escritas para todos los robots (`User-agent: *`) también se nos aplican cuando no tienes un grupo para nuestro token. Si lo tienes, prevalece ese grupo, tal como describe la RFC 9309. *robots.txt: excluir dos carpetas y espaciar las solicitudes de rastreo* ```text User-agent: WebReaderAPI Disallow: /account/ Disallow: /drafts/ Crawl-delay: 5 ``` ## ¿El bot respeta las señales de preferencia de IA? Sí, las que un sitio declara en robots.txt. Si tu archivo declara `Content-Signal: ai-input=no`, lo interpretamos como una negativa a que tus páginas se usen como entrada para respuestas de IA, y no las leemos para nuestros clientes. La API devuelve entonces el error `blocked_by_site_policy` al cliente, que no paga nada. *robots.txt: permitir buscadores, denegar la entrada a la IA* ```text User-agent: * Content-Signal: search=yes, ai-input=no Allow: / ``` ## ¿Qué hace el bot cuando mi sitio lo rechaza? Se detiene y comunica tu respuesta. Un estado 403 o 429, una página de desafío, un formulario de inicio de sesión o un paywall ponen fin a la solicitud. El cliente recibe el error `target_refused` con tu código de estado y no se le cobra. El bot nunca resuelve desafíos, nunca inicia sesión, nunca cambia su user agent para parecer un navegador y nunca reintenta disfrazado. Si quieres que leamos tus páginas, permite el token en robots.txt y deja pasar las solicitudes; si no, no tienes que hacer nada más por tu parte. ## ¿Qué no promete todavía WebReaderAPI? Hoy no publicamos una lista de direcciones IP, así que identifica el bot por su user agent y su comportamiento con robots.txt, no por IP. Las páginas leídas con la opción `country` salen desde una dirección del país elegido, siempre con el mismo user agent. Añadiremos nuestros rangos de direcciones a esta página cuando estén fijados, con la fecha del cambio. ## ¿Cómo informo de un problema con el bot? Escribe a abuse@webreaderapi.com con la fecha y la hora, tu dominio, la URL consultada y una línea de tu log de acceso que muestre nuestro user agent. Una persona lee cada informe y lo contrasta con nuestros logs. Si un cliente usa la API incumpliendo nuestra [Política de uso aceptable](https://webreaderapi.com/es/acceptable-use/), su cuenta se suspende. Para comprobar si una solicitud vino realmente de nosotros, compara el user agent y el comportamiento con robots.txt con esta página. Un cliente que ignora tus reglas de robots.txt usando nuestro nombre no es nuestro bot. ## Preguntas de propietarios de sitios ### ¿El bot de WebReaderAPI es un rastreador de buscadores? No. No indexa la web ni posiciona páginas. Solo lee una página cuando un cliente de la API la pide, en una solicitud individual, un lote o un rastreo de un solo sitio. ### ¿Bloquear el bot afectará a mi posicionamiento en Google o Bing? No. Las reglas escritas para `WebReaderAPI` solo afectan a nuestro bot. Los rastreadores de los buscadores siguen sus propios grupos en tu robots.txt. ### ¿Cuánto tarda en aplicarse un cambio en robots.txt? Como tarde, 24 horas. El bot guarda robots.txt en caché como máximo un día antes de volver a leerlo. ### ¿El bot respeta Crawl-delay? Sí, en los trabajos de rastreo (crawl), que leen muchas páginas de un mismo sitio. Una lectura individual es una sola solicitud y no se espacia. ### ¿Almacenan o venden el contenido de mis páginas? No. El texto de la página va al cliente que lo solicitó y nosotros no lo guardamos. Nuestros logs conservan el nombre del host, la hora, el estado y los créditos usados, durante 30 días. --- 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. --- # Registro de cambios > Changelog de WebReaderAPI: cambios fechados en la API de lectura web, precios, reglas de rastreo y políticas. Primera entrada: sitio y documentación publicados. - URL: https://webreaderapi.com/es/changelog/ - Última actualización: 2026-10-22 - Editor: WebReaderAPI (https://webreaderapi.com) Los cambios en la API, los precios, el comportamiento del rastreador (crawler) y las políticas se listan aquí, del más reciente al más antiguo. Un cambio en una promesa hecha en otra parte del sitio también aparece aquí. **Respuesta rápida — ¿Qué ha cambiado en WebReaderAPI?** El 22 de octubre de 2026, **WebReaderAPI** publicó su sitio web, documentación, precios y políticas. La API en sí aún no está abierta; su lanzamiento será la próxima entrada de esta página. Los precios empiezan en 3,75 US$ por 10.000 páginas y bajan a 0,07 US$/1K páginas en el pack más grande. ## 22 de octubre de 2026: sitio y documentación publicados - **Sitio web, precios y políticas** en línea: [precios](https://webreaderapi.com/es/pricing/), [términos](https://webreaderapi.com/es/terms/), [privacidad](https://webreaderapi.com/es/privacy/), [uso aceptable](https://webreaderapi.com/es/acceptable-use/) y [reembolsos](https://webreaderapi.com/es/refunds/). - **Documentación** para los endpoints `/read`, `/batch`, `/crawl` y `/credits`, con código para Python, Node.js y curl. - **Reglas de rastreo (crawl)** publicadas en la [página del bot](https://webreaderapi.com/es/bot/): user agent `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)`, token de robots.txt `WebReaderAPI`, respeto de `ai-input=no`. - **Estado de la API:** lanzamiento pendiente. Hasta que aparezca aquí la entrada del lanzamiento, no se puede comprar ninguna clave API. ## ¿Qué cuenta como un cambio digno de una entrada fechada? Cualquier cosa con la que un cliente o el dueño de un sitio pueda contar: - un nuevo endpoint, parámetro o campo de respuesta; - un campo renombrado o eliminado (lo que solo ocurre en una nueva versión de la API, como `/api/v2/`); - un precio, una regla de créditos o una regla de reembolso; - un cambio en cómo se identifica el rastreador (crawler) o trata robots.txt; - un incidente que afectó a las solicitudes, con su ventana temporal. ## ¿Cómo se gestionan los cambios de precio? Un nuevo precio se aplica a los packs comprados después de publicarse aquí. Los créditos que ya tienes conservan su valor: se cuentan en páginas, no en dólares, y Los créditos prepago nunca caducan: las páginas sin usar permanecen en tu cuenta hasta que las uses. ## ¿Qué tan estable es la versión 1 de la API? Dentro de la versión 1, podemos añadir campos y parámetros, nunca renombrarlos ni eliminarlos. El código que lee los campos documentados en el [formato de respuesta](https://webreaderapi.com/es/docs/response/) sigue funcionando. Un cambio que rompa la compatibilidad iría a una nueva versión, anunciada aquí antes de entrar en producción. ## ¿Cómo sigo los cambios? Consulta esta página, o lee su versión en Markdown, que [llms.txt](https://webreaderapi.com/llms.txt) lista junto con las demás páginas del sitio. Cada entrada conserva su fecha, así puedes ver qué cambió desde tu última visita. Las preguntas van a support@webreaderapi.com. --- 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. --- # ¿Crawl4AI o una API alojada? Cuándo ejecutar tu propio lector web > ¿Crawl4AI o una API alojada para convertir web a Markdown? Licencias, robots.txt, coste de autoalojamiento y precios de APIs consultados el 2026-10-22. - URL: https://webreaderapi.com/es/compare/crawl4ai-vs-api/ - Última actualización: 2026-10-22 - Editor: WebReaderAPI (https://webreaderapi.com) Las herramientas de código abierto pueden convertir páginas web a Markdown gratis, en tus propios servidores. Las APIs alojadas cobran por página y ejecutan los servidores por ti. Esta página expone cuánto cuesta realmente cada opción, desde las licencias y los valores por defecto de robots.txt hasta los navegadores y el mantenimiento. **Respuesta rápida — ¿Debería autoalojar Crawl4AI o usar una API de lectura web alojada?** Autoaloja Crawl4AI (Apache-2.0, con requisito de atribución) cuando tengas un volumen estable y personas para ejecutar navegadores y servidores; ten en cuenta que su comprobación de robots.txt está desactivada por defecto. Usa una API alojada cuando el volumen sea irregular o no quieras trabajo de operaciones: Crawl4AI Cloud empieza en $10 por 10.000 créditos, y **WebReaderAPI** en 3,75 US$ por 10.000 páginas, pagado con criptomonedas y sin KYC (22 de octubre de 2026). ## ¿Qué herramientas de código abierto convierten páginas web a Markdown? Las principales opciones en octubre de 2026, con la licencia y los valores por defecto que indican sus propios repositorios y documentación. | Herramienta | Licencia | Renderiza JavaScript | robots.txt por defecto | Servidor MCP | | --- | --- | --- | --- | --- | | Crawl4AI | Apache-2.0, más un requisito de atribución en el README | Sí (Playwright) | Desactivado: `check_robots_txt` tiene False por defecto | Sí, en tu propio servidor | | Firecrawl (autoalojado) | Núcleo AGPL-3.0; SDKs y algunas partes de la UI con MIT | Sí (servicio Playwright) | Activado | Sí (firecrawl-mcp-server, MIT) | | Microsoft MarkItDown | MIT | No | No documentado | Sí (markitdown-mcp) | | Trafilatura | Apache-2.0 (GPLv3+ antes de la v1.8.0) | No | Su spider sigue el Estándar de Exclusión de Robots | Ninguno mencionado | | Mozilla Readability | Apache-2.0 | No; necesita un DOM y no hace la petición | No aplica | No se encontró ninguno | | Jina Reader (rama de código abierto) | Apache-2.0 | Sí (Puppeteer) | No mencionado | No está en el repositorio | *Precios comprobados el 22 de octubre de 2026.* De los repositorios de GitHub y la documentación que se indican abajo, leídos el 2026-10-22. ## ¿Cuánto cuesta de verdad autohospedar un lector web? El software es gratis; ejecutarlo no lo es. Antes de comparar un precio alojado con cero, cuenta esto: - **Servidores y navegadores.** Las páginas estáticas necesitan poca CPU, pero las páginas con JavaScript necesitan un navegador headless por petición, con la memoria correspondiente. Los picos exigen capacidad extra que se queda inactiva el resto del tiempo. - **Mantenimiento.** Las versiones de navegador, las reglas de extracción y las dependencias cambian. Crawl4AI publicó la v0.9.5 el 14 de octubre de 2026; MarkItDown la 0.1.9 el 21 de octubre de 2026. Alguien tiene que probar y desplegar cada actualización. - **Red.** El ancho de banda de salida, el DNS, los timeouts y los reintentos son cosa tuya. Los sitios pueden rechazar el tráfico de las direcciones de tus servidores, y la respuesta correcta entonces es respetar el rechazo. - **Política.** Crawl4AI deja `check_robots_txt` desactivado a menos que lo actives, y te permite fijar o aleatorizar el user agent. Decidir y aplicar tus propias reglas de robots.txt e identificación forma parte del trabajo. - **Seguridad.** El README de MarkItDown advierte de que realiza E/S con los privilegios del proceso actual y de que las entradas deben sanearse en entornos no confiables. Un servicio que obtiene URLs arbitrarias también debe rechazar direcciones privadas y locales. ## ¿Cuánto cobran los lectores alojados en comparación? Las APIs alojadas convierten esos costos en un precio por página. Dos ejemplos del 22 de octubre de 2026: | | Crawl4AI Cloud | WebReaderAPI (el nuestro) | |---|---|---| | Entrada | Starter $10 al mes, 10,000 créditos | 3,75 US$ por 10.000 páginas | | Página estática | 0.5 créditos | 1 crédito | | Página con navegador | 1 crédito ("real browser") | 2 créditos | | Planes mayores | Builder $99 por 125,000 créditos; Scale $499 por 750,000 | 74,25 US$ por 1.000.000 de páginas; 350 US$ por 5.000.000 de páginas | | Créditos sin usar | Los créditos mensuales no se acumulan; los créditos extra nunca caducan | Nunca caducan | | Pago | Tarjeta a través de Stripe | BTC, USDT, USDC, ETH, SOL, LTC | | robots.txt | Los clientes deben respetar las directivas robots de los sitios (términos) | El servicio lo comprueba en cada lectura | Crawl4AI Cloud lo gestionan los mantenedores de Crawl4AI y marca sus precios como "soft launch", que pueden cambiar. Su crédito vale $0.001, así que una página estática cuesta $0.50 por 1,000 en Starter. ## ¿Cuándo me conviene autohospedar? Autohospedar sale a cuenta cuando se dan tres cosas: tu volumen es alto y constante, ya ejecutas servidores y navegadores, y necesitas un control que una API no te puede dar. - **Extracción personalizada.** Los esquemas CSS, XPath y LLM de Crawl4AI, o tus propias reglas sobre Readability o Trafilatura. - **Residencia de datos.** Las páginas nunca salen de tu infraestructura. - **Entradas más allá de páginas web.** MarkItDown convierte Word, Excel, PowerPoint, EPub y más, algo que una API de lector web no hace. - **Encaje de licencia.** Las herramientas Apache-2.0 y MIT permiten productos cerrados; el núcleo AGPL-3.0 de Firecrawl te pide compartir los cambios si lo ofreces como servicio de red. ## ¿Cuándo es mejor opción una API alojada? Compra páginas en lugar de ejecutar servidores cuando tu carga de trabajo es irregular, tu equipo es pequeño o el lector es una herramienta dentro de un agente y no un producto en sí mismo. - **Volumen irregular o estacional.** Un rastreo dos veces al año no justifica una flota de navegadores. Con WebReaderAPI, Los créditos prepago nunca caducan: las páginas sin usar permanecen en tu cuenta hasta que las uses. - **Agentes.** Un endpoint alojado se conecta a MCP, LangChain o las herramientas de OpenAI en minutos; consulta [nuestro servidor MCP](https://webreaderapi.com/es/docs/mcp/). - **Una política que no tienes que construir.** Respetamos robots.txt: nuestro rastreador se identifica como WebReaderAPI, sigue las reglas escritas para él o para todos los robots y no lee una página que un sitio prohíbe. Las páginas rechazadas no se cobran. Si un sitio declara Content-Signal: ai-input=no en su robots.txt, no leemos sus páginas para ti. - **Pago sin tarjeta.** WebReaderAPI acepta BTC, USDT, USDC, ETH, SOL, LTC sin KYC. ## ¿Puedo combinar ambos? Sí, y muchos equipos lo hacen. Ejecuta un conversor de código abierto para los archivos que ya tienes, como PDFs y documentos de Office con MarkItDown, y llama a un lector alojado para páginas web en vivo, sobre todo páginas con JavaScript que de otro modo requerirían tus propios navegadores. Mantén el mismo formato de salida en ambos lados, Markdown con una URL de origen y un título, para que tu código de chunking e indexación no dependa de dónde vino un documento. Nuestra [guía de RAG](https://webreaderapi.com/es/use-cases/rag/) muestra ese formato en la práctica. ## ¿Cuánto cuesta un lector alojado con WebReaderAPI? Créditos por página pagados con criptomonedas, a fecha del 22 de octubre de 2026: 1 crédito por página estática, 2 con navegador, nada por páginas fallidas o rechazadas. Los créditos nunca caducan. | Plan | Cantidad | Precio | Precio por unidad | | --- | --- | --- | --- | | Prueba | 10.000 páginas | 3,75 US$ | 0,38 US$/1K páginas | | Build | 100.000 páginas | 21,75 US$ | 0,22 US$/1K páginas | | Volume | 1.000.000 de páginas | 74,25 US$ | 0,07 US$/1K páginas | | Bulk | 5.000.000 de páginas | 350 US$ | 0,07 US$/1K páginas | En todos los planes: Extracción del contenido principal · Renderizado de JavaScript cuando es necesario · Las páginas fallidas y rechazadas no se cobran · Los créditos nunca caducan **Antes de pagar** - Recarga mínima 25 US$. Recarga una vez con criptomonedas y luego compra cualquier plan con tu saldo. - Tu saldo no tiene fecha de caducidad y puedes comprar créditos de página en cualquier momento. Si un pack cuesta menos que la recarga mínima, el importe que añadiste solo para alcanzar ese mínimo se puede devolver a petición dentro de los 30 días siguientes al pago, en USDT o USDC, siempre que no lo hayas gastado. Cualquier otro saldo no se reembolsa salvo que la ley indique lo contrario. - Se acredita en cuanto comprobamos tu pago en la blockchain. Tiempo habitual de confirmación de la red: BTC ≈ 20 min · USDT TRC-20 ≈ 1 min · USDT ERC-20 ≈ 5 min · USDC ERC-20 ≈ 5 min · ETH ≈ 5 min · SOL ≈ 1 min · LTC ≈ 15 min ## Autohospedar un lector web: preguntas frecuentes ### ¿Crawl4AI es gratis para uso comercial? Su README dice que tiene licencia Apache-2.0, que permite el uso comercial, y añade que los usuarios deben incluir una atribución, ya sea un badge o una línea de texto. Lee la licencia y el README tú mismo antes de publicar. ### ¿Crawl4AI respeta robots.txt? Solo si se lo pides. Su parámetro `check_robots_txt` tiene False por defecto; ponlo en True para comprobar y cachear las reglas de robots.txt antes de rastrear. También puedes fijar o aleatorizar el user agent, así que tu propia política decide cómo se comporta. ### ¿Puedo autohospedar Firecrawl en lugar de Crawl4AI? Sí. El núcleo de Firecrawl es de código abierto bajo AGPL-3.0 y respeta robots.txt por defecto. La AGPL te pide publicar los cambios cuando ofreces el software como servicio de red, lo cual importa para productos comerciales. ### ¿Qué herramienta convierte PDFs y archivos de Office? Microsoft MarkItDown, bajo la licencia MIT, convierte PDF, Word, PowerPoint, Excel, HTML, EPub y más a Markdown. No renderiza páginas con JavaScript. WebReaderAPI lee PDFs desde una URL, hasta 100 páginas. ### ¿Cuánto cuesta Crawl4AI Cloud? El 22 de octubre de 2026: Starter $10 al mes por 10.000 créditos, Builder $99 por 125.000 y Scale $499 por 750.000, con una página estática a 0,5 créditos y una página con navegador a 1. El sitio marca estos precios como un lanzamiento suave que puede cambiar. ## Fuentes 1. [repositorio unclecode/crawl4ai](https://github.com/unclecode/crawl4ai) — GitHub (read 2026-10-22) 2. [Parámetros de Crawl4AI](https://docs.crawl4ai.com/api/parameters/) — Crawl4AI docs (read 2026-10-22) 3. [Crawl4AI autoalojado](https://docs.crawl4ai.com/core/self-hosting/) — Crawl4AI docs (read 2026-10-22) 4. [crawl4ai en PyPI](https://pypi.org/project/crawl4ai/) — PyPI (read 2026-10-22) 5. [Crawl4AI Cloud](https://crawl4ai.com/) — Crawl4AI (read 2026-10-22) 6. [repositorio microsoft/markitdown](https://github.com/microsoft/markitdown) — GitHub (read 2026-10-22) 7. [markitdown en PyPI](https://pypi.org/project/markitdown/) — PyPI (read 2026-10-22) 8. [repositorio adbar/trafilatura](https://github.com/adbar/trafilatura) — GitHub (read 2026-10-22) 9. [repositorio mozilla/readability](https://github.com/mozilla/readability) — GitHub (read 2026-10-22) 10. [repositorio firecrawl/firecrawl](https://github.com/firecrawl/firecrawl) — GitHub (read 2026-10-22) 11. [repositorio jina-ai/reader](https://github.com/jina-ai/reader) — GitHub (read 2026-10-22) --- 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. --- # Firecrawl vs Jina Reader (2026): ¿qué lector web encaja con tu proyecto? > Firecrawl vs Jina Reader en 2026: créditos por página vs tokens, planes gratuitos, rastreo, JSON, robots.txt y pago. Comprobado el 22/10/2026. - URL: https://webreaderapi.com/es/compare/firecrawl-vs-jina-reader/ - Última actualización: 2026-10-22 - Editor: WebReaderAPI (https://webreaderapi.com) Firecrawl y Jina Reader son los dos nombres que aparecen primero cuando los desarrolladores preguntan cómo convertir páginas web a Markdown para un modelo. Facturan, rastrean y tratan robots.txt de forma distinta. Esta página los compara con los mismos datos, con nuestro propio servicio en una columna aparte y señalada. **Respuesta rápida — ¿Firecrawl o Jina Reader? ¿Cuál debería usar?** Usa Firecrawl para pipelines completos: factura 1 crédito por página con el renderizado incluido, rastrea y mapea sitios, y extrae JSON según un esquema, en planes de $19 a $749 al mes (22 de octubre de 2026). Usa Jina Reader para lecturas rápidas: antepón r.jina.ai a una URL, paga $50 por cada mil millones de tokens de salida, o nada con 20 solicitudes por minuto. **WebReaderAPI**, que publica esta página, vende créditos por página con criptomonedas y sin KYC. ## Firecrawl vs Jina Reader, con WebReaderAPI como referencia Cada fila procede de las propias páginas del proveedor, leídas el 22 de octubre de 2026. La tercera columna es nuestro servicio, publicado por un competidor de ambos. | | Firecrawl | Jina Reader | WebReaderAPI (el nuestro) | | --- | --- | --- | --- | | Unidad de facturación | Créditos: 1 por página, renderizado incluido | Tokens de salida | Créditos: 1 por página, 2 con navegador | | Precio de entrada | Hobby: $19 al mes por 5.000 créditos | $50 por 1B de tokens | 3,75 US$ por 10.000 páginas | | Volúmenes mayores | Standard $99 por 100K; Scale $749 por 1M al mes | $500 por 11B de tokens | 74,25 US$ por 1.000.000 de páginas | | Uso gratuito | 1.000 créditos al mes, sin tarjeta; MCP sin clave, limitado por IP cada día | Sin clave a 20 solicitudes por minuto; 10M de tokens por clave nueva, no comercial | Ninguna | | Créditos sin usar | Los créditos del plan se renuevan cada mes | Validez no indicada en el texto que pudimos leer | Nunca caducan | | Rastreo (crawl) y map | Crawl (límite predeterminado de 10.000 páginas) y map | No se indica ningún endpoint de rastreo | Crawl de hasta 10.000 páginas; sin map | | Extracción estructurada | JSON con un esquema, +4 créditos por página | Esquema JSON o cabeceras de instrucciones | No disponible | | robots.txt | Se respeta por defecto; solo se puede desactivar en Enterprise | Cabecera `X-Robots-Txt` opcional | Siempre se respeta | | Pago | Tarjetas, tarjetas de débito, PayPal (Stripe) | Tarjetas, Google Pay, PayPal (Stripe) | BTC, USDT, USDC, ETH, SOL, LTC | | Código abierto | Núcleo bajo AGPL-3.0 | Rama del Reader bajo Apache-2.0 | No | | Empresa | Firecrawl; ronda Serie B de $75M el 22 de septiembre de 2026 | Jina AI, parte de Elastic desde octubre de 2025 | SerpGoat LLC | *Precios comprobados el 22 de octubre de 2026.* Fuentes al final de la página. ## ¿Cuál cuesta menos por página? Depende de la longitud de la página y del volumen, porque los dos facturan en unidades distintas. Firecrawl cobra por página: $0.99 por 1.000 páginas en Standard, $0.749 en Scale con facturación mensual, renderizado incluido. Jina cobra por token de salida y no publica un promedio por página. Como **estimación, suponiendo 5.000 tokens por página**, Jina cuesta unos $0.25 por 1.000 páginas en su paquete de $50 y $0.225 en el de $500. Con esa suposición, Jina cuesta menos por página que Firecrawl en todos los volúmenes. En páginas mucho más largas que 5.000 tokens, como páginas de documentación extensas, la diferencia se reduce o se invierte; en páginas cortas se amplía. La extracción JSON de Firecrawl suma 4 créditos por página, lo que cambia la comparación para trabajos de extracción. ## ¿Cuál es mejor para rastrear un sitio entero? Firecrawl. Su endpoint de rastreo sigue el sitemap por defecto, acepta un límite de páginas (10.000 por defecto) y una profundidad de descubrimiento, y devuelve 402 si tus créditos no cubren el límite. Un endpoint map aparte lista las URLs de un sitio por un crédito por llamada. Jina Reader es un lector de una sola URL más un endpoint de búsqueda; sus páginas no indican ninguna función de rastreo. Para leer un sitio entero con Jina, reúnes tú mismo las URLs, por ejemplo desde el sitemap, y llamas al lector una vez por página. ## ¿Cómo tratan robots.txt y a los dueños de los sitios? Firecrawl respeta robots.txt por defecto y solo los clientes Enterprise pueden desactivarlo; los dueños de los sitios lo permiten o lo rechazan con el token `FirecrawlAgent`. Su documentación advierte que este token puede no ser la cabecera User-Agent de la propia petición. Jina comprueba robots.txt cuando la petición lleva la cabecera `X-Robots-Txt`, que indica con qué bot hay que comprobarlo. También permite al llamador sobrescribir el User-Agent del navegador. Sus páginas no indican el valor por defecto de ninguno de los dos. Ambos enfoques dejan gran parte de la elección en manos del cliente; el nuestro no, como explica la siguiente sección. ## ¿Cuál encaja mejor con agentes de IA? Los dos sirven bien a los agentes, de formas distintas. Firecrawl ofrece un servidor MCP alojado, acceso sin clave con un límite diario por IP y una larga lista de integraciones, entre ellas LangChain, LlamaIndex, CrewAI y n8n; OpenClaw incluye Firecrawl como su proveedor web_fetch. Jina ofrece un servidor MCP remoto oficial cuya herramienta `read_url` lee hasta cinco URLs por llamada, una credencial de n8n y el prefijo de URL que puede usar cualquier herramienta capaz de hacer una petición GET. Para un agente que lee unas pocas páginas por tarea, el prefijo de Jina es el inicio más sencillo; para un agente que rastrea, mapea y extrae, Firecrawl cubre más. ## ¿Dónde encaja WebReaderAPI entre los dos? WebReaderAPI está más cerca de Jina en alcance, un lector, y más cerca de Firecrawl en facturación, por página, con un endpoint de rastreo para sitios enteros. Lo que lo distingue es el pago y la política más que la lista de funciones: - **Criptomonedas sin KYC.** Recarga desde 25 US$ en BTC, USDT, USDC, ETH, SOL, LTC. - **Créditos que no caducan**, vendidos en packs desde 3,75 US$. - **Una política fija para los sitios.** Respetamos robots.txt: nuestro rastreador se identifica como WebReaderAPI, sigue las reglas escritas para él o para todos los robots y no lee una página que un sitio prohíbe. Las páginas rechazadas no se cobran. 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. Hace menos que Firecrawl: sin extracción JSON, sin acciones de navegador, sin map, sin plan gratuito. Lee las páginas [alternativa a Firecrawl](https://webreaderapi.com/es/alternatives/firecrawl/) y [alternativa a Jina Reader](https://webreaderapi.com/es/alternatives/jina-reader/) para ver los detalles de cada cambio. ## ¿Cuál debería elegir para mi caso de uso? - **Prototipo o agente de hobby:** Jina Reader sin clave, o el plan gratuito de Firecrawl. - **RAG sobre sitios de documentación:** Firecrawl para rastreo y map; WebReaderAPI si quieres créditos por página que no caducan y pago con criptomonedas. - **Extracción a campos fijos:** el formato JSON de Firecrawl. - **Muchas páginas cortas de noticias o blogs:** la facturación por tokens de Jina suele costar menos. - **Respeto estricto de las decisiones de los dueños de los sitios, aplicado por el proveedor:** WebReaderAPI. - **Sin tarjeta y sin documentos de identidad:** WebReaderAPI; ni Firecrawl ni Jina indican una opción de pago con criptomonedas en las páginas que leímos. ## ¿Cuánto cuesta la tercera opción? Packs por página pagados con criptomonedas, a fecha del 22 de octubre de 2026. Una página que necesita navegador usa dos créditos; las páginas fallidas y las rechazadas por robots.txt son gratis. | Plan | Cantidad | Precio | Precio por unidad | | --- | --- | --- | --- | | Prueba | 10.000 páginas | 3,75 US$ | 0,38 US$/1K páginas | | Build | 100.000 páginas | 21,75 US$ | 0,22 US$/1K páginas | | Volume | 1.000.000 de páginas | 74,25 US$ | 0,07 US$/1K páginas | | Bulk | 5.000.000 de páginas | 350 US$ | 0,07 US$/1K páginas | En todos los planes: Extracción del contenido principal · Renderizado de JavaScript cuando es necesario · Las páginas fallidas y rechazadas no se cobran · Los créditos nunca caducan **Antes de pagar** - Recarga mínima 25 US$. Recarga una vez con criptomonedas y luego compra cualquier plan con tu saldo. - Tu saldo no tiene fecha de caducidad y puedes comprar créditos de página en cualquier momento. Si un pack cuesta menos que la recarga mínima, el importe que añadiste solo para alcanzar ese mínimo se puede devolver a petición dentro de los 30 días siguientes al pago, en USDT o USDC, siempre que no lo hayas gastado. Cualquier otro saldo no se reembolsa salvo que la ley indique lo contrario. - Se acredita en cuanto comprobamos tu pago en la blockchain. Tiempo habitual de confirmación de la red: BTC ≈ 20 min · USDT TRC-20 ≈ 1 min · USDT ERC-20 ≈ 5 min · USDC ERC-20 ≈ 5 min · ETH ≈ 5 min · SOL ≈ 1 min · LTC ≈ 15 min ## Firecrawl vs Jina Reader: preguntas frecuentes ### ¿Jina Reader es gratis y Firecrawl es de pago? Los dos tienen uso gratuito. Jina Reader funciona sin clave a 20 peticiones por minuto, y cada clave nueva recibe 10 millones de tokens para uso no comercial. Firecrawl da 1.000 créditos al mes sin tarjeta, además de acceso MCP sin clave con un límite por dirección IP cada día. ### ¿Cuál devuelve mejor Markdown? No publicamos ningún benchmark de calidad, y la página de precios de ninguno de los dos proveedores afirma ser mejor que el otro. Haz tu propia prueba: 50 de tus URLs reales con cada servicio y luego compara encabezados, tablas y menús sobrantes en la salida. ### ¿Alguno se puede autoalojar? Sí. El núcleo de Firecrawl es código abierto bajo AGPL-3.0. Jina publica una rama de código abierto de su Reader bajo Apache-2.0, sin la capa de almacenamiento alojado. ### ¿Firecrawl o Jina aceptan criptomonedas? No en las páginas de precios y facturación que leímos el 22 de octubre de 2026: ambos nombran Stripe, con tarjetas y PayPal, y Jina también Google Pay. WebReaderAPI acepta BTC, USDT, USDC, ETH, SOL, LTC. ### ¿Esta comparación es neutral? Está escrita por WebReaderAPI, competidor de ambos, y así se indica al principio. Cada dato sobre Firecrawl y Jina proviene de sus propias páginas, listadas abajo con la fecha en que las leímos. ## Fuentes 1. [Precios de Firecrawl](https://www.firecrawl.dev/pricing) — Firecrawl (read 2026-10-22) 2. [Facturación](https://docs.firecrawl.dev/billing.md) — Firecrawl docs (read 2026-10-22) 3. [Rastreo (crawl)](https://docs.firecrawl.dev/features/crawl.md) — Firecrawl docs (read 2026-10-22) 4. [Guía avanzada de web scraping](https://docs.firecrawl.dev/advanced-scraping-guide.md) — Firecrawl docs (read 2026-10-22) 5. [Servidor MCP](https://docs.firecrawl.dev/mcp-server.md) — Firecrawl docs (read 2026-10-22) 6. [Presentamos Alexandria y nuestra Serie B](https://www.firecrawl.dev/blog/introducing-alexandria-series-b) — Firecrawl (read 2026-10-22) 7. [Reader](https://jina.ai/reader/) — Jina AI (read 2026-10-22) 8. [Panel de la API: precios](https://jina.ai/api-dashboard/pricing/) — Jina AI (read 2026-10-22) 9. [repositorio jina-ai/MCP](https://github.com/jina-ai/MCP) — GitHub (read 2026-10-22) 10. [Elastic completa la adquisición de Jina AI](https://ir.elastic.co/News--Events/news/news-details/2025/Elastic-Completes-Acquisition-of-Jina-AI-a-Leader-in-Frontier-Models-for-Multimodal-and-Multilingual-Search/default.aspx) — Elastic (2025-10-09, read 2026-10-22) 11. [Herramientas web](https://docs.openclaw.ai/tools/web) — OpenClaw docs (read 2026-10-22) --- 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. --- # Precios de las API de lectura web comparados: cuánto cuestan 10 000, 100 000 y 1 millón de páginas > Precios de las API de lectura web y conversión de URL a Markdown el 2026-10-22: factura mensual para 10K, 100K y 1M páginas en 13 API, simples y con JS. - URL: https://webreaderapi.com/es/compare/web-reader-api-pricing/ - Última actualización: 2026-10-22 - Editor: WebReaderAPI (https://webreaderapi.com) Los precios por crédito esconden tamaños de plan, multiplicadores por navegador y caducidad. Esta página convierte los precios de lista públicos en la factura mensual para tres volúmenes, para páginas simples y para páginas que necesitan un navegador, y después enumera los costes que las páginas de precios omiten. **Respuesta rápida — ¿Cómo se comparan los precios de las API de lectura web en 2026?** El 2026-10-22, 100 000 páginas renderizadas con navegador al mes costaban $99 en ocho API, incluidas Firecrawl, Olostep y Crawl4AI Cloud; las páginas simples costaban desde $29 (Scrape.do). A 1 millón de páginas, las simples empiezan en unos $99 y las de navegador en $399 (Olostep). **WebReaderAPI** cobra 21,75 US$ por 100 000 páginas simples y $43,50 si todas necesitan un navegador, pagado con criptomonedas y sin KYC. ## ¿Cuánto cuesta un mes de páginas en cada API? Factura mensual para 10 000, 100 000 y 1 000 000 de páginas, usando el plan publicado más barato, la tarifa de exceso o la de pago por uso. Cuando un proveedor cobra distinto las páginas de navegador, se muestran ambas cifras (simple / navegador). | API | 10.000 páginas | 100.000 páginas | 1.000.000 de páginas | | --- | --- | --- | --- | | WebReaderAPI, páginas simples | 3,75 US$ | 21,75 US$ | 74,25 US$ | | WebReaderAPI, páginas de navegador (2 créditos) | $7.50 | $43.50 | $148.50 | | Firecrawl | $44.00 | $99.00 | $749.00 | | Crawl4AI Cloud, simple / navegador | $10.00 | $50.00 / $99.00 | $395.00 / $667.00 | | Olostep | $29.00 | $99.00 | $399.00 | | Tavily Extract, simple / navegador | $16.00 / $30.00 | $140.00 / $236.00 | $1,300 / $2,900 | | Contenidos de Exa | $10.00 | $100.00 | $1,000 | | Linkup fetch, simple / navegador | $10.00 / $50.00 | $100.00 / $500.00 | $1,000 / $5,000 | | ScrapingBee, simple / navegador | $19.00 | $49.00 / $99.00 | $99.00 / $599.00 | | Scrape.do, simple / navegador | $29.00 | $29.00 / $99.00 | $99.00 / $699.00 | | ZenRows, simple / navegador | $5.00 / $25.00 | $39.00 / $99.00 | $199.00 / $549.00 | | Scrapfly, simple / navegador | $30.00 | $30.00 / $100.00 | $100.00 / $560.00 | | Bright Data Web Unlocker | $15.00 | $150.00 | $1,300 | | Diffbot | $299.00 | $299.00 | $899.00 | *Precios comprobados el 22 de octubre de 2026.* Precios de lista en USD, leídos el 2026-10-22. «—» = no publicado o no autoservicio a ese volumen. Exa y Parallel no documentan opción de navegador. Método completo y 21 API: [Índice de precios de API de URL a Markdown 2026](https://webreaderapi.com/es/data/url-to-markdown-price-index-2026/). ## ¿Qué costes omiten las páginas de precios? 1. **Multiplicadores por navegador.** Una página JavaScript cuesta 5 créditos en ScrapingBee, ZenRows y Scrape.do, 6 en Scrapfly y 10 en ScraperAPI; Firecrawl y Olostep renderizan cada página a un único precio. 2. **Escalones de planes.** Un plan de $99 comprado para 20 000 páginas sigue costando $99. 3. **Caducidad.** La mayoría de los planes mensuales reinician los créditos no usados; un mes tranquilo es dinero perdido. 4. **Complementos de extracción.** La extracción de JSON estructurado cuesta extra en varias API: 4 créditos más por página en Firecrawl. 5. **Conexiones premium.** Los proxies residenciales o «premium» multiplican el coste en créditos en la mayoría de las API de scraping; WebReaderAPI añade 10 créditos solo cuando eliges un país. 6. **Páginas fallidas.** Comprueba si los errores se facturan. WebReaderAPI no cobra nada por las páginas fallidas ni por las páginas rechazadas por robots.txt. ## ¿Dónde se sitúa WebReaderAPI? A los precios de esta página, fijados el 2026-10-22, WebReaderAPI cobra 0,38 US$/1K páginas por página simple a 10 000 páginas, 0,22 US$/1K páginas a 100 000 y 0,07 US$/1K páginas a 1 millón; una página de navegador usa dos créditos. Los créditos son prepago, nunca caducan y se pagan en BTC, USDT, USDC, ETH, SOL, LTC sin KYC. No afirmamos ser los más baratos en todos los volúmenes ni para todos los tipos de página. Nuestro rastreador respeta robots.txt y nunca intenta saltarse un rechazo, así que algunas páginas que otras herramientas obtienen volverán como rechazadas, y gratis. ## ¿Cuánto cuesta WebReaderAPI? Packs prepago; un crédito por página simple, dos con navegador; los créditos nunca caducan. Precios fijados el 2026-10-22. | Plan | Cantidad | Precio | Precio por unidad | | --- | --- | --- | --- | | Prueba | 10.000 páginas | 3,75 US$ | 0,38 US$/1K páginas | | Build | 100.000 páginas | 21,75 US$ | 0,22 US$/1K páginas | | Volume | 1.000.000 de páginas | 74,25 US$ | 0,07 US$/1K páginas | | Bulk | 5.000.000 de páginas | 350 US$ | 0,07 US$/1K páginas | En todos los planes: Extracción del contenido principal · Renderizado de JavaScript cuando es necesario · Las páginas fallidas y rechazadas no se cobran · Los créditos nunca caducan **Antes de pagar** - Recarga mínima 25 US$. Recarga una vez con criptomonedas y luego compra cualquier plan con tu saldo. - Tu saldo no tiene fecha de caducidad y puedes comprar créditos de página en cualquier momento. Si un pack cuesta menos que la recarga mínima, el importe que añadiste solo para alcanzar ese mínimo se puede devolver a petición dentro de los 30 días siguientes al pago, en USDT o USDC, siempre que no lo hayas gastado. Cualquier otro saldo no se reembolsa salvo que la ley indique lo contrario. - Se acredita en cuanto comprobamos tu pago en la blockchain. Tiempo habitual de confirmación de la red: BTC ≈ 20 min · USDT TRC-20 ≈ 1 min · USDT ERC-20 ≈ 5 min · USDC ERC-20 ≈ 5 min · ETH ≈ 5 min · SOL ≈ 1 min · LTC ≈ 15 min ## Precios de las API de lectura web: preguntas frecuentes ### ¿Cuál es la API de URL a Markdown más barata en 2026? Para páginas simples a 1 millón al mes, ScrapingBee ($0,099 por 1 000) y Scrape.do ($0,099 por 1 000) listaban los precios más bajos el 2026-10-22. Para páginas de navegador a ese volumen, Olostep listaba $0,399. La respuesta cambia con el volumen, así que compara con el tuyo. ### ¿Es caro Firecrawl? A volúmenes pequeños, sí: $19 por 5 000 páginas en Hobby son $3,80 por 1 000. A 100 000 páginas ($99) y 1 millón ($749) se mantiene cerca del mercado para páginas renderizadas con navegador, porque cada página de Firecrawl se renderiza. ### ¿Pago por las páginas que fallan? Depende del proveedor; lee su página de facturación. Crawlbase indica que las solicitudes fallidas y los reintentos son gratis. WebReaderAPI no cobra por las páginas fallidas ni por las páginas rechazadas por robots.txt. ### ¿Puedo pagar una API de lectura web con criptomonedas? Sí, en algunas. Scrape.do, Decodo Web Data API y Scrapeless indican pago con criptomonedas en una cuenta, y Exa contents, Parallel Extract, Linkup fetch, Olostep y otros aceptan USDC por solicitud mediante x402. WebReaderAPI acepta BTC, USDT, USDC, ETH, SOL, LTC sin KYC. ## Fuentes 1. [Firecrawl: precios](https://www.firecrawl.dev/pricing) — Firecrawl (read 2026-10-22) 2. [Crawl4AI Cloud: precios](https://crawl4ai.com/) — Crawl4AI Cloud (read 2026-10-22) 3. [Olostep: precios](https://www.olostep.com/pricing) — Olostep (read 2026-10-22) 4. [Tavily Extract: precios](https://docs.tavily.com/documentation/api-credits) — Tavily Extract (read 2026-10-22) 5. [Exa contents: precios](https://exa.ai/pricing) — Exa contents (read 2026-10-22) 6. [Linkup fetch: precios](https://docs.linkup.so/pages/documentation/development/pricing) — Linkup fetch (read 2026-10-22) 7. [ScrapingBee: precios](https://www.scrapingbee.com/pricing/) — ScrapingBee (read 2026-10-22) 8. [Scrape.do: precios](https://scrape.do/pricing.md) — Scrape.do (read 2026-10-22) 9. [ZenRows: precios](https://docs.zenrows.com/first-steps/pricing.md) — ZenRows (read 2026-10-22) 10. [Scrapfly: precios](https://scrapfly.io/pricing) — Scrapfly (read 2026-10-22) 11. [Bright Data Web Unlocker: precios](https://www.bright.cn/pricing/web-unlocker) — Bright Data Web Unlocker (read 2026-10-22) 12. [Diffbot: precios](https://www.diffbot.com/pricing/) — Diffbot (read 2026-10-22) --- 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. --- # Contacto con WebReaderAPI > Contacto con WebReaderAPI: correo de soporte para preguntas sobre la API y la facturación, y correo de abuso para propietarios de sitios y reportes de mal uso. - URL: https://webreaderapi.com/es/contact/ - Última actualización: 2026-10-22 - Editor: WebReaderAPI (https://webreaderapi.com) Dos direcciones: una para clientes y otra para propietarios de sitios y reportes de mal uso. Ambas las lee una persona. **Respuesta rápida — ¿Cómo contacto con WebReaderAPI?** Escribe a support@webreaderapi.com para recibir ayuda con la API, tu cuenta o un pago; El soporte por email responde en un plazo de 12 horas, todos los días de la semana, incluida la ayuda con rastreos (crawl) e integraciones. Los propietarios de sitios y cualquiera que reporte un mal uso del rastreador de **WebReaderAPI** pueden escribir a abuse@webreaderapi.com. Nuestro equipo nunca te pedirá el número de cuenta ni una clave API por email o chat. ## ¿Qué hace que una solicitud de soporte se responda rápido? Un mensaje breve con los datos concretos recibe la respuesta más rápida: - el ID del pedido de tu historial de pedidos, para preguntas de facturación; - la hora de la solicitud, el endpoint y el código de error, para problemas con la API; - la URL que intentaste leer, si una página no se devolvió como esperabas. Nunca envíes tu clave API ni tu número de cuenta por correo electrónico. ## Tengo un sitio web. ¿Cómo me pongo en contacto con vosotros? Escribe a abuse@webreaderapi.com con tu dominio, la fecha y la hora, y una línea del log de tu servidor que muestre el user agent `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)`. Para detener nuestro rastreador sin escribirnos, añade una regla para `WebReaderAPI` en tu robots.txt; la [página del bot](https://webreaderapi.com/es/bot/) tiene ejemplos listos para usar. Una persona lee cada informe de abuso, y las cuentas que se descubre que hacen un mal uso del servicio se suspenden. ## ¿Con qué puede ayudarme el soporte? Con cualquier cosa sobre el uso de la API o tu cuenta: - una página que vuelve vacía, cortada o con la sección equivocada como contenido principal; - un código de error que no entiendes, o un trabajo de rastreo (crawl) que se detiene antes de tiempo; - una recarga que no ha aparecido en tu saldo tras sus confirmaciones; - una solicitud de reembolso según la [política de reembolsos](https://webreaderapi.com/es/refunds/); - un límite de concurrencia mayor para uso en producción. El soporte no puede hacer que un sitio acepte nuestro rastreador. Cuando un sitio nos rechaza, la única vía es el permiso del propietario del sitio. ## ¿Cómo reporto un problema con un pago? Indica la moneda, la red, el importe enviado y el ID de la transacción, junto con el ID del pedido del área de cliente. Con eso basta para encontrar cualquier transferencia en la blockchain. No incluyas claves privadas, frases semilla, tu número de cuenta ni tu clave API: nunca los necesitamos, y quien te los pida no somos nosotros. ## ¿Hay chat o teléfono? No. El correo electrónico deja un registro escrito para ambas partes y nos permite responder con precisión, con los logs a mano. Para el estado de la API, consulta la [página de estado](https://webreaderapi.com/es/status/); para preguntas frecuentes, las [FAQ](https://webreaderapi.com/es/faq/). --- 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. --- # Crawl API: convierte todo un sitio web en archivos Markdown > API Crawl que convierte un sitio web en Markdown para RAG: hasta 10.000 páginas por trabajo, según sitemap y robots.txt, desde 0,07 US$/1K páginas. - URL: https://webreaderapi.com/es/crawl-api/ - Última actualización: 2026-10-22 - Editor: WebReaderAPI (https://webreaderapi.com) Indica una URL de inicio y un límite de páginas. El rastreador sigue el sitemap y los enlaces del sitio dentro del mismo dominio, lee cada página como Markdown y te entrega los resultados página a página. Un crédito por página. **Respuesta rápida — ¿Cómo puedo rastrear todo un sitio web y obtener cada página en Markdown?** Usa una Crawl API: envías una URL de inicio y un límite, y te devuelve cada página del sitio en Markdown. **WebReaderAPI** rastrea hasta 10.000 páginas por trabajo dentro de un mismo dominio, sigue el sitemap, robots.txt y Crawl-delay, y cobra un crédito por página leída, desde 0,07 US$/1K páginas a fecha de octubre de 2026. Las páginas rechazadas por robots.txt son gratis. Sin KYC; paga con criptomonedas. ## La Crawl API de un vistazo | Atributo | Valor | | --- | --- | | Iniciar un rastreo (crawl) | `POST https://webreaderapi.com/api/v1/crawl` con `url`, `limit`, `max_depth`, `include_paths`, `exclude_paths` | | Obtener los resultados | `GET https://webreaderapi.com/api/v1/jobs/{job_id}`, paginado con un cursor | | Alcance | Rastrea un sitio web por trabajo, hasta 10.000 páginas, siguiendo su sitemap, su robots.txt y su Crawl-delay | | Muchas URL independientes | `POST https://webreaderapi.com/api/v1/batch`: Hasta 100 URLs por trabajo por lotes | | 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 | | Propietarios de sitios | Respetamos robots.txt: nuestro rastreador se identifica como WebReaderAPI, sigue las reglas escritas para él o para todos los robots y no lee una página que un sitio prohíbe. Las páginas rechazadas no se cobran | | Precio | 14,25 US$ por 50.000 páginas, 50 US$ por 500.000 páginas | ## ¿Cómo funciona un trabajo de rastreo (crawl)? Un rastreo es un trabajo en segundo plano, porque leer cientos de páginas lleva más tiempo del que debería durar una sola petición HTTP. 1. **Iniciar:** `POST https://webreaderapi.com/api/v1/crawl` con la URL de inicio y tus límites. Recibes un `job_id` al instante. 2. **Descubrir:** el rastreador lee el robots.txt y el sitemap del sitio, y después sigue los enlaces dentro del mismo dominio, en anchura, hasta `max_depth`. 3. **Leer:** cada página permitida se lee con las mismas opciones que `/read`: Markdown, contenido principal, renderizado cuando hace falta. 4. **Recoger:** consulta `GET https://webreaderapi.com/api/v1/jobs/{job_id}` y pagina los resultados con el cursor mientras el trabajo se ejecuta, o cuando ya está `done`. El trabajo se detiene en tu `limit`, así nunca pagas por más páginas de las que pediste. *Python: rastrear un sitio de documentación a archivos Markdown* ```python import os import pathlib import re import time import requests API = "https://webreaderapi.com/api/v1" HEADERS = {"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]} job = requests.post( API + "/crawl", headers=HEADERS, json={"url": "https://docs.example.com/", "limit": 500, "max_depth": 4, "include_paths": ["/guide/*"]}, timeout=60, ).json() out = pathlib.Path("docs_md") out.mkdir(exist_ok=True) cursor, delay = None, 5 while True: params = {"cursor": cursor} if cursor else {} page = requests.get(API + "/jobs/" + job["job_id"], headers=HEADERS, params=params, timeout=60).json() for item in page.get("results", []): if "markdown" in item: name = re.sub(r"[^a-z0-9]+", "-", item["url"].lower()).strip("-")[:120] (out / (name + ".md")).write_text(item["markdown"], encoding="utf-8") cursor = page.get("next_cursor") if page["status"] == "done" and not cursor: break if not cursor: time.sleep(delay) delay = min(delay * 2, 60) print("credits used:", page.get("credits_used")) ``` ## ¿Qué páginas visita el rastreador y cuáles omite? Se mantiene dentro del dominio de la URL de inicio y omite todo lo que el sitio pida a los robots que dejen en paz. En detalle: - **Solo el mismo dominio.** Los enlaces a otros dominios se listan en los resultados pero no se leen. - **robots.txt primero.** Las páginas no permitidas para `WebReaderAPI` o para todos los robots se omiten y no se cobran. - **Crawl-delay respetado.** Si el sitio lo establece, el rastreador espera ese tiempo entre dos páginas, así que un sitio grande puede tardar más. - **Tus filtros.** `include_paths` y `exclude_paths` aceptan patrones simples como `/blog/*`; úsalos para evitar páginas de etiquetas, páginas de búsqueda y archivos. - **Duplicados eliminados.** La misma página alcanzada por dos URLs, por ejemplo con parámetros de seguimiento, se lee una vez cuando el sitio declara una URL canónica. ## ¿Debo usar un rastreo (crawl) o un lote (batch)? Usa un rastreo cuando conoces el sitio pero no las páginas; usa un lote cuando ya tienes la lista de URLs. Un rastreo descubre páginas desde el sitemap y los enlaces. Un lote lee exactamente las URLs que envías, hasta 100 por trabajo, en cualquier número de sitios. Para una actualización semanal de una base de conocimiento, un patrón habitual es un rastreo para construir el índice y luego lotes de las páginas cuya `lastmod` cambió en el sitemap. Así el coste semanal se limita a las páginas que realmente cambiaron. ## ¿Cuánto cuesta rastrear un sitio? Un crédito por página leída, dos para las páginas que necesitaron un navegador. Un sitio de documentación de 1.500 páginas que se renderiza en el servidor cuesta 1.500 créditos; el mismo sitio construido como single-page app puede costar hasta 3.000. Tres trabajos típicos, a fecha de octubre de 2026: un manual de producto de 300 páginas cabe en el pack 10.000 páginas (3,75 US$); diez sitios de documentación de 2.000 páginas cada uno caben en 50.000 páginas (14,25 US$); un archivo de 400.000 páginas cabe en 500.000 páginas (50 US$). Las páginas omitidas y las fallidas son gratis. ## ¿Qué pack se ajusta a un rastreo? Dimensiona el pack según el número de páginas y luego añade un margen para las páginas que necesitan un navegador. Los créditos nunca caducan, así que el resto sirve para el siguiente rastreo. | Plan | Cantidad | Precio | Precio por unidad | | --- | --- | --- | --- | | Prueba | 10.000 páginas | 3,75 US$ | 0,38 US$/1K páginas | | Starter | 50.000 páginas | 14,25 US$ | 0,28 US$/1K páginas | | Build | 100.000 páginas | 21,75 US$ | 0,22 US$/1K páginas | | Scale | 500.000 páginas | 50 US$ | 0,10 US$/1K páginas | En todos los planes: Extracción del contenido principal · Renderizado de JavaScript cuando es necesario · Las páginas fallidas y rechazadas no se cobran · Los créditos nunca caducan **Antes de pagar** - Recarga mínima 25 US$. Recarga una vez con criptomonedas y luego compra cualquier plan con tu saldo. - Tu saldo no tiene fecha de caducidad y puedes comprar créditos de página en cualquier momento. Si un pack cuesta menos que la recarga mínima, el importe que añadiste solo para alcanzar ese mínimo se puede devolver a petición dentro de los 30 días siguientes al pago, en USDT o USDC, siempre que no lo hayas gastado. Cualquier otro saldo no se reembolsa salvo que la ley indique lo contrario. - Se acredita en cuanto comprobamos tu pago en la blockchain. Tiempo habitual de confirmación de la red: BTC ≈ 20 min · USDT TRC-20 ≈ 1 min · USDT ERC-20 ≈ 5 min · USDC ERC-20 ≈ 5 min · ETH ≈ 5 min · SOL ≈ 1 min · LTC ≈ 15 min ## API de rastreo (crawl): preguntas frecuentes ### ¿Cuántas páginas puede leer un rastreo? Hasta 10.000 páginas por trabajo, dentro del dominio de la URL de inicio. Para un sitio más grande, divídelo en varios trabajos con `include_paths`, por ejemplo uno por sección. ### ¿El rastreador usa el sitemap? Sí. Lee el sitemap indicado en robots.txt o en la ubicación habitual y después sigue los enlaces de las páginas que lee. Las páginas que solo aparecen en el sitemap también se leen si robots.txt las permite. ### ¿Puedo rastrear un sitio que bloquea a los rastreadores de IA? No con WebReaderAPI. Si robots.txt no permite nuestro rastreador o a todos los robots, esas páginas se omiten y no se cobran. Si el sitio declara `Content-Signal: ai-input=no`, no lo leemos por ti. Nunca intentamos saltarnos esas decisiones. ### ¿Puedo obtener los resultados mientras el rastreo sigue en marcha? Sí. `GET https://webreaderapi.com/api/v1/jobs/{job_id}` devuelve las páginas leídas hasta el momento con un cursor; sigue paginando hasta que el trabajo esté `done` y no quede ningún cursor. ### ¿Puede un rastreo leer más páginas que mi límite? No. Los créditos se cuentan página a página y el trabajo se detiene al llegar al `limit` que estableciste. Las páginas que omite por robots.txt y las páginas que fallan no consumen créditos. --- 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. --- # Pagar una API de lectura web con criptomonedas > Cómo pagar WebReaderAPI con criptomonedas: BTC, USDT, USDC, ETH, SOL o LTC, la recarga mínima de 25 US$, qué red elegir y qué hacer después de enviar. - URL: https://webreaderapi.com/es/crypto-payments/ - Última actualización: 2026-10-22 - Editor: WebReaderAPI (https://webreaderapi.com) Una guía paso a paso para recargar tu saldo de WebReaderAPI con criptomonedas y convertirlo en créditos de páginas, con los errores que debes evitar. **Respuesta rápida — ¿Cómo pago WebReaderAPI con criptomonedas?** Recarga tu saldo de **WebReaderAPI** con al menos 25 US$ en BTC, USDT, USDC, ETH, SOL, LTC: envía el importe exacto indicado, en la red indicada, y luego haz clic en «He enviado el pago». La recarga se identifica por su importe exacto y se abona una vez confirmada. Después compras créditos de páginas desde el saldo, desde 3,75 US$ por 10.000 páginas. Sin KYC. ## ¿Con qué monedas puedo pagar? Seis monedas, un solo saldo. USDT funciona en TRC-20 o ERC-20, USDC en ERC-20; la página de pago muestra la dirección y la red de la moneda que elijas. - Bitcoin (BTC) - Tether (USDT) — TRC-20 or ERC-20 - USD Coin (USDC) — ERC-20 - Ethereum (ETH) - Solana (SOL) - Litecoin (LTC) ## ¿Cómo funciona una recarga con criptomonedas, paso a paso? Cinco pasos desde una cuenta vacía hasta una clave API operativa. La única espera es la confirmación en la blockchain. 1. **Elige un importe y una moneda** — Introduce al menos 25 US$ y elige BTC, USDT, USDC, ETH, SOL o LTC. La página de pago convierte el importe en dólares a esa moneda. 2. **Envía el importe exacto** — Copia la dirección y el importe mostrados, y envíalos en la red que indica la página: una sola transferencia, la cifra exacta, sin redondear. 3. **Haz clic en «He enviado el pago»** — Indícale a la página que la transferencia está en camino. Si te pide el ID de transacción, pégalo para que la transferencia sea más fácil de encontrar. 4. **Deja que la red lo confirme** — La recarga se empareja por su importe exacto y se abona cuando la red la ha confirmado. Bitcoin tarda más que USDT en Tron o SOL en Solana. 5. **Comprar un pack de créditos** — Paga cualquier pack desde el saldo. Si empezaste desde un pack, se compra en cuanto se abona la recarga y tu clave API aparece en el dashboard. ## ¿Qué moneda y qué red debería usar? Usa la moneda que ya tengas, en la red que indique la página de pago. Una stablecoin (USDT o USDC) mantiene el importe en dólares, así que el precio que ves es el precio que pagas. Las comisiones de red y los tiempos de confirmación varían según la cadena; la tabla de los pasos anteriores indica el tiempo de confirmación habitual de cada red. Si tienes USDT en varias cadenas, elige la que tenga una comisión menor para tu importe. La comisión la paga el emisor y no forma parte de tu recarga. ## ¿Por qué hay una recarga mínima? Porque cada pago nos cuesta comprobación y contabilidad, sea cual sea su importe. El mínimo es 25 US$; después puedes comprar cualquier pack desde el saldo, incluido el pack de 10.000 páginas por 3,75 US$. Lo que no gastes se queda en el saldo sin fecha de caducidad. Si el pack que compraste cuesta menos que el mínimo, la parte sobrante se puede pedir de vuelta en un plazo de 30 días, en USDT o USDC, siempre que no se haya gastado. ## ¿Qué pasa después de enviar el pago? Haz clic en "He enviado el pago" en la página de pago. Emparejamos la transferencia por su importe exacto, esperamos las confirmaciones que necesita la red y abonamos tu saldo. Si empezaste desde un pack, se compra desde el saldo en cuanto se abona la recarga y tu clave API queda lista en el dashboard. Si cerraste la pestaña, abre el área de cliente: las recargas pendientes y abonadas aparecen en tu historial de pedidos. ## ¿Y si envío un importe incorrecto o uso la red equivocada? Un importe distinto no se puede emparejar por sí solo, y una transferencia en otra red puede que ni siquiera llegue a la dirección. Antes de enviar, comprueba tres cosas: la moneda, la red y el importe exacto. Si ha ocurrido un error, escribe a support@webreaderapi.com con el ID de transacción y el ID del pedido. No envíes tu número de cuenta ni tu clave API. Los fondos enviados en una red que la página de pago no mostraba puede que no se puedan recuperar. ## ¿Se puede reembolsar un pago con criptomonedas? Los reembolsos van a tu saldo en lugar de volver a tu wallet, lo que evita una segunda comisión de red. Un pack usado en menos del 20% en 72 horas, o un pack que nunca funcionó, se abona de vuelta. La [política de reembolsos](https://webreaderapi.com/es/refunds/) da las condiciones exactas y tres ejemplos. ## ¿Qué puedo comprar cuando se abona mi saldo? Cualquier pack: 10.000 páginas por 3,75 US$, 50.000 páginas por 14,25 US$ o 100.000 páginas por 21,75 US$, y otros mayores en la [página de precios](https://webreaderapi.com/es/pricing/). Los créditos nunca caducan. | Plan | Cantidad | Precio | Precio por unidad | | --- | --- | --- | --- | | Prueba | 10.000 páginas | 3,75 US$ | 0,38 US$/1K páginas | | Starter | 50.000 páginas | 14,25 US$ | 0,28 US$/1K páginas | | Build | 100.000 páginas | 21,75 US$ | 0,22 US$/1K páginas | En todos los planes: Extracción del contenido principal · Renderizado de JavaScript cuando es necesario · Las páginas fallidas y rechazadas no se cobran · Los créditos nunca caducan Precios en USD, fijados el 2026-10-22. Todos los packs se pagan desde tu saldo en criptomonedas. ## Pagar con criptomonedas: preguntas frecuentes ### ¿Necesito una tarjeta o un documento de identidad para pagar? No. WebReaderAPI solo acepta criptomonedas y no pide documentos de identidad. Inicio de sesión con número de cuenta; el email es opcional. ### ¿El precio queda fijado cuando empiezo el pago? La página de pago muestra el importe en la moneda que elegiste para ese pago. Envía ese importe exacto; una stablecoin lo mantiene igual al precio en dólares. ### ¿Puedo pagar los créditos por solicitud en lugar de recargar? No. Los pagos se hacen a través de un saldo de prepago, y cada lectura usa créditos de él. El saldo y los créditos nunca caducan. ### ¿Dónde veo mis pagos? En el historial de pedidos del área de cliente, con el estado, la moneda, la red y el ID de transacción de cada recarga. --- 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. --- # Índice de precios 2026 de las API de URL a Markdown: cuánto cuestan 1.000 páginas en 21 API > Precios 2026 de las API de URL a Markdown y lectura web: 21 API, coste por 1.000 páginas en 3 volúmenes, estáticas y JavaScript, comprobado el 2026-10-22. - URL: https://webreaderapi.com/es/data/url-to-markdown-price-index-2026/ - Última actualización: 2026-10-22 - Editor: WebReaderAPI (https://webreaderapi.com) Precios de lista públicos de 21 API que convierten páginas web a Markdown o texto para modelos, normalizados al coste de 1.000 páginas en tres volúmenes mensuales, para páginas simples y para páginas renderizadas en un navegador. Publicado por WebReaderAPI, que es una de las API de la tabla. **Respuesta rápida — ¿Cuánto cuesta una API de URL a Markdown por 1.000 páginas en 2026?** En 21 API cuyos precios de lista leímos el 2026-10-22, leer 100.000 páginas simples al mes cuesta una mediana de $0,99 por 1.000, y $1,00 cuando las páginas necesitan un navegador. Con 1 millón de páginas al mes las medianas bajan a $0,774 y $0,899. **WebReaderAPI**, que publica este índice, cobra 0,22 US$/1K páginas por páginas simples en 100.000. ## El índice en seis cifras - **$2.00** mediana por 1.000 páginas simples con 10.000 al mes (21 API) - **$0.99** mediana por 1.000 páginas simples con 100.000 al mes (21 API) - **$0.774** mediana por cada 1000 páginas simples con 1 millón al mes (20 APIs) - **$1.00** mediana por cada 1000 páginas renderizadas en navegador con 100 000 al mes (18 APIs) - **$0.899** mediana por cada 1000 páginas renderizadas en navegador con 1 millón al mes (17 APIs) - **3 + 7** APIs que indican pago con criptomonedas en una cuenta, más APIs que aceptan USDC por consulta (x402) ## ¿Cómo se creó el índice? Leímos la página de precios pública de cada proveedor el 2026-10-22 y solo conservamos las cifras que aparecen ahí; cada fuente está listada al final. Una "página" es una URL leída y devuelta como Markdown o texto, con el proxy predeterminado del proveedor y sin complementos de pago. - **Página simple:** sin renderizado de JavaScript. **Página de navegador:** renderizada primero en un navegador headless; los proveedores que siempre renderizan (Firecrawl, Olostep, Diffbot) tienen el mismo precio en ambas tablas. - **Precio a un volumen:** la forma publicada más económica de comprar esa cantidad de páginas cada mes en un solo proveedor (plan, plan más excedente publicado, o pago por uso), dividida entre las páginas usadas. Un plan de $99 usado para 100 000 páginas cuenta como $0.99 por cada 1000 aunque incluya más. - **Se aplican los multiplicadores de créditos**, por ejemplo 5 créditos por página de navegador en ScrapingBee, ZenRows y Scrape.do. - **Los planes gratuitos se listan, no se les asigna precio.** Las APIs que cobran por tokens, tiempo de navegador, volumen de datos o cómputo, y una API cuyo resultado en Markdown no pudimos confirmar, se listan aparte. WebReaderAPI se muestra como referencia y no se cuenta en las medianas. ## Precio por cada 1000 páginas simples, por volumen mensual Páginas estáticas, leídas sin navegador. "—" significa que no se publica o no es autoservicio a ese volumen. | API | 10 000 páginas al mes | 100 000 páginas al mes | 1 millón de páginas al mes | | --- | --- | --- | --- | | WebReaderAPI (prepago, sin caducidad) | 0,38 US$/1K páginas | 0,22 US$/1K páginas | 0,07 US$/1K páginas | | Firecrawl | $4.40 | $0.99 | $0.749 | | Tavily Extract | $1.60 | $1.40 | $1.30 | | Contenidos de Exa | $1.00 | $1.00 | $1.00 | | Parallel Extract | $1.00 | $1.00 | $1.00 | | Linkup fetch | $1.00 | $1.00 | $1.00 | | Olostep | $2.90 | $0.99 | $0.399 | | ScrapeGraphAI | $2.00 | $1.00 | $1.25 | | Diffbot | $29.90 | $2.99 | $0.899 | | ScrapingBee | $1.90 | $0.49 | $0.099 | | ScraperAPI | $4.90 | $0.49 | $0.149 | | ZenRows | $0.50 | $0.39 | $0.199 | | Scrapfly | $3.00 | $0.30 | $0.10 | | Scrape.do | $2.90 | $0.29 | $0.099 | | Crawlbase | $2.10 | $0.764 | $0.349 | | Bright Data Web Unlocker | $1.50 | $1.50 | $1.30 | | Oxylabs Web Scraper API | $3.00 | $1.00 | $2.50 | | Decodo Web Data API | $1.90 | $0.49 | $0.249 | | Scrapeless | $1.00 | $0.90 | $0.80 | | Hyperbrowser Fetch | $3.00 | $1.00 | — | | Steel scrape | $5.00 | $5.00 | $5.00 | | Crawl4AI Cloud | $1.00 | $0.50 | $0.395 | *Precios comprobados el 22 de octubre de 2026.* Precios de lista en USD, leídos el 2026-10-22. Nuestros precios: la página de precios de WebReaderAPI en la misma fecha. ## Precio por cada 1000 páginas renderizadas en navegador, por volumen mensual Páginas que necesitan JavaScript, renderizadas en un navegador headless. Las APIs que no documentan ninguna opción de navegador quedan fuera de esta tabla. | API | 10 000 páginas al mes | 100 000 páginas al mes | 1 millón de páginas al mes | | --- | --- | --- | --- | | WebReaderAPI (2 créditos por página) | $0.75/1K páginas | $0.435/1K páginas | $0.148/1K páginas | | Firecrawl | $4.40 | $0.99 | $0.749 | | Tavily Extract | $3.00 | $2.36 | $2.90 | | Linkup fetch | $5.00 | $5.00 | $5.00 | | Olostep | $2.90 | $0.99 | $0.399 | | ScrapeGraphAI | $2.00 | $1.00 | $1.25 | | Diffbot | $29.90 | $2.99 | $0.899 | | ScrapingBee | $1.90 | $0.99 | $0.599 | | ScraperAPI | $4.90 | $1.49 | $0.975 | | ZenRows | $2.50 | $0.99 | $0.549 | | Scrapfly | $3.00 | $1.00 | $0.56 | | Scrape.do | $2.90 | $0.99 | $0.699 | | Crawlbase | — | $0.99 | $0.599 | | Bright Data Web Unlocker | $1.50 | $1.50 | $1.30 | | Oxylabs Web Scraper API | $3.00 | $5.00 | $2.50 | | Decodo Web Data API | $1.90 | $0.99 | $0.999 | | Hyperbrowser Fetch | $3.00 | $1.00 | — | | Steel scrape | $5.00 | $5.00 | $5.00 | | Crawl4AI Cloud | $1.00 | $0.99 | $0.667 | *Precios comprobados el 22 de octubre de 2026.* ## ¿Por qué varían tanto los precios entre APIs? Cuatro cosas explican la mayor parte de la dispersión. 1. **Tipo de producto.** Las APIs de web scraping generales (ScrapingBee, Scrape.do, ZenRows, Scrapfly) tienen precios pensados para volumen y llegan a unos $0.10 por cada 1000 páginas simples con 1 millón al mes. Los lectores orientados a IA (Exa, Parallel, Linkup) cobran una tarifa plana de $1.00 y añaden funciones de recuperación. 2. **Multiplicadores de navegador.** Una página de navegador cuesta entre 2 y 10 veces más que una página simple en las APIs basadas en créditos; las APIs de precio plano cobran lo mismo por ambas. 3. **Escalones de plan.** Muchos proveedores venden planes mensuales con una cuota grande, así que los usuarios pequeños pagan por páginas que no usan: la mediana con 10 000 páginas simples al mes es $2.00. 4. **Caducidad.** La mayoría de los planes reinician los créditos no usados cada mes; ScrapeGraphAI, Crawlbase y Crawl4AI Cloud conservan los créditos comprados sin reinicio mensual. ## Planes gratuitos, caducidad, criptomonedas, verificación de identidad y robots.txt Lo que declara cada proveedor en las páginas que leímos. "No indicado" significa que las páginas no lo decían. | API | Plan gratuito | Caducidad de los créditos | Pago con criptomonedas | Verificaciones de identidad | robots.txt | | --- | --- | --- | --- | --- | --- | | WebReaderAPI | Ninguna | Nunca | BTC, USDT, USDC, ETH, SOL, LTC | Ninguna: sin ID, sin selfie, sin documentos | Respetado; nunca se omite | | Firecrawl | 1000 créditos al mes, sin tarjeta | Los créditos del plan se renuevan cada mes | No (tarjetas, PayPal) | Ninguno indicado | Respetado por defecto; se puede anular solo en Enterprise | | Tavily Extract | 1.000 créditos al mes (5.000 URL básicas) | Se restablece cada mes | Solo a su discreción (términos) | Ninguno indicado | No indicado | | Contenidos de Exa | $10 de saldo al mes | El saldo gratis se restablece cada mes | Por solicitud, USDC (x402) | Tarjeta para pago por uso | Indicado para su crawler de índice, no para las peticiones de los usuarios | | Parallel Extract | 5.000 solicitudes al mes | El saldo gratis caduca cada mes | Por solicitud, USDC (x402) | Tarjeta para el saldo mensual | Indicado para su crawler de índice, no para las peticiones de los usuarios | | Linkup fetch | $20 al mes (email profesional) | No indicado | Por solicitud, USDC (x402) | Email profesional para el saldo gratis | El rastreo lo respeta; no se indica para la extracción | | Olostep | Prueba de 500 solicitudes | El plan es mensual; las recargas duran 6 meses | Por solicitud, USDC (x402) | Tarjeta para recargas | Herramientas para respetarlo; no se indica por defecto | | ScrapeGraphAI | 500 créditos | Los créditos del plan no se acumulan; las recargas nunca caducan | Solo para agentes (MPP) | No indicado | El cliente debe cumplirlo (términos) | | Diffbot | 10.000 créditos al mes | La cuota se restablece en cada periodo | No indicado | Sin tarjeta para el plan gratis | El rastreo lo cumple por defecto; no se indica para Extract | | ScrapingBee | 1.000 créditos | Sin acumulación | No | Tarjeta para planes de pago | No indicado | | ScraperAPI | 5.000 créditos durante 7 días | Caducan en cada periodo de facturación | No | Ninguno indicado | No indicado | | ZenRows | 5.000 créditos al mes | En la renovación | Cuentas: no; agentes: USDC (x402) | Validación de correo electrónico | No indicado | | Scrapfly | 1.000 créditos una sola vez | Sin acumulación | No indicado | KYC para cada cliente | La API de rastreo lo respeta por defecto; se puede desactivar | | Scrape.do | 1.000 créditos al mes | No indicado | Sí (no se indican las monedas) | Ninguno indicado | No indicado | | Crawlbase | 1.000 créditos | Pago por uso: nada caduca | No indicado | Ninguno indicado | No indicado | | Bright Data Web Unlocker | 5.000 créditos al mes | Los créditos gratis se restablecen cada mes | No | Tarjeta para cuentas con email personal; KYC de empresa para páginas no permitidas por robots.txt | Se respeta por defecto | | Oxylabs Web Scraper API | $5 de saldo una sola vez | Fin de ciclo | No | KYC para cada cliente | No mencionado | | Decodo Web Data API | Hasta 10.000 solicitudes al mes | Los importes no usados caducan cada mes | Sí (a través de CoinGate) | Comprobación automática y luego KYC | No indicado | | Scrapeless | Prueba, tamaño no indicado | Mínimo prepago no mantenido | Sí (no se indican las monedas) | Ninguno para los paquetes básicos | No indicado | | Hyperbrowser Fetch | 5.000 créditos | Créditos comprados: 12 meses | Por solicitud, USDC (x402) | No indicado | No indicado | | Steel scrape | $30 una vez (90 días) | Crédito de lanzamiento de 90 días | Por solicitud, USDC (x402) | Sin tarjeta | Los términos prohíben incumplirlos | | Crawl4AI Cloud | 1.000 créditos al mes | Los créditos comprados nunca caducan | No indicado | Sin tarjeta | Los términos exigen cumplirlos | *Precios comprobados el 22 de octubre de 2026.* ## ¿Cuáles son las principales conclusiones? - **Las páginas simples son baratas en volumen.** Con 1 millón de páginas al mes, ScrapingBee ($0.099), Scrape.do ($0.099) y Scrapfly ($0.10) indican los precios más bajos para páginas simples. - **Las páginas con navegador cuestan más.** Con 1 millón al mes, Olostep ($0.399), ZenRows ($0.549) y Scrapfly ($0.56) indican los precios más bajos para páginas con navegador. - **El lector más conocido no es el más económico.** Firecrawl indica $0.99 por 1.000 con 100.000 páginas y $0.749 con 1 millón, con todas las páginas renderizadas. - **Las criptomonedas son poco frecuentes en las cuentas.** Scrape.do, Decodo Web Data API y Scrapeless afirman aceptar pagos con criptomonedas; Exa contents, Parallel Extract, Linkup fetch, Olostep, ZenRows, Hyperbrowser Fetch y Steel scrape cobran USDC por solicitud a través de x402. - **robots.txt suele quedar a cargo del cliente.** Los proveedores que indican un comportamiento por defecto respetuoso con robots.txt, al menos en sus productos de rastreo, son: Firecrawl, Diffbot, Scrapfly y Bright Data Web Unlocker. Muchos no dicen nada. - **KYC es la excepción.** Oxylabs y Scrapfly lo piden a todos los clientes; Decodo hace primero una comprobación automática. ## API facturadas de otra forma (no incluidas en las medianas) Estas facturan por tokens, tiempo de navegador, volumen de datos o cómputo, o no confirmaron la salida en Markdown, así que el precio por página depende de tus páginas. | API | Precio | Nota | | --- | --- | --- | | Jina Reader | $50 por 1.000 millones de tokens de salida; $500 por 11.000 millones | Facturado por token: el coste por página depende de la longitud de la página. 10 millones de tokens gratis por cada clave nueva, solo para uso no comercial. | | Cloudflare Browser Run | 0,09 $ por hora de navegador tras 10 horas incluidas, mínimo mensual de 5 $ | Facturado por tiempo de navegador; endpoints /markdown, /content y /crawl. | | Spider | $1 por GB de contenido más cómputo | Facturado por volumen de datos; las cifras por página que publica son estimaciones propias. | | Apify Website Content Crawler | Unidades de cómputo ($0.13 por unidad en Business) | Facturado por cómputo; las cifras por página que publica son estimaciones propias. | | Zyte API | $0.13 por 1.000 solicitudes estáticas (nivel 1 de sitio web, pago por uso); $1.01 con navegador | El precio depende del nivel que Zyte asigna a cada sitio web; la salida en Markdown no se indica en las páginas que consultamos. | *Precios comprobados el 22 de octubre de 2026.* ## ¿Puedo reutilizar estos datos? Sí. Las tablas de esta página se publican bajo la licencia Creative Commons Atribución 4.0 (CC BY 4.0): cópialas y adáptalas con un enlace a esta página y la fecha 2026-10-22. Volvemos a consultar los precios al menos una vez al mes. Si alguna cifra es incorrecta, escribe a support@webreaderapi.com con la página que muestre la correcta; lo corregimos y anotamos el cambio en el [registro de cambios](https://webreaderapi.com/es/changelog/). ## Índice de precios: preguntas frecuentes ### ¿Qué API de URL a Markdown cuesta menos? Depende del volumen y de JavaScript. El 2026-10-22, los precios más bajos para páginas simples con 1 millón de páginas al mes eran ScrapingBee a $0.099 y Scrape.do a $0.099 por 1.000; el precio más bajo para páginas con navegador con ese volumen era Olostep a $0.399. ### ¿Cuánto cuesta Firecrawl por página? Firecrawl cobra 1 crédito por página con JavaScript incluido: $19 por 5.000 créditos en Hobby, $99 por 100.000 en Standard y $749 por 1 millón en Scale, según su página de precios consultada el 2026-10-22. La extracción JSON añade 4 créditos por página. ### ¿Por qué Jina Reader no aparece en las tablas principales? Jina cobra por tokens de salida ($50 por cada 1000 millones de tokens en su paquete más pequeño), así que su precio por página depende de la longitud de tus páginas. Aparece en la tabla de APIs que se facturan de otra forma. ### ¿WebReaderAPI se cuenta a sí mismo en las medianas? WebReaderAPI publica este índice y aparece en las primeras filas solo como referencia. Las medianas usan a los demás proveedores. ### ¿Con qué frecuencia se actualiza el índice? Al menos una vez al mes, y cuando un proveedor listado cambia sus precios públicos. La fecha de la parte superior muestra la última comprobación completa. ## Fuentes 1. [Firecrawl: precios](https://www.firecrawl.dev/pricing) — Firecrawl (read 2026-10-22) 2. [Tavily Extract: precios](https://docs.tavily.com/documentation/api-credits) — Tavily (read 2026-10-22) 3. [Exa contents: precios](https://exa.ai/pricing) — Exa (read 2026-10-22) 4. [Parallel Extract: precios](https://parallel.ai/pricing) — Parallel (read 2026-10-22) 5. [Linkup fetch: precios](https://docs.linkup.so/pages/documentation/development/pricing) — Linkup (read 2026-10-22) 6. [Olostep: precios](https://www.olostep.com/pricing) — Olostep (read 2026-10-22) 7. [ScrapeGraphAI: precios](https://scrapegraphai.com/pricing) — ScrapeGraphAI (read 2026-10-22) 8. [Diffbot: precios](https://www.diffbot.com/pricing/) — Diffbot (read 2026-10-22) 9. [ScrapingBee: precios](https://www.scrapingbee.com/pricing/) — ScrapingBee (read 2026-10-22) 10. [ScraperAPI: precios](https://www.scraperapi.com/pricing/) — ScraperAPI (read 2026-10-22) 11. [ZenRows: precios](https://docs.zenrows.com/first-steps/pricing.md) — ZenRows (read 2026-10-22) 12. [Scrapfly: precios](https://scrapfly.io/pricing) — Scrapfly (read 2026-10-22) 13. [Scrape.do: precios](https://scrape.do/pricing.md) — Scrape.do (read 2026-10-22) 14. [Crawlbase: precios](https://crawlbase.com/pricing) — Crawlbase (read 2026-10-22) 15. [Bright Data Web Unlocker: precios](https://www.bright.cn/pricing/web-unlocker) — Bright Data (read 2026-10-22) 16. [Oxylabs Web Scraper API: precios](https://oxylabs.io/pricing/web-scraper-api) — Oxylabs (read 2026-10-22) 17. [Decodo Web Data API: precios](https://help.decodo.com/docs/web-data-api-billing) — Decodo (read 2026-10-22) 18. [Scrapeless: precios](https://www.scrapeless.com/en/pricing) — Scrapeless (read 2026-10-22) 19. [Hyperbrowser Fetch: precios](https://hyperbrowser.ai/docs/pricing.md) — Hyperbrowser (read 2026-10-22) 20. [Steel scrape: precios](https://docs.steel.dev/overview/pricinglimits) — Steel (read 2026-10-22) 21. [Crawl4AI Cloud: precios](https://crawl4ai.com/) — Crawl4AI (read 2026-10-22) 22. [Jina Reader: precios](https://jina.ai/api-dashboard/pricing/) — Jina Reader (read 2026-10-22) 23. [Cloudflare Browser Run: precios](https://developers.cloudflare.com/browser-run/pricing/) — Cloudflare Browser Run (read 2026-10-22) 24. [Spider: precios](https://spider.cloud/pricing) — Spider (read 2026-10-22) 25. [Apify Website Content Crawler: precios](https://apify.com/apify/website-content-crawler) — Apify Website Content Crawler (read 2026-10-22) 26. [Zyte API: precios](https://www.zyte.com/pricing/) — Zyte API (read 2026-10-22) --- 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. --- # 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. --- # API de batch y rastreo: lee muchas URL o un sitio web entero > Referencia de la API: lee hasta 100 URL por trabajo o un sitio entero de hasta 10.000 páginas, respetando robots.txt. Paga con criptomonedas. - URL: https://webreaderapi.com/es/docs/crawl/ - Última actualización: 2026-10-22 - Editor: WebReaderAPI (https://webreaderapi.com) Dos endpoints inician trabajos en segundo plano: `/batch` para una lista de hasta 100 URL y `/crawl` para un sitio web. Ambos devuelven un ID de trabajo; recoges las páginas desde `/jobs/{job_id}`, una página de resultados a la vez. **Respuesta rápida — ¿Cómo rastreo un sitio web a Markdown con WebReaderAPI?** Envía la URL de inicio a `POST https://webreaderapi.com/api/v1/crawl` con una página `limit`. **WebReaderAPI** lee el sitio en segundo plano, solo el mismo dominio, siguiendo su sitemap, robots.txt y Crawl-delay, hasta 10.000 páginas por trabajo. Recoge las páginas Markdown del trabajo, una página de resultados a la vez. Cada página leída cuesta 1 crédito (2 con navegador), desde 0,07 US$/1K páginas a octubre de 2026. Sin KYC; paga con criptomonedas. ## Trabajos de un vistazo | Atributo | Valor | | --- | --- | | Batch | Hasta 100 URLs por trabajo por lotes: `POST https://webreaderapi.com/api/v1/batch` | | Rastreo (crawl) | Rastrea un sitio web por trabajo, hasta 10.000 páginas, siguiendo su sitemap, su robots.txt y su Crawl-delay: `POST https://webreaderapi.com/api/v1/crawl` | | Resultados | `GET https://webreaderapi.com/api/v1/jobs/{job_id}`, luego `?cursor=…` para la siguiente página de resultados | | Facturación | Cada página leída se factura como una llamada a `/read`; las páginas omitidas por robots.txt y las páginas fallidas no cuestan nada | | Alcance de un rastreo | Un dominio; los enlaces a otros dominios se listan pero no se leen | | Cancelar un trabajo | No disponible en v1: fija `limit` en el número máximo de páginas que estás dispuesto a pagar | ## Iniciar un trabajo de batch `POST /api/v1/batch` Lee hasta 100 URL en segundo plano con las mismas opciones. Las opciones usan los nombres y valores de [/read](https://webreaderapi.com/es/docs/read/). La respuesta es el ID del trabajo; los valores son ilustrativos. Autenticación: clave API en el encabezado `Authorization: Bearer API_KEY`. **Cuerpo de la solicitud** | Campo | Tipo | Obligatorio | Descripción | | --- | --- | --- | --- | | `urls` | array of strings | Sí | De 1 a 100 URLs http o https. Los duplicados se leen una vez. | | `options` | object | No | Cualquier parámetro `/read` excepto `url`: `format`, `main_content`, `render`, `include_links`, `include_images`, `country`, `max_chars`, `timeout`. | *Ejemplo: three articles as Markdown* ```json { "urls": [ "https://example.com/blog/post-1", "https://example.com/blog/post-2", "https://example.org/news/launch" ], "options": { "format": "markdown", "max_chars": 50000 } } ``` **Respuesta** `202 Accepted` ```json { "job_id": "job_5c1e8a90d2" } ``` *curl* ```bash curl -s "https://webreaderapi.com/api/v1/batch" \ -H "Authorization: Bearer $WEBREADER_API_KEY" \ -H "Content-Type: application/json" \ -d '{"urls": ["https://example.com/blog/post-1", "https://example.com/blog/post-2"], "options": {"format": "markdown"}}' ``` *Python* ```python import os import requests resp = requests.post( "https://webreaderapi.com/api/v1/batch", headers={"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]}, json={"urls": ["https://example.com/blog/post-1", "https://example.com/blog/post-2"], "options": {"format": "markdown"}}, timeout=30, ) print(resp.json()["job_id"]) ``` *Node.js* ```javascript const res = await fetch('https://webreaderapi.com/api/v1/batch', { method: 'POST', headers: { Authorization: `Bearer ${process.env.WEBREADER_API_KEY}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ urls: ['https://example.com/blog/post-1', 'https://example.com/blog/post-2'], options: { format: 'markdown' } }), }); console.log((await res.json()).job_id); ``` ## Iniciar un trabajo de rastreo (crawl) `POST /api/v1/crawl` Lee un sitio web desde una URL de inicio, en anchura (breadth first). El rastreador se mantiene en el dominio de la URL de inicio, usa el sitemap indicado en robots.txt o encontrado en `/sitemap.xml`, y respeta robots.txt y Crawl-delay. Los valores son ilustrativos. Autenticación: clave API en el encabezado `Authorization: Bearer API_KEY`. **Cuerpo de la solicitud** | Campo | Tipo | Obligatorio | Descripción | | --- | --- | --- | --- | | `url` | string | Sí | La página de inicio, como la portada de un sitio de documentación. | | `limit` | integer | No | Número máximo de páginas a leer, hasta 10.000. El trabajo se detiene al alcanzar este número. | | `max_depth` | integer | No | Número máximo de pasos de enlace desde la URL de inicio. | | `include_paths` | array of strings | No | Patrones de ruta simples que conservar, como `/docs/*`. | | `exclude_paths` | array of strings | No | Patrones de ruta simples que omitir, como `/blog/tag/*`. | | `options` | object | No | Cualquier parámetro `/read` excepto `url`, aplicado a cada página. | *Ejemplo: the docs section of a site, 500 pages at most* ```json { "url": "https://docs.example.com/", "limit": 500, "max_depth": 3, "include_paths": [ "/docs/*" ], "exclude_paths": [ "/docs/archive/*" ], "options": { "format": "markdown" } } ``` **Respuesta** `202 Accepted` ```json { "job_id": "job_8b27f41c0e" } ``` *curl* ```bash curl -s "https://webreaderapi.com/api/v1/crawl" \ -H "Authorization: Bearer $WEBREADER_API_KEY" \ -H "Content-Type: application/json" \ -d '{"url": "https://docs.example.com/", "limit": 500, "include_paths": ["/docs/*"]}' ``` *Python* ```python import os import requests resp = requests.post( "https://webreaderapi.com/api/v1/crawl", headers={"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]}, json={"url": "https://docs.example.com/", "limit": 500, "include_paths": ["/docs/*"]}, timeout=30, ) print(resp.json()["job_id"]) ``` *Node.js* ```javascript const res = await fetch('https://webreaderapi.com/api/v1/crawl', { method: 'POST', headers: { Authorization: `Bearer ${process.env.WEBREADER_API_KEY}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ url: 'https://docs.example.com/', limit: 500, include_paths: ['/docs/*'] }), }); console.log((await res.json()).job_id); ``` ## Consultar el estado y los resultados de un trabajo `GET /api/v1/jobs/{job_id}` Devuelve el estado del trabajo y los siguientes resultados que estén listos. Cada elemento de `results` es una respuesta `/read` completa o `{url, error}` para una página que no se pudo leer. Cuando `next_cursor` está presente, vuelve a llamar con `cursor` ajustado a él; cuando no está, todavía no hay más resultados listos. Los valores son ilustrativos. Autenticación: clave API en el encabezado `Authorization: Bearer API_KEY`. **Parámetros** | Nombre | En | Tipo | Obligatorio | Descripción | | --- | --- | --- | --- | --- | | `job_id` | path | string | Sí | El ID devuelto por `/batch` o `/crawl`. | | `cursor` | query | string | No | El valor de `next_cursor` de la llamada anterior, para obtener los resultados siguientes. | **Respuesta** `200` ```json { "job_id": "job_8b27f41c0e", "status": "running", "results": [ { "url": "https://docs.example.com/docs/install", "final_url": "https://docs.example.com/docs/install", "status_code": 200, "rendered": false, "credits_used": 1, "title": "Install", "markdown": "# Install\n\nRun the installer...", "word_count": 418 }, { "url": "https://docs.example.com/docs/private", "error": { "code": "blocked_by_robots", "message": "robots.txt disallows this page for WebReaderAPI." } } ], "next_cursor": "c_000002", "credits_used": 1 } ``` *curl* ```bash curl -sG "https://webreaderapi.com/api/v1/jobs/job_8b27f41c0e" \ -H "Authorization: Bearer $WEBREADER_API_KEY" \ -d cursor=c_000002 ``` *Python* ```python import os import requests resp = requests.get( "https://webreaderapi.com/api/v1/jobs/job_8b27f41c0e", headers={"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]}, params={"cursor": "c_000002"}, timeout=30, ) job = resp.json() print(job["status"], len(job["results"]), job.get("next_cursor")) ``` *Node.js* ```javascript const res = await fetch('https://webreaderapi.com/api/v1/jobs/job_8b27f41c0e?cursor=c_000002', { headers: { Authorization: `Bearer ${process.env.WEBREADER_API_KEY}` }, }); const job = await res.json(); console.log(job.status, job.results.length, job.next_cursor); ``` ## ¿Cómo espero a que termine un trabajo? Haz polling a `/jobs/{job_id}` y conserva el cursor. Procesa los resultados que recibas y vuelve a llamar con `cursor` ajustado a `next_cursor`. Cuando `next_cursor` está ausente y `status` es `done`, ya tienes todo; cuando está ausente y el trabajo sigue en `running`, espera y vuelve a preguntar con el mismo cursor. Empieza a hacer polling cada 2 segundos y duplica la espera hasta 30 segundos mientras no llegue nada nuevo. Un rastreo que respeta el Crawl-delay de un sitio puede tardar, así que una espera larga es normal y no cuesta nada. *Python: hacer polling de un trabajo y guardar cada página como un archivo .md* ```python import os import pathlib import re import time import requests JOBS = "https://webreaderapi.com/api/v1/jobs" HEADERS = {"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]} def save_job(job_id, folder="pages"): out = pathlib.Path(folder) out.mkdir(exist_ok=True) cursor, wait, saved = None, 2, 0 while True: params = {"cursor": cursor} if cursor else {} job = requests.get(f"{JOBS}/{job_id}", headers=HEADERS, params=params, timeout=30).json() for item in job["results"]: if "error" in item: print("skipped", item["url"], item["error"]["code"]) continue name = re.sub(r"[^a-z0-9]+", "-", item["final_url"].lower()).strip("-")[:120] (out / f"{name}.md").write_text(item["markdown"], encoding="utf-8") saved += 1 if job.get("next_cursor"): cursor, wait = job["next_cursor"], 2 continue if job["status"] == "done": return saved time.sleep(wait) wait = min(wait * 2, 30) if __name__ == "__main__": print(save_job("job_8b27f41c0e"), "pages saved") ``` ## ¿Qué páginas lee un rastreo? Un rastreo parte de tu URL y avanza hacia fuera un paso de enlace a la vez, en anchura, hasta `max_depth`. También lee el sitemap del sitio, desde la dirección indicada en robots.txt o desde `/sitemap.xml`, para encontrar páginas a las que apuntan pocos enlaces. - **Solo el mismo dominio.** Los enlaces a otros dominios se listan en los resultados cuando pides `include_links`, pero no se leen. - **Filtros de ruta.** `include_paths` y `exclude_paths` aceptan patrones simples como `/blog/*`. - **Una copia por página.** Cuando un sitio declara una URL canónica, una página alcanzada por varias direcciones se lee una vez. - **Un tope estricto.** El trabajo termina cuando ha leído `limit` páginas. ## ¿Cómo respeta un rastreo al sitio? Cada solicitud lleva el User-Agent `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)`, y el rastreador sigue las reglas de robots.txt para `WebReaderAPI`, o para todos los robots cuando ninguno lo nombra. Las páginas no permitidas se omiten y aparecen en `results` con el error `blocked_by_robots`; no cuestan nada. Cuando robots.txt define un `Crawl-delay`, el rastreador espera ese tiempo entre dos solicitudes al sitio. Si un sitio declara Content-Signal: ai-input=no en su robots.txt, no leemos sus páginas para ti. 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. ## ¿Cuánto cuesta un rastreo? Cada página leída cuesta lo mismo que una llamada `/read`: 1 crédito, 2 si la página necesitó un navegador, más 10 con `country`. Las páginas omitidas y las fallidas son gratis. El campo `credits_used` del trabajo suma lo facturado hasta el momento. Un sitio de documentación de 500 páginas leído sin navegador usa unos 500 créditos, que el pack 10.000 páginas (3,75 US$) cubre muchas veces. Como un trabajo no se puede cancelar en v1, `limit` es tu límite de gasto: ajústalo al máximo de páginas que estás dispuesto a pagar. ## Batch y crawl: preguntas frecuentes ### ¿Debo usar /batch o muchas llamadas a /read? Usa `/batch` cuando ya tengas las URLs y no necesites cada respuesta de inmediato. Te ahorra gestionar la concurrencia y los reintentos. Usa `/read` cuando un agente necesite una página ahora. ### ¿Cuánto tiempo se conservan los resultados de un trabajo? Recógelos en cuanto estén listos. Los resultados esperan hasta que los descargues; una vez entregados, no se conserva ninguna copia del contenido de la página, así que guarda lo que necesites de tu lado. ### ¿Puede un rastreo seguir enlaces a otros sitios web? No. Un rastreo lee un solo dominio. Los otros dominios aparecen como enlaces cuando los pides, y puedes enviar esas URLs a `/batch` si quieres que se lean. ### ¿Puedo detener un rastreo que ya ha empezado? No en v1. El trabajo se detiene a las `limit` páginas, así que elige un límite que se ajuste a tu presupuesto. Las páginas ya leídas siguen facturándose; las páginas que nunca se leyeron no cuestan nada. --- 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. --- # De página web a Markdown con curl y jq > Convierte páginas web en Markdown con curl y jq: guarda una página, lista enlaces, ejecuta un batch y consulta créditos. Desde 0,07 US$/1K páginas, sin KYC. - URL: https://webreaderapi.com/es/docs/curl/ - Última actualización: 2026-10-22 - Editor: WebReaderAPI (https://webreaderapi.com) Todo lo que hace la API cabe en una línea de shell. Estas recetas usan curl para llamar a la API y jq para extraer campos del JSON, con una versión para PowerShell en Windows al final. **Respuesta rápida — ¿Cómo convierto una página web a Markdown desde la línea de comandos?** Ejecuta `curl -sG https://webreaderapi.com/api/v1/read --data-urlencode "url=…"` con tu clave en un header `Authorization: Bearer` y pasa la respuesta por una tubería a `jq -r .markdown`. **WebReaderAPI** devuelve el contenido principal de la página como Markdown con sus metadatos. Una página normal usa 1 crédito, desde 0,07 US$/1K páginas a octubre de 2026. Sin KYC; paga con criptomonedas. ## ¿Cómo configuro el terminal? Instala curl y jq, que la mayoría de los sistemas Linux y macOS ya tienen, y exporta tu clave una vez por sesión. Cada receta de abajo la lee desde `$WEBREADER_API_KEY`, así la clave nunca aparece en el historial del shell como parte de un comando. Usa `-G` con `--data-urlencode` para las solicitudes GET: curl codifica la dirección de la página por ti, lo cual importa porque las direcciones contienen `?`, `&` y `=` propios. *Configura la clave y guarda una página como archivo .md* ```bash export WEBREADER_API_KEY="your-key" curl -sG "https://webreaderapi.com/api/v1/read" \ -H "Authorization: Bearer $WEBREADER_API_KEY" \ --data-urlencode "url=https://example.com/guides/compost" \ | jq -r '.markdown' > compost.md ``` ## ¿Cómo veo qué devolvió una llamada y cuánto costó? Pídele a jq los metadatos en lugar del contenido. `final_url` muestra a dónde llevaron las redirecciones, `rendered` te dice si se usó un navegador y `credits_used` es lo que costó la llamada. Si la respuesta es un error, el mismo filtro imprime los campos de `null`; imprime `.error` para leer el código y el mensaje. *Solo metadatos, o el error si lo hay* ```bash curl -sG "https://webreaderapi.com/api/v1/read" \ -H "Authorization: Bearer $WEBREADER_API_KEY" \ --data-urlencode "url=https://example.com/guides/compost" \ | jq '.error // {title, final_url, rendered, credits_used, word_count}' ``` ## ¿Cómo listo los enlaces de una página? Añade `include_links=true` y convierte la lista `links` en líneas separadas por tabulaciones. Así obtienes un mapa rápido de los enlaces salientes de una página, que puedes ordenar, filtrar con grep o pasar a un trabajo por lotes. *Enlaces como texto y URL, uno por línea* ```bash curl -sG "https://webreaderapi.com/api/v1/read" \ -H "Authorization: Bearer $WEBREADER_API_KEY" \ --data-urlencode "url=https://example.com/docs/" \ -d include_links=true \ | jq -r '.links[] | "\(.text)\t\(.url)"' | sort -u ``` ## ¿Cómo leo una página con JavaScript o un PDF? Añade `-d render=true` para una página que construye su contenido con JavaScript; entonces cuesta 2 créditos. Un PDF no necesita nada especial: envía su URL y el texto vuelve en `markdown`. Los archivos PDF de hasta 20 MB y 100 páginas se convierten a Markdown, a 1 crédito por cada bloque de 10 páginas iniciado. *Una página renderizada, luego un PDF* ```bash curl -sG "https://webreaderapi.com/api/v1/read" -H "Authorization: Bearer $WEBREADER_API_KEY" \ --data-urlencode "url=https://example.com/app/changelog" -d render=true \ | jq -r '.markdown' > changelog.md curl -sG "https://webreaderapi.com/api/v1/read" -H "Authorization: Bearer $WEBREADER_API_KEY" \ --data-urlencode "url=https://example.com/files/annual-report.pdf" \ | jq -r '.markdown' > annual-report.md ``` ## ¿Cómo ejecuto un trabajo por lotes desde el shell? Envía un cuerpo JSON con tus URLs a `/batch`, guarda el `job_id` y luego lee el trabajo. Un pequeño bucle espera hasta que el trabajo esté `done` e imprime el título o el código de error de cada página. Para trabajos largos, sigue `next_cursor` como se muestra en la [página de lotes y rastreo](https://webreaderapi.com/es/docs/crawl/). *Lote de tres URLs, luego espera el resultado* ```bash JOB=$(curl -s "https://webreaderapi.com/api/v1/batch" \ -H "Authorization: Bearer $WEBREADER_API_KEY" \ -H "Content-Type: application/json" \ -d '{"urls": ["https://example.com/a", "https://example.com/b", "https://example.com/c"]}' \ | jq -r '.job_id') until [ "$(curl -s "https://webreaderapi.com/api/v1/jobs/$JOB" -H "Authorization: Bearer $WEBREADER_API_KEY" | jq -r '.status')" = "done" ]; do sleep 5 done curl -s "https://webreaderapi.com/api/v1/jobs/$JOB" -H "Authorization: Bearer $WEBREADER_API_KEY" \ | jq -r '.results[] | "\(.url)\t\(.title // .error.code)"' ``` ## ¿Cómo consulto mis créditos? Llama a `/credits`; es gratis. Devuelve `credits_remaining`, `credits_used_today` y tu `concurrency_limit`. Los créditos prepago nunca caducan: las páginas sin usar permanecen en tu cuenta hasta que las uses. *Créditos restantes* ```bash curl -s "https://webreaderapi.com/api/v1/credits" -H "Authorization: Bearer $WEBREADER_API_KEY" | jq '.credits_remaining' ``` ## ¿Cuál es la versión de PowerShell en Windows? `Invoke-RestMethod` analiza el JSON por ti, así que no necesitas jq. Construye la consulta con `[uri]::EscapeDataString` para codificar la dirección de la página y pasa la clave en una tabla de headers. *PowerShell: guarda una página* ```powershell $headers = @{ Authorization = "Bearer $env:WEBREADER_API_KEY" } $target = [uri]::EscapeDataString('https://example.com/guides/compost') $page = Invoke-RestMethod -Uri "https://webreaderapi.com/api/v1/read?url=$target" -Headers $headers $page.markdown | Out-File -Encoding utf8 compost.md "$($page.title): $($page.word_count) words, $($page.credits_used) credit(s)" ``` ## curl: preguntas frecuentes ### ¿Por qué falla mi URL con &? Porque el shell o curl la dividen. Pon entre comillas todo el argumento `url=…` y pásalo con `--data-urlencode`, como en las recetas de arriba; entonces curl codifica `&`, `?` y `=` dentro de la dirección de la página. ### ¿Cómo veo el estado HTTP de un error? Añade `-w '\n%{http_code}\n'` para imprimirlo después del cuerpo, o `-i` para ver todos los headers. El `error.code` del cuerpo es el valor estable que debes comprobar en tus scripts. ### ¿Se cobra una llamada fallida? 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. --- 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. --- # Errores, rechazos por robots.txt y reintentos > Códigos de error de WebReaderAPI: rechazos por robots.txt, del sitio, tiempos de espera y créditos, cuáles reintentar y por qué no se cobra. - URL: https://webreaderapi.com/es/docs/errors/ - Última actualización: 2026-10-22 - Editor: WebReaderAPI (https://webreaderapi.com) Cada error tiene un estado HTTP, un `code` estable y un `message` legible. Ninguno usa un crédito. Algunos merecen un reintento; los rechazos que vienen de un sitio son definitivos y nunca los eludimos. **Respuesta rápida — ¿Qué significan los códigos de error de WebReaderAPI y cuáles debo reintentar?** Los errores **WebReaderAPI** vienen en tres grupos, y ninguno se cobra nunca. Los problemas de la solicitud (`invalid_url`, `invalid_api_key`, `insufficient_credits`) requieren una corrección de tu parte. Las decisiones del sitio (`blocked_by_robots`, `blocked_by_site_policy`, `target_refused`) son definitivas. Los fallos temporales (`fetch_failed`, `fetch_timeout`, `concurrency_limit`) se pueden reintentar con backoff. Los créditos empiezan en 0,07 US$/1K páginas, se pagan con criptomonedas y sin KYC. ## ¿Qué códigos de error puede devolver la API? El cuerpo siempre es `{"error": {"code", "message"}}`, más `target_status` cuando el rechazo vino del sitio. | HTTP | `code` | Causa | ¿Reintentar? | | --- | --- | --- | --- | | 400 | `invalid_url` | No es http o https, es demasiado larga, o es una dirección privada, local o de metadatos en la nube | No: corrige la URL | | 400 | `invalid_parameter` | Un parámetro tiene un valor fuera de su lista o rango | No: corrige la solicitud | | 401 | `invalid_api_key` | Clave ausente, incorrecta o revocada | No: revisa la clave | | 402 | `insufficient_credits` | Tu saldo no tiene créditos disponibles | Después de comprar un pack | | 403 | `blocked_by_robots` | El robots.txt del sitio no permite la página para WebReaderAPI ni para ningún robot | No: es definitivo | | 403 | `blocked_by_site_policy` | El sitio declara `Content-Signal: ai-input=no` | No: es definitivo | | 422 | `unsupported_content` | Un tipo que no leemos (vídeo, archivo) o un archivo demasiado grande | No | | 429 | `concurrency_limit` | Hay demasiadas solicitudes tuyas ejecutándose a la vez | Sí, con backoff | | 502 | `target_refused` | El sitio rechazó la petición: 403, 429, una página de desafío o un muro de inicio de sesión; su estado está en `target_status` | No: es definitivo | | 502 | `fetch_failed` | Error de DNS, TLS o conexión, o el sitio respondió 404 o 410 | Una o dos veces, con backoff | | 504 | `fetch_timeout` | El sitio no respondió en `timeout` | Sí, con backoff o un timeout más largo | ## ¿Por qué son definitivos el robots.txt y los rechazos del sitio? Porque son la decisión del propietario del sitio, y WebReaderAPI está diseñado para respetarla. Respetamos robots.txt: nuestro rastreador se identifica como WebReaderAPI, sigue las reglas escritas para él o para todos los robots y no lee una página que un sitio prohíbe. Las páginas rechazadas no se cobran. Si un sitio declara Content-Signal: ai-input=no en su robots.txt, no leemos sus páginas para ti. Cuando un sitio rechaza una solicitud de otra forma, con un 403, un 429, una página de desafío o un formulario de inicio de sesión, recibes `target_refused` y el estado propio del sitio en `target_status`. 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. Reintentar la misma URL un minuto después normalmente dará la misma respuesta, así que trata estos códigos como un resultado, no como un fallo: regístralos y continúa. ## ¿Cómo compruebo por qué se rechazó una página? Abre el `/robots.txt` del sitio y busca un grupo que nombre `WebReaderAPI`, o el grupo `*` que se aplica a todos los robots. Una línea `Disallow` que coincida con la ruta explica un `blocked_by_robots`. Una línea como `Content-Signal: ai-input=no` explica un `blocked_by_site_policy`. Conservamos una copia de cada robots.txt durante un máximo de 24 horas. Si un sitio acaba de abrir una sección a los robots, el cambio puede tardar hasta un día en aplicarse. Los propietarios de sitios pueden leer cómo se comporta nuestro rastreador, y cómo permitirlo o bloquearlo, en [nuestra página del rastreador](https://webreaderapi.com/es/bot/). ## ¿Cómo debo reintentar los fallos temporales? Reintenta solo `concurrency_limit`, `fetch_timeout` y, una o dos veces, `fetch_failed`. Espera antes de cada nuevo intento y duplica la espera cada vez, con un poco de jitter aleatorio para que los workers en paralelo no reintenten a la vez. Detente tras 4 o 5 intentos. Para `concurrency_limit`, la mejor solución es enviar menos solicitudes a la vez: Cada cuenta tiene un límite de cuántas páginas lee a la vez; tu panel lo muestra y el soporte puede ampliarlo. Para `fetch_timeout`, sube `timeout` hasta 60 segundos antes de reintentar un sitio lento. Los reintentos no cuestan nada, porque un intento fallido nunca se factura. *Python: reintenta solo los errores que pueden cambiar* ```python import os import random import time import requests API = "https://webreaderapi.com/api/v1/read" HEADERS = {"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]} RETRY = {"concurrency_limit", "fetch_timeout", "fetch_failed"} FINAL = {"blocked_by_robots", "blocked_by_site_policy", "target_refused", "unsupported_content"} def read_page(url, attempts=5, **options): wait = 1.0 for attempt in range(1, attempts + 1): resp = requests.get(API, headers=HEADERS, params={"url": url, **options}, timeout=75) if resp.status_code == 200: return resp.json() error = resp.json().get("error", {}) code = error.get("code", "unknown") if code in FINAL: return {"url": url, "skipped": code, "target_status": error.get("target_status")} if code not in RETRY or attempt == attempts or (code == "fetch_failed" and attempt >= 3): raise RuntimeError(f"{code}: {error.get('message')}") time.sleep(wait + random.uniform(0, wait / 2)) wait = min(wait * 2, 30) raise RuntimeError("unreachable") if __name__ == "__main__": print(read_page("https://example.com/blog/first-post", max_chars=20000).get("title")) ``` *Node.js: la misma regla con backoff exponencial* ```javascript const RETRY = new Set(['concurrency_limit', 'fetch_timeout', 'fetch_failed']); const FINAL = new Set(['blocked_by_robots', 'blocked_by_site_policy', 'target_refused', 'unsupported_content']); const sleep = (ms) => new Promise((r) => setTimeout(r, ms)); export async function readPage(url, options = {}, attempts = 5) { let wait = 1000; for (let attempt = 1; attempt <= attempts; attempt++) { const params = new URLSearchParams({ url, ...options }); const res = await fetch(`https://webreaderapi.com/api/v1/read?${params}`, { headers: { Authorization: `Bearer ${process.env.WEBREADER_API_KEY}` }, }); const body = await res.json(); if (res.ok) return body; const code = body.error?.code ?? 'unknown'; if (FINAL.has(code)) return { url, skipped: code, target_status: body.error.target_status }; if (!RETRY.has(code) || attempt === attempts) throw new Error(`${code}: ${body.error?.message}`); await sleep(wait + Math.random() * (wait / 2)); wait = Math.min(wait * 2, 30000); } } ``` ## ¿Y los errores dentro de un lote o de un rastreo? Un trabajo no se detiene porque falle una página. Esa página aparece en `results` como `{url, error}` con los mismos códigos que arriba, y no cuesta nada. Un rastreo que se encuentra con `blocked_by_robots` en una sección simplemente lee el resto del sitio. Al final de un trabajo, cuenta los códigos de error. Muchos `target_refused` en un sitio significan que el sitio no acepta lectores automatizados; muchos `fetch_timeout` significan que es lento, y un `timeout` más largo en las opciones del trabajo puede ayudar. ## Errores: preguntas frecuentes ### ¿Me cobran por una página que robots.txt bloquea? 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. Lo mismo ocurre con cualquier otro error de esta página. ### ¿Pueden leer una página que bloquea su rastreador si se lo pido? No. Respetamos la decisión del propietario del sitio, y la política es la misma para todos los clientes. Si eres el propietario del sitio, añade una regla para `WebReaderAPI` en tu robots.txt; la [página del rastreador](https://webreaderapi.com/es/bot/) explica cómo. ### ¿Por qué recibo fetch_failed para una página que existe? Puede que el sitio estuviera caído, tardara en aceptar una conexión TLS o devolviera 404 a clientes automatizados. Reintenta una o dos veces con backoff. Si sigue fallando, comprueba la dirección en un navegador. ### ¿Qué debería decir mi agente al usuario tras un rechazo? Algo simple, como que el sitio no permite la lectura automatizada de esa página. Luego deja que el modelo use otras fuentes. Devolver el código de error como resultado de la herramienta basta para la mayoría de los modelos. --- 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. --- # LangChain y LlamaIndex: un cargador de páginas web y una herramienta read_url > Cargador de páginas web para LangChain y LlamaIndex: read_url, document loader e índice RAG desde un rastreo en Python. Sin KYC, paga con criptomonedas. - URL: https://webreaderapi.com/es/docs/langchain/ - Última actualización: 2026-10-22 - Editor: WebReaderAPI (https://webreaderapi.com) Dos formas de usar la API en un stack de IA en Python: cargar páginas como documentos para recuperación, o dar a un agente una herramienta `read_url`. Las mismas 20 líneas de código sirven para LangChain y LlamaIndex. **Respuesta rápida — ¿Cómo cargo páginas web en LangChain o LlamaIndex como Markdown limpio?** Llama al endpoint `/read` de **WebReaderAPI** y envuelve cada respuesta en un `Document`: el Markdown como contenido, `final_url` y el título como metadatos. Para agentes, expón la misma llamada como una herramienta `read_url`. Cada página cuesta 1 crédito, 2 con navegador, desde 0,07 US$/1K páginas a fecha de octubre de 2026. No se necesita ningún paquete nuestro. Sin KYC; paga con criptomonedas. ## ¿Por qué documentos Markdown en lugar de HTML sin procesar? Porque la recuperación funciona sobre texto, y Markdown conserva la estructura que importa mientras descarta el resto. Los encabezados se mantienen, así que un splitter puede cortar por cambios de tema. Las listas y las tablas se mantienen, así que los pasos y las especificaciones permanecen juntos. La navegación, los banners de cookies y los anuncios desaparecen, así que no contaminan tus embeddings ni desperdician tokens. Los metadatos vienen de la misma llamada: `final_url` como fuente a citar, `title`, `published_at` y `language` para filtrar. *reader.py: el helper compartido (guárdalo junto a tu código)* ```python import os import requests API = "https://webreaderapi.com/api/v1/read" HEADERS = {"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]} class PageError(Exception): pass def read_page(url, **options): resp = requests.get(API, headers=HEADERS, params={"url": url, **options}, timeout=75) body = resp.json() if resp.status_code != 200: raise PageError(body["error"]["code"]) return body ``` ## ¿Cómo construyo un document loader de LangChain? Convierte cada página en un `langchain_core.documents.Document` y luego divídela por encabezados con `MarkdownHeaderTextSplitter` del paquete `langchain-text-splitters`. Cada fragmento conserva la ruta de encabezados en sus metadatos, y añades la URL de origen para que cada respuesta pueda señalar su página. Las páginas omitidas, como las rechazadas por robots.txt, lanzan `PageError` con el código; regístralas y continúa. *LangChain: cargar y dividir páginas* ```python from langchain_core.documents import Document from langchain_text_splitters import MarkdownHeaderTextSplitter from reader import PageError, read_page splitter = MarkdownHeaderTextSplitter(headers_to_split_on=[("#", "h1"), ("##", "h2"), ("###", "h3")]) def load_pages(urls): chunks = [] for url in urls: try: page = read_page(url) except PageError as exc: print("skipped", url, exc) continue for part in splitter.split_text(page["markdown"]): part.metadata.update({"source": page["final_url"], "title": page.get("title", "")}) chunks.append(part) return chunks docs = load_pages(["https://example.com/docs/install", "https://example.com/docs/configure"]) print(len(docs), "chunks", isinstance(docs[0], Document) if docs else "") ``` ## ¿Cómo doy a un agente de LangChain una herramienta read_url? Decora una función con `@tool` de `langchain_core.tools`. El docstring se convierte en la descripción de la herramienta que lee el modelo, así que indica qué devuelve la herramienta y cuándo usarla. Devuelve texto plano: una línea de título, la fuente y el Markdown, recortado con `max_chars` para adaptarse a tu modelo. Vincula la herramienta a cualquier modelo de chat que admita tool calling, o pásala al constructor de tu agente. El modelo entonces llama a `read_url` con una URL de la conversación o de un resultado de búsqueda. *LangChain: la herramienta read_url* ```python import os from langchain.chat_models import init_chat_model from langchain_core.tools import tool from reader import PageError, read_page @tool def read_url(url: str, max_chars: int = 20000) -> str: """Read a public web page and return its main content as Markdown, with its title and source URL.""" try: page = read_page(url, max_chars=max_chars) except PageError as exc: return "Could not read the page: " + str(exc) return "# " + (page.get("title") or url) + "\nSource: " + page["final_url"] + "\n\n" + page["markdown"] model = init_chat_model(os.environ.get("CHAT_MODEL", "openai:gpt-4.1-mini")).bind_tools([read_url]) reply = model.invoke("Summarise https://example.com/blog/first-post in three bullet points.") print(reply.tool_calls) ``` ## ¿Cómo hago lo mismo en LlamaIndex? LlamaIndex usa su propia clase `Document` con `text` y `metadata`, y `FunctionTool.from_defaults` para convertir una función en herramienta. El helper sigue siendo el mismo. Construye un índice a partir de los documentos con `VectorStoreIndex.from_documents`, que usa el modelo de embeddings que indiquen tus ajustes de LlamaIndex. *LlamaIndex: indexar un rastreo y una herramienta read_url* ```python import os import time import requests from llama_index.core import Document, VectorStoreIndex from llama_index.core.tools import FunctionTool from reader import HEADERS, PageError, read_page def crawl_pages(start_url, limit=200): job = requests.post("https://webreaderapi.com/api/v1/crawl", headers=HEADERS, json={"url": start_url, "limit": limit}, timeout=30).json() pages, cursor = [], None while True: params = {"cursor": cursor} if cursor else {} res = requests.get("https://webreaderapi.com/api/v1/jobs/" + job["job_id"], headers=HEADERS, params=params, timeout=30).json() pages += [r for r in res["results"] if "error" not in r] cursor = res.get("next_cursor") if not cursor and res["status"] == "done": return pages if not cursor: time.sleep(5) pages = crawl_pages("https://docs.example.com/") docs = [Document(text=p["markdown"], metadata={"source": p["final_url"], "title": p.get("title", "")}) for p in pages] index = VectorStoreIndex.from_documents(docs) print(index.as_query_engine().query("How do I install the product?")) def read_url(url: str, max_chars: int = 20000) -> str: """Read a public web page and return its main content as Markdown.""" try: return read_page(url, max_chars=max_chars)["markdown"] except PageError as exc: return "Could not read the page: " + str(exc) read_tool = FunctionTool.from_defaults(fn=read_url, name="read_url") print(os.environ.get("CHAT_MODEL", "set CHAT_MODEL for your agent"), read_tool.metadata.name) ``` ## ¿Qué tamaño de rastreo necesita un índice RAG pequeño? Menos de lo que crees. La documentación de un producto suele tener unos cientos de páginas, y un rastreo con `include_paths` ajustado a la sección de docs lee solo esas. A 1 crédito por página, un sitio de docs de 300 páginas cuesta unos 300 créditos; 10.000 páginas (3,75 US$) lo actualiza muchas veces. Vuelve a rastrear con una frecuencia que coincida con la frecuencia con que cambia la fuente, y compara `final_url` y `word_count` con la ejecución anterior para re-embeddear solo las páginas que cambiaron. Los créditos prepago nunca caducan: las páginas sin usar permanecen en tu cuenta hasta que las uses. ## LangChain y LlamaIndex: preguntas frecuentes ### ¿Existe un paquete de WebReaderAPI para LangChain o LlamaIndex? No. El helper y la herramienta de esta página son toda la integración, así que puedes adaptarlos libremente. WebReaderAPI es una API HTTPS simple que cualquier cliente HTTP de Python puede llamar. ### ¿Qué versión de LangChain necesita esto? Cualquiera reciente con `langchain_core`, `langchain-text-splitters` y `init_chat_model`. El decorador de herramientas y la clase `Document` han sido estables en las versiones recientes. ### ¿Cómo evito volver a leer páginas que no cambiaron? Guarda `final_url`, `word_count` y la fecha de cada lectura. Vuelve a leer con una frecuencia determinada y re-embeddéa una página solo cuando cambie su recuento de palabras o el hash de su contenido. Cada relectura cuesta un crédito, así que elige un ritmo que coincida con la fuente. ### ¿Y si algunas páginas son rechazadas? Lanzan `PageError` con un código como `blocked_by_robots`, y no cuestan nada. 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. --- 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. --- # Servidor MCP de lectura de páginas web para Claude, Cursor y otros clientes MCP > Servidor MCP de lectura web para Claude Desktop y Cursor: una herramienta read_url en Python que devuelve Markdown limpio. Sin KYC, paga con criptomonedas. - URL: https://webreaderapi.com/es/docs/mcp/ - Última actualización: 2026-10-22 - Editor: WebReaderAPI (https://webreaderapi.com) Dale a cualquier cliente MCP una herramienta `read_url` que convierte un enlace en Markdown limpio. El servidor es un único archivo Python corto que ejecutas en tu propia máquina; tu clave API se queda en su entorno. **Respuesta rápida — ¿Cómo añado un lector de páginas web a Claude Desktop o Cursor con MCP?** Ejecuta un pequeño servidor MCP que exponga una herramienta `read_url` que llame a **WebReaderAPI** y luego regístralo en los ajustes MCP de tu cliente con tu clave en `env`. El modelo podrá entonces leer cualquier página pública como Markdown limpio. Cada lectura de página cuesta 1 crédito, 2 con navegador, desde 0,07 US$/1K páginas a octubre de 2026. Sin KYC; paga con criptomonedas. ## El servidor MCP de un vistazo | Atributo | Valor | | --- | --- | | Lenguaje | Python 3.10+, con los paquetes `mcp` y `httpx` | | Transporte | stdio: el cliente inicia el servidor como proceso local | | Herramienta | `read_url(url, max_chars)` → título, URL de origen y luego el Markdown de la página | | Por qué no web_fetch | Claude Code y OpenClaw ya incluyen una herramienta integrada con ese nombre | | Clave | Se lee de `WEBREADER_API_KEY` en el entorno del servidor | | 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 | ## ¿Por qué una herramienta read_url y no web_fetch? Porque dos herramientas con el mismo nombre confunden tanto al cliente como al modelo. Claude Code y OpenClaw ya incluyen una herramienta llamada `web_fetch`. Un nombre distinto, `read_url`, y una descripción clara permiten al modelo elegir la nuestra cuando necesita el contenido principal de una página, incluidas páginas con JavaScript y PDFs. La herramienta devuelve texto, no JSON. Los modelos manejan mejor una cabecera corta y Markdown que campos anidados, y la cabecera mantiene visible la URL de origen para que la respuesta pueda citarla. *webreader_mcp.py* ```python import os import httpx from mcp.server.fastmcp import FastMCP API = "https://webreaderapi.com/api/v1/read" KEY = os.environ["WEBREADER_API_KEY"] mcp = FastMCP("webreaderapi") @mcp.tool() def read_url(url: str, max_chars: int = 20000) -> str: """Read a public web page and return its main content as Markdown. Use it when the user gives a link or when a page must be read to answer. max_chars caps the length of the returned text (1,000 to 500,000). """ params = {"url": url, "max_chars": max(1000, min(int(max_chars), 500000))} try: resp = httpx.get(API, params=params, headers={"Authorization": "Bearer " + KEY}, timeout=75) except httpx.HTTPError as exc: return "Network error while reading the page: " + str(exc) body = resp.json() if resp.status_code != 200: err = body.get("error", {}) return "Could not read the page: " + err.get("code", str(resp.status_code)) + ". " + err.get("message", "") title = body.get("title") or url return "# " + title + "\nSource: " + body.get("final_url", url) + "\n\n" + body.get("markdown", "") if __name__ == "__main__": mcp.run() ``` ## ¿Cómo instalo y pruebo el servidor? Crea un entorno virtual, instala `mcp` y `httpx`, y guarda el archivo de arriba. El paquete `mcp` es el SDK oficial de Python del Model Context Protocol; `FastMCP` convierte una función Python tipada en una herramienta, usando el docstring como descripción. Antes de conectarlo a un cliente, ejecuta el archivo una vez desde un terminal con tu clave configurada. Se queda esperando en silencio a un cliente en stdin, lo que significa que se inició correctamente; detenlo con Ctrl+C. *Instalación* ```bash python -m venv .venv . .venv/bin/activate pip install "mcp[cli]" httpx WEBREADER_API_KEY="your-key" python webreader_mcp.py ``` ## ¿Cómo lo registro en Claude Desktop? Abre los ajustes de desarrollador de Claude Desktop, edita `claude_desktop_config.json` y añade una entrada bajo `mcpServers`. Usa rutas absolutas: el Python de tu entorno virtual y el archivo del servidor. Pon la clave en `env`, para que nunca aparezca en los argumentos de la herramienta ni en la conversación. Reinicia Claude Desktop y `read_url` aparecerá en la lista de herramientas. Cursor lee la misma estructura `mcpServers` desde su propio archivo de configuración MCP, y Claude Code puede registrar el mismo comando con su comando `claude mcp add`. Para OpenClaw, consulta la [página de OpenClaw](https://webreaderapi.com/es/docs/openclaw/). *claude_desktop_config.json* ```json { "mcpServers": { "webreaderapi": { "command": "/home/you/webreader/.venv/bin/python", "args": ["/home/you/webreader/webreader_mcp.py"], "env": { "WEBREADER_API_KEY": "your-key" } } } } ``` ## ¿Cómo mantengo las páginas dentro del contexto del modelo? Baja `max_chars`. El valor por defecto de 20.000 caracteres es suficiente para la mayoría de los artículos y evita que una página larga llene el contexto. Un modelo que lee varias páginas en una sola respuesta funciona mejor con 8.000 a 12.000 por página. Pide al modelo que lea las páginas que necesita, no todos los enlaces que ve. Una frase corta en las instrucciones de tu proyecto, como "lee como máximo tres páginas por pregunta", mantiene a raya tanto el coste como el contexto. ## ¿Qué pasa cuando un sitio rechaza la lectura? La herramienta devuelve un mensaje corto con el código de error, como `blocked_by_robots` o `target_refused`, y no se factura nada. Respetamos robots.txt: nuestro rastreador se identifica como WebReaderAPI, sigue las reglas escritas para él o para todos los robots y no lee una página que un sitio prohíbe. Las páginas rechazadas no se cobran. 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. El modelo puede entonces indicar que la página no está disponible para lectores automatizados y usar otra fuente. ## Servidor MCP: preguntas frecuentes ### ¿Existe un paquete MCP oficial de WebReaderAPI? No. El archivo de esta página es la integración: 40 líneas que puedes leer, cambiar y ejecutar tú mismo. No hay nada que instalar de nuestra parte, y tu clave nunca sale de tu máquina salvo en las llamadas a nuestra API. ### ¿Puede el modelo buscar en la web con este servidor? No. `read_url` lee una página cuya dirección ya tienes tú o el modelo. Combínalo con cualquier herramienta de búsqueda que ofrezca tu cliente; el modelo busca y luego lee las páginas que importan. ### ¿Cuánto cuesta ejecutar un asistente con esto? Un crédito por página leída, dos cuando se necesita un navegador. Un asistente que lee 50 páginas al día usa unos 1.500 créditos al mes, y 10.000 páginas (3,75 US$) lo cubre durante unos seis meses. ### ¿Funciona el servidor sin conexión? No. Llama a `https://webreaderapi.com/api/v1/read` para cada página, así que necesita acceso a internet y una clave válida. --- 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. --- # Leer páginas web en agentes de IA de n8n con WebReaderAPI > Leer páginas web en agentes de IA de n8n: ajustes del nodo HTTP Request que convierten cualquier URL en Markdown limpio y un workflow con criptomonedas. - URL: https://webreaderapi.com/es/docs/n8n/ - Última actualización: 2026-10-22 - Editor: WebReaderAPI (https://webreaderapi.com) El nodo HTTP Request de n8n puede actuar como herramienta para su nodo AI Agent. Apúntalo a `/read`, deja que el modelo rellene la URL y el agente podrá leer cualquier página pública como Markdown limpio, sin instalar ningún nodo de la comunidad. **Respuesta rápida — ¿Cómo hago que un agente de IA de n8n lea páginas web?** Adjunta un nodo HTTP Request al AI Agent de n8n como herramienta, configúralo en `GET https://webreaderapi.com/api/v1/read` con una credencial Header Auth que contenga tu clave **WebReaderAPI** y deja que el modelo defina el parámetro `url`. Activa Optimize Response para conservar solo `title`, `final_url` y `markdown`. Cada página cuesta 1 crédito, desde 0,07 US$/1K páginas a fecha de octubre de 2026. Sin KYC; paga con criptomonedas. ## ¿Qué ajustes de HTTP Request uso? Los nombres de las opciones siguen la documentación del nodo HTTP Request de n8n, consultada el 2026-10-22. | Ajuste | Valor | | --- | --- | | Ubicación | Adjuntado al nodo **AI Agent** como herramienta | | Method | `GET` | | URL | `https://webreaderapi.com/api/v1/read` | | Autenticación | Generic credentials → **Header Auth** | | Credencial Header Auth | Name `Authorization`, Value `Bearer ` seguido de tu clave API | | Send Query Parameters | Activado, **Using Fields Below** | | Parámetro `url` | Definido por el modelo (ver abajo) | | Parámetro `max_chars` | Un valor fijo como `15000` | | Optimize Response | Activado · tipo de respuesta **JSON** · Include Fields **Selected**: `title`, `final_url`, `markdown` | ## ¿Por qué usar el nodo HTTP Request como herramienta? Porque ya hace todo lo que necesita esta API: una petición GET, una cabecera y dos parámetros de consulta. n8n documenta que el nodo HTTP Request puede ejecutarse como nodo normal o adjuntarse a un agente de IA como herramienta, y que algunas opciones solo existen en el formulario de herramienta. No hay nada nuestro que instalar ni actualizar, y la clave está en el almacén de credenciales de n8n en lugar de en el workflow. Dale a n8n su propia clave, así su uso queda visible aparte de tus otros scripts y puedes revocarla por separado. Crea varias claves API, por ejemplo una por agente o proyecto, y revoca cualquiera de ellas desde tu panel. ## ¿Cómo elige el modelo la URL que va a leer? Deja que el modelo defina el parámetro `url`. n8n muestra un botón junto a los campos de parámetro elegibles que entrega el valor al modelo, y también puedes escribir la expresión tú mismo con la función `$fromAI()` de n8n. Recibe una clave, una descripción, un tipo y un valor predeterminado opcional, por ejemplo la clave `url`, la descripción "The http or https address of the page to read" y el tipo `string`. n8n documenta que `$fromAI()` solo funciona en herramientas conectadas al nodo AI Agent. Escribe también la descripción de la herramienta con palabras sencillas, como "Reads a public web page and returns its main content as Markdown", para que el agente sepa cuándo llamarla. ## ¿Por qué activar Optimize Response? Porque todo lo que devuelve una herramienta entra en el contexto del modelo. Optimize Response es una opción exclusiva de las herramientas que reduce los datos enviados al modelo. Con el tipo de respuesta JSON puedes incluir solo los campos seleccionados; conserva `title`, `final_url` y `markdown` y descarta el resto. Limita la longitud por nuestro lado con `max_chars`, que recorta el Markdown antes de que salga de la API. Los tipos de respuesta HTML y Text del nodo tienen su propia opción Truncate Response, pero con nuestra respuesta JSON `max_chars` es el control más simple. ## ¿Cómo uso la API en un workflow programado? Usa el nodo HTTP Request como nodo normal, no como herramienta, detrás de un Schedule Trigger. Dale un `url` fijo, como un changelog o una página de precios que sigas, y envía el campo `markdown` al siguiente nodo: un archivo, una base de datos, un mensaje de chat o una comparación con la ejecución anterior. Cada ejecución lee una página por URL. Vigilar 20 páginas una vez al día consume unos 600 créditos al mes en páginas sin navegador, así que 10.000 páginas (3,75 US$) dura más de un año. Los créditos prepago nunca caducan: las páginas sin usar permanecen en tu cuenta hasta que las uses. ## ¿Qué pasa cuando un sitio rechaza la lectura? El nodo recibe una respuesta de error con un código como `blocked_by_robots` o `target_refused`, y no se factura nada. Respetamos robots.txt: nuestro rastreador se identifica como WebReaderAPI, sigue las reglas escritas para él o para todos los robots y no lee una página que un sitio prohíbe. Las páginas rechazadas no se cobran. En un agente, deja que la herramienta devuelva el error para que el modelo pueda explicarlo o probar otra fuente; en un workflow programado, dirige los errores a una rama que los registre. La [página de errores](https://webreaderapi.com/es/docs/errors/) enumera todos los códigos. ## ¿Puedo probar la llamada antes de construir el workflow? Ejecuta la misma llamada en una terminal con curl, como se muestra en las [recetas de curl](https://webreaderapi.com/es/docs/curl/). Si funciona ahí y falla en n8n, la causa está en los ajustes del nodo, lo más habitual es que el valor de la credencial no incluya el prefijo `Bearer ` o que el parámetro `url` quede vacío. ## n8n: preguntas frecuentes ### ¿Necesito un nodo de la comunidad para WebReaderAPI? No. Basta con el nodo HTTP Request integrado, como herramienta para el AI Agent o como nodo normal en cualquier workflow. ### ¿El agente puede leer páginas JavaScript o PDF? Sí. La API decide cuándo se necesita un navegador (`render=auto`) y lee los PDF como texto. Una página renderizada usa 2 créditos; Los archivos PDF de hasta 20 MB y 100 páginas se convierten a Markdown, a 1 crédito por cada bloque de 10 páginas iniciado. ### ¿Cómo evito que el agente lea demasiadas páginas? Indica cuántas páginas puede leer en el mensaje de sistema del agente y mantén `max_chars` moderado. Cada lectura es una llamada a herramienta, así que cualquier límite que pongas a las llamadas a herramienta del agente también limita el número de páginas. ### ¿Cómo pago los créditos? Recarga desde 25 US$ en BTC, USDT, USDC, ETH, SOL, LTC y luego compra un pack. WebReaderAPI no pide identificación, ni selfie, ni documentos de empresa. ## Fuentes 1. [Nodo HTTP Request](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/) — n8n docs (read 2026-10-22) 2. [Credenciales HTTP Request](https://docs.n8n.io/integrations/builtin/credentials/httprequest/) — n8n docs (read 2026-10-22) 3. [Nodo AI Agent](https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/) — n8n docs (read 2026-10-22) 4. [Deja que la IA especifique los parámetros de la herramienta con $fromAI()](https://docs.n8n.io/advanced-ai/examples/using-the-fromai-function/) — n8n docs (read 2026-10-22) --- 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. --- # Convertir una página web a Markdown en Node.js > Convierte páginas web a Markdown en Node.js con fetch nativo: una página, un pool de concurrencia y un bucle de rastreo. Desde 0,07 US$/1K páginas, sin KYC. - URL: https://webreaderapi.com/es/docs/node/ - Última actualización: 2026-10-22 - Editor: WebReaderAPI (https://webreaderapi.com) Node.js 18 y posteriores incluyen `fetch`, así que no necesitas ninguna dependencia. Tres recetas: leer una página, leer una lista con un pequeño pool de concurrencia y seguir un trabajo de rastreo hasta que termine. **Respuesta rápida — ¿Cómo convierto una página web a Markdown en Node.js?** Usa el `fetch` integrado de Node.js 18+: llama a `https://webreaderapi.com/api/v1/read?url=…` con tu clave en el header `Authorization` y lee `markdown` de la respuesta JSON. **WebReaderAPI** devuelve el contenido principal de la página con su título, autor y fecha. Una página cuesta 1 crédito, 2 con navegador, desde 0,07 US$/1K páginas a octubre de 2026. Sin KYC; paga con criptomonedas. ## ¿Qué necesito? Node.js 18 o posterior, para el `fetch` global, y una clave API en la variable de entorno `WEBREADER_API_KEY`. Los ejemplos son módulos ES: guárdalos con la extensión `.mjs`, o configura `"type": "module"` en tu `package.json`, para que funcione el `await` de nivel superior. Los comentarios JSDoc describen la forma de la respuesta, así que editores como VS Code te dan autocompletado sin un paso de compilación de TypeScript. *read.mjs: una página* ```javascript /** * @typedef {Object} Page * @property {string} url * @property {string} final_url * @property {number} status_code * @property {boolean} rendered * @property {number} credits_used * @property {string} [title] * @property {string} [author] * @property {string} [published_at] * @property {string} [language] * @property {string} [markdown] * @property {number} word_count */ /** @returns {Promise} */ export async function readPage(url, options = {}) { const params = new URLSearchParams({ url, ...options }); const res = await fetch(`https://webreaderapi.com/api/v1/read?${params}`, { headers: { Authorization: `Bearer ${process.env.WEBREADER_API_KEY}` }, signal: AbortSignal.timeout(75_000), }); const body = await res.json(); if (!res.ok) throw Object.assign(new Error(body.error.message), { code: body.error.code }); return body; } const page = await readPage('https://example.com/docs/getting-started', { max_chars: '20000' }); console.log(page.title, page.word_count, 'words,', page.credits_used, 'credit(s)'); ``` ## ¿Cómo leo una lista de URLs sin alcanzar el límite? Ejecuta un número fijo de workers que toman URLs de una cola compartida. Es más simple que `Promise.all` sobre toda la lista, que iniciaría todas las solicitudes a la vez y alcanzaría `429 concurrency_limit`. Cada cuenta tiene un límite de cuántas páginas lee a la vez; tu panel lo muestra y el soporte puede ampliarlo. El pool de abajo mantiene los errores junto a los resultados, así que una página rechazada no detiene la ejecución. Los rechazos como `blocked_by_robots` son definitivos y gratuitos; cuéntalos y continúa. *pool.mjs: una lista de URLs, 8 a la vez* ```javascript import { readPage } from './read.mjs'; export async function readAll(urls, workers = 8) { const queue = [...urls]; const results = []; async function worker() { while (queue.length) { const url = queue.shift(); try { const page = await readPage(url, { max_chars: '50000' }); results.push({ url, page }); } catch (err) { results.push({ url, error: err.code ?? err.name }); } } } await Promise.all(Array.from({ length: workers }, worker)); return results; } const urls = Array.from({ length: 30 }, (_, i) => `https://example.com/blog/post-${i + 1}`); for (const r of await readAll(urls)) console.log(r.url, '->', r.error ?? r.page.title); ``` ## ¿Cómo sigo un trabajo de rastreo en Node.js? Inicia el trabajo con `POST https://webreaderapi.com/api/v1/crawl` y luego lee `https://webreaderapi.com/api/v1/jobs/{job_id}` en un bucle. Pasa `cursor` cada vez que `next_cursor` vuelva; cuando no haya cursor y el estado sea `done`, el trabajo ha terminado. Espera entre sondeos vacíos y duplica la espera hasta 30 segundos, ya que un rastreo que respeta el Crawl-delay de un sitio puede ser lento. La [página de batch y rastreo](https://webreaderapi.com/es/docs/crawl/) describe cómo el rastreo elige sus páginas y cómo `limit` limita lo que lee. *crawl.mjs: inicia un rastreo y recoge cada página* ```javascript const headers = { Authorization: `Bearer ${process.env.WEBREADER_API_KEY}`, 'Content-Type': 'application/json', }; const sleep = (ms) => new Promise((r) => setTimeout(r, ms)); const start = await fetch('https://webreaderapi.com/api/v1/crawl', { method: 'POST', headers, body: JSON.stringify({ url: 'https://docs.example.com/', limit: 300, include_paths: ['/docs/*'] }), }); const { job_id } = await start.json(); const pages = []; let cursor = ''; let wait = 2000; for (;;) { const url = `https://webreaderapi.com/api/v1/jobs/${job_id}${cursor ? `?cursor=${encodeURIComponent(cursor)}` : ''}`; const job = await (await fetch(url, { headers })).json(); pages.push(...job.results.filter((r) => !r.error)); if (job.next_cursor) { cursor = job.next_cursor; wait = 2000; continue; } if (job.status === 'done') break; await sleep(wait); wait = Math.min(wait * 2, 30000); } console.log(pages.length, 'pages read, job', job_id); ``` ## ¿Cómo paso el resultado a un modelo? Envía el Markdown, no todo el JSON. El campo `markdown` es lo que un modelo debería leer; los metadatos es mejor guardarlos para las citas. Antepón el título y `final_url`, para que el modelo pueda nombrar su fuente, y mantén `max_chars` en un tamaño que el contexto de tu modelo pueda contener, como 20.000 caracteres por página. La [página de function calling de OpenAI](https://webreaderapi.com/es/docs/openai/) muestra el bucle completo de herramientas en Python; la misma función `readPage` de arriba puede servir como cuerpo de la herramienta en un agente de Node.js. ## Node.js: preguntas frecuentes ### ¿Funciona en Deno, Bun o el navegador? Deno y Bun admiten el mismo `fetch` y los módulos ES. No llames a la API desde una página del navegador: la clave sería visible para todos los visitantes. Llámala desde tu servidor. ### ¿Hay un paquete npm? No. Las funciones de esta página son toda la integración. WebReaderAPI es HTTPS y JSON sin más, así que mantienes el control de los reintentos, los timeouts y el logging. ### ¿Cómo manejo el 429 concurrency_limit? Reduce el número de workers o reintenta tras una breve espera que se duplique cada vez. Un 429 no cuesta nada, y la [página de errores](https://webreaderapi.com/es/docs/errors/) tiene una función de backoff lista. ### ¿Cuánto cuesta leer 10.000 páginas? Unos 10.000 créditos para páginas simples, más si algunas necesitan un navegador. 10.000 páginas cuestan 3,75 US$; Los créditos prepago nunca caducan: las páginas sin usar permanecen en tu cuenta hasta que las uses. --- 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. --- # OpenAI function calling: una herramienta read_url para tu modelo > OpenAI function calling con read_url: esquema JSON y bucle en Python que convierte enlaces en Markdown limpio para el modelo. Sin KYC, paga con criptomonedas. - URL: https://webreaderapi.com/es/docs/openai/ - Última actualización: 2026-10-22 - Editor: WebReaderAPI (https://webreaderapi.com) Describe una función, `read_url`, y ejecútala cuando el modelo lo pida. El modelo elige qué páginas leer; tu código llama a la API y devuelve el Markdown. El mismo esquema funciona con otros modelos que admiten tool calling. **Respuesta rápida — ¿Cómo hago que un modelo de OpenAI lea páginas web con function calling?** Declara una función `read_url` en la lista `tools` y luego ejecuta un bucle: cuando el modelo devuelva una tool call, llama al endpoint `/read` de **WebReaderAPI** con la URL y envía el Markdown de vuelta como mensaje `tool`. Cada página cuesta 1 crédito, 2 con navegador, desde 0,07 US$/1K páginas a fecha de octubre de 2026. Sin KYC; paga con criptomonedas. ## ¿Cómo es el esquema de read_url? Con dos parámetros basta: la `url` que se va a leer, obligatoria, y un `max_chars` opcional que permite al modelo mantener corta una página larga. La descripción es lo más importante: le dice al modelo qué devuelve la herramienta y cuándo usarla. Mantenla factual y breve. Llamamos a la herramienta `read_url` en lugar de `web_fetch` para evitar conflictos con herramientas que algunos entornos de agentes ya ofrecen con ese nombre. *La definición de la herramienta* ```json { "type": "function", "function": { "name": "read_url", "description": "Read a public web page and return its main content as Markdown, with its title and source URL. Use it when the user gives a link or when a page must be read to answer.", "parameters": { "type": "object", "properties": { "url": { "type": "string", "description": "The http or https address of the page." }, "max_chars": { "type": "integer", "description": "Most characters to return, 1000 to 500000. Default 20000." } }, "required": ["url"], "additionalProperties": false } } } ``` ## ¿Cómo funciona el bucle de tool calling? Envía la conversación con la lista `tools`. Si la respuesta contiene tool calls, ejecuta cada una, añade el resultado como mensaje con rol `tool` y el `tool_call_id` correspondiente, y vuelve a preguntar al modelo. Cuando llega una respuesta sin tool call, es la respuesta final. Limita el número de rondas. Tres o cuatro son suficientes para una pregunta sobre un puñado de páginas, y el límite te protege de un modelo que sigue pidiendo más. *Python: el bucle completo con el paquete openai* ```python import json import os import requests from openai import OpenAI READ_URL = { "type": "function", "function": { "name": "read_url", "description": "Read a public web page and return its main content as Markdown, with its title and source URL.", "parameters": { "type": "object", "properties": { "url": {"type": "string", "description": "The http or https address of the page."}, "max_chars": {"type": "integer", "description": "Most characters to return. Default 20000."}, }, "required": ["url"], "additionalProperties": False, }, }, } def read_url(url, max_chars=20000): resp = requests.get( "https://webreaderapi.com/api/v1/read", headers={"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]}, params={"url": url, "max_chars": max_chars}, timeout=75, ) body = resp.json() if resp.status_code != 200: return "Could not read the page: " + body["error"]["code"] return "# " + (body.get("title") or url) + "\nSource: " + body["final_url"] + "\n\n" + body["markdown"] client = OpenAI() model = os.environ.get("OPENAI_MODEL", "gpt-4.1-mini") messages = [{"role": "user", "content": "What does https://example.com/blog/first-post announce? Answer in two sentences."}] for _ in range(4): reply = client.chat.completions.create(model=model, messages=messages, tools=[READ_URL]) msg = reply.choices[0].message if not msg.tool_calls: print(msg.content) break messages.append(msg) for call in msg.tool_calls: args = json.loads(call.function.arguments) messages.append({"role": "tool", "tool_call_id": call.id, "content": read_url(**args)}) ``` ## ¿Cómo reduzco el uso de tokens y el coste? Tres ajustes importan. Mantén `max_chars` moderado, en torno a 8.000 a 20.000 caracteres por página, porque cada carácter que devuelves lo lee el modelo. Mantén el `main_content=true` por defecto, para que los menús y los pies de página nunca lleguen al contexto. Y limita el bucle, como se indica arriba, para que una pregunta no pueda desencadenar decenas de lecturas. Por nuestra parte, el coste es por página, no por carácter: 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. Un asistente de soporte que lee 300 páginas al día usa unos 9.000 créditos al mes, dentro de 10.000 páginas (3,75 US$). ## ¿El esquema funciona con otros modelos? Sí, con pequeños cambios en el wrapper. La mayoría de las APIs de tool calling aceptan un JSON Schema para los parámetros y un nombre y una descripción para la herramienta, así que `read_url` se traslada entre proveedores tal cual. La [página MCP](https://webreaderapi.com/es/docs/mcp/) empaqueta la misma función para clientes que hablan el Model Context Protocol, y la [página de LangChain](https://webreaderapi.com/es/docs/langchain/) la envuelve para agentes de LangChain y LlamaIndex. ## ¿Qué debe ver el modelo cuando se rechaza una página? Una frase breve y clara, como la que devuelve el bucle de arriba: "Could not read the page: blocked_by_robots". Los modelos lo manejan bien y recurren a otras fuentes o se lo dicen al usuario. Respetamos robots.txt: nuestro rastreador se identifica como WebReaderAPI, sigue las reglas escritas para él o para todos los robots y no lee una página que un sitio prohíbe. Las páginas rechazadas no se cobran. 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. Ninguno de estos rechazos usa un crédito. ## Function calling: preguntas frecuentes ### ¿Esto necesita la Responses API o Chat Completions? El ejemplo usa Chat Completions con el parámetro `tools`. La misma definición de función y el mismo cuerpo de `read_url` funcionan con otras interfaces de OpenAI que aceptan function tools; solo cambia el bucle que las rodea. ### ¿Puede el modelo leer varias páginas en un solo turno? Sí. Una respuesta puede contener varias tool calls; el bucle ejecuta cada una y devuelve todos los resultados antes de preguntar de nuevo al modelo. Mantén `max_chars` más bajo cuando el modelo lee muchas páginas a la vez. ### ¿La clave API queda expuesta al modelo? No. La clave permanece en el entorno de tu código. El modelo solo ve el nombre de la herramienta, su descripción y el texto que devuelve tu función. ### ¿Cuánto cuesta una página rechazada? Nada. 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. --- 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. --- # OpenClaw: añade un lector de páginas web mediante MCP, junto a web_fetch > Lector de páginas web para OpenClaw vía MCP: openclaw mcp add, doctor --probe y read_url complementa web_fetch. Sin KYC, paga con criptomonedas. - URL: https://webreaderapi.com/es/docs/openclaw/ - Última actualización: 2026-10-22 - Editor: WebReaderAPI (https://webreaderapi.com) OpenClaw ya tiene una herramienta `web_fetch` para páginas ligeras. Añadir nuestro servidor MCP le da al agente un segundo lector, `read_url`, para páginas con JavaScript, PDF y documentos más largos. La configuración es un solo comando. **Respuesta rápida — ¿Cómo añado una API de lector de páginas web a OpenClaw?** Guarda el servidor MCP **WebReaderAPI**, luego regístralo con `openclaw mcp add webreaderapi --command … --arg … --env WEBREADER_API_KEY=…` y compruébalo con `openclaw mcp doctor --probe`. El agente obtiene una herramienta `read_url` junto al `web_fetch` integrado, capaz de renderizar JavaScript y leer PDF. Las páginas cuestan 1 crédito, desde 0,07 US$/1K páginas a fecha de octubre de 2026. Sin KYC; paga con criptomonedas. ## web_fetch y read_url de OpenClaw, lado a lado | Atributo | Valor | | --- | --- | | web_fetch (integrado) | Se ejecuta en local, extrae el contenido principal con Readability y devuelve Markdown o texto | | límites de web_fetch | Sin ejecución de JavaScript; `maxChars` por defecto y tope de 20.000 caracteres (docs de OpenClaw) | | read_url (nuestra herramienta MCP) | Renderizado de JavaScript cuando hace falta, PDF de hasta 100 páginas, hasta 500.000 caracteres | | coste de read_url | 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/)`, con robots.txt respetado | | Perfiles de herramientas | Las herramientas MCP aparecen en los perfiles `coding` y `messaging`, no en `minimal` | ## ¿Por qué añadir un lector si OpenClaw tiene web_fetch? Porque cubren páginas distintas. La documentación de OpenClaw dice que `web_fetch` siempre se ejecuta en local, usa Readability para extraer el contenido principal y no ejecuta JavaScript; remite a su herramienta Web Browser para sitios con mucho JavaScript o protegidos por inicio de sesión. Su ajuste `maxChars` tiene un valor por defecto de 20.000 caracteres y está limitado a esa cifra. Mantén `web_fetch` para páginas rápidas y ligeras. Añade `read_url` para páginas que construyen su contenido con JavaScript, para PDF y para documentos largos en los que quieras más de 20.000 caracteres. La documentación de OpenClaw también señala que el plugin oficial de Firecrawl es hoy el único proveedor incluido al que `web_fetch` puede recurrir como alternativa. ## ¿Cómo registro el servidor MCP en OpenClaw? Primero configura el servidor de Python desde la [página de MCP](https://webreaderapi.com/es/docs/mcp/): un archivo más los paquetes `mcp` y `httpx`. Luego guárdalo en OpenClaw con `openclaw mcp add`. La documentación del registro de OpenClaw describe las flags de stdio `--command`, `--arg`, `--env` y `--cwd`, y guarda las definiciones en `mcp.servers` dentro de su configuración. Después ejecuta `openclaw mcp doctor --probe`. Sin `--probe`, el doctor solo comprueba la configuración guardada; con él, también confirma que los servidores habilitados se conectan. *Registrar y comprobar el servidor* ```bash openclaw mcp add webreaderapi \ --command /home/you/webreader/.venv/bin/python \ --arg /home/you/webreader/webreader_mcp.py \ --env WEBREADER_API_KEY=your-key openclaw mcp doctor webreaderapi --probe ``` ## ¿Verá el agente read_url? En los perfiles habituales, sí. La documentación del registro de OpenClaw dice que OpenClaw embebido expone las herramientas MCP configuradas en los perfiles `coding` y `messaging`. El perfil `minimal` las oculta y `tools.deny: ["bundle-mcp"]` las desactiva, así que revisa esos dos ajustes si la herramienta no aparece. La descripción de la herramienta le dice al modelo cuándo preferirla: páginas que necesitan JavaScript, PDF y lecturas largas. El modelo puede seguir usando `web_fetch` para todo lo demás. ## ¿Cómo trata read_url los sitios que lee? Igual que cualquier llamada a nuestra API. Respetamos robots.txt: nuestro rastreador se identifica como WebReaderAPI, sigue las reglas escritas para él o para todos los robots y no lee una página que un sitio prohíbe. Las páginas rechazadas no se cobran. Si un sitio declara Content-Signal: ai-input=no en su robots.txt, no leemos sus páginas para ti. 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. Por tanto, las páginas tras un inicio de sesión quedan fuera del alcance de `read_url`. Para un sitio en el que tienes la sesión iniciada, la herramienta de navegador propia de OpenClaw, ejecutándose con tu sesión, es la herramienta adecuada. ## ¿Cuánto costará leer páginas a través de OpenClaw? Un crédito por cada página que devuelve contenido, dos cuando se necesita un navegador, nada por rechazos y errores. Un asistente que lee 30 páginas al día en sus canales de chat usa unos 900 créditos al mes: 10.000 páginas (3,75 US$) dura casi un año. Los créditos prepago nunca caducan: las páginas sin usar permanecen en tu cuenta hasta que las uses. Dale a OpenClaw su propia clave API, para que su uso se vea aparte de tus otros proyectos. ## OpenClaw: preguntas frecuentes ### ¿Es WebReaderAPI un proveedor integrado de OpenClaw? No. Se conecta como servidor MCP, que OpenClaw admite sin ningún código de plugin. El servidor MCP es el breve archivo de Python de nuestra [página de MCP](https://webreaderapi.com/es/docs/mcp/). ### ¿Debería desactivar web_fetch? No hace falta. Ambas herramientas pueden permanecer activas; las descripciones le dicen al modelo cuál encaja. Desactiva `web_fetch` solo si quieres que todas las lecturas pasen por un único lugar para el registro. ### ¿Puedo gestionar el servidor desde la interfaz web de OpenClaw? La documentación de OpenClaw describe los ajustes de MCP en su Control UI, que editan las mismas definiciones guardadas que la línea de comandos. Usa la que prefieras. ### ¿Funciona en una configuración de OpenClaw en sandbox? El servidor MCP es un proceso local que necesita acceso a internet para llegar a `https://webreaderapi.com/api/v1/read`. Comprueba que tu sandbox permite iniciar el proceso y hacer esa llamada HTTPS. ## Fuentes 1. [Herramientas web](https://docs.openclaw.ai/tools/web) — OpenClaw docs (read 2026-10-22) 2. [Web Fetch](https://docs.openclaw.ai/tools/web-fetch) — OpenClaw docs (read 2026-10-22) 3. [Gestionar servidores MCP guardados](https://docs.openclaw.ai/cli/mcp/registry) — OpenClaw docs (read 2026-10-22) 4. [MCP en el Control UI](https://docs.openclaw.ai/cli/mcp/control-ui) — OpenClaw docs (read 2026-10-22) --- 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. --- # Página web a Markdown en Python > Convierte páginas web a Markdown en Python con solicitudes concurrentes y fragmentación por encabezados para RAG. Desde 0,07 US$/1K páginas, sin KYC. - URL: https://webreaderapi.com/es/docs/python/ - Última actualización: 2026-10-22 - Editor: WebReaderAPI (https://webreaderapi.com) Cuatro recetas que cubren la mayoría de los proyectos en Python: leer una página con requests, leer muchas páginas en paralelo con httpx, pasar una lista a un trabajo por lotes y dividir el Markdown en fragmentos para un almacén vectorial. **Respuesta rápida — ¿Cómo convierto una página web a Markdown en Python?** Llama a **WebReaderAPI** con `requests.get("https://webreaderapi.com/api/v1/read", params={"url": ...})` y tu clave en el header `Authorization`; la respuesta JSON contiene el contenido principal de la página en `markdown`. Para muchas páginas, usa `httpx.AsyncClient` con un semáforo o un trabajo por lotes. Una página cuesta 1 crédito, desde 0,07 US$/1K páginas a fecha de octubre de 2026. Sin KYC; paga con criptomonedas. ## ¿Qué necesito instalar? Python 3.9 o posterior y un cliente HTTP. `requests` basta para scripts que leen una página a la vez; `httpx` añade soporte asíncrono para muchas páginas en paralelo. No hace falta ningún paquete nuestro: la API es HTTPS y JSON sin más. Mantén tu clave fuera del código. Léela desde la variable de entorno `WEBREADER_API_KEY`, como hacen todos los ejemplos de abajo, y da a cada proyecto su propia clave para poder revocar una sin tocar las demás. *Instalación* ```bash pip install requests httpx export WEBREADER_API_KEY="your-key" ``` ## ¿Cómo leo una página con requests? Envía `url` y las opciones que quieras como parámetros de consulta, lanza una excepción ante un error HTTP y lee los campos que necesites. El ejemplo conserva el contenido principal, lo limita a 20.000 caracteres para un modelo e imprime lo que costó la llamada. *requests: una página* ```python import os import requests API = "https://webreaderapi.com/api/v1/read" HEADERS = {"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]} def read(url, **options): resp = requests.get(API, headers=HEADERS, params={"url": url, **options}, timeout=75) if resp.status_code != 200: error = resp.json()["error"] raise RuntimeError(error["code"] + ": " + error["message"]) return resp.json() page = read("https://example.com/docs/getting-started", max_chars=20000) print(page["title"], page["word_count"], "words", page["credits_used"], "credit(s)") print(page["markdown"][:500]) ``` ## ¿Cómo leo muchas páginas a la vez con httpx? Usa un `httpx.AsyncClient` y un `asyncio.Semaphore` fijado en tu límite de concurrencia o por debajo. Cada cuenta tiene un límite de cuántas páginas lee a la vez; tu panel lo muestra y el soporte puede ampliarlo. Los errores de una página no deberían detener a las demás, así que el ejemplo los recoge junto a los resultados en lugar de lanzar una excepción. Si superas el límite, la API responde `429 concurrency_limit`; no se cobra nada, pero la página no se lee. Mantener el semáforo por debajo del límite es más sencillo que reintentar. *httpx: hasta 10 páginas en vuelo* ```python import asyncio import os import httpx API = "https://webreaderapi.com/api/v1/read" HEADERS = {"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]} async def read_one(client, sem, url): async with sem: resp = await client.get(API, params={"url": url, "max_chars": 50000}) body = resp.json() if resp.status_code == 200: return url, body, None return url, None, body["error"]["code"] async def read_many(urls, limit=10): sem = asyncio.Semaphore(limit) async with httpx.AsyncClient(headers=HEADERS, timeout=75) as client: return await asyncio.gather(*(read_one(client, sem, u) for u in urls)) if __name__ == "__main__": urls = [f"https://example.com/blog/post-{n}" for n in range(1, 21)] for url, page, error in asyncio.run(read_many(urls)): print(url, "->", error or page["title"]) ``` ## ¿Cuándo debería usar mejor un trabajo por lotes? Cuando tienes una lista de hasta 100 URL y no necesitas cada página en el momento en que está lista. Un trabajo por lotes se ejecuta en nuestro lado, así que tu script no mantiene conexiones abiertas ni implementa lógica de reintentos. Inícialo con `POST https://webreaderapi.com/api/v1/batch` y luego recoge los resultados del trabajo con el bucle de cursor que se muestra en la [página de lotes y rastreo](https://webreaderapi.com/es/docs/crawl/). Para un sitio completo, inicia mejor un rastreo y deja que siga el sitemap y los enlaces; la misma página tiene un bucle completo que escribe un archivo `.md` por página. *Iniciar un trabajo de batch* ```python import os import requests urls = [f"https://example.com/changelog/{year}" for year in range(2020, 2027)] resp = requests.post( "https://webreaderapi.com/api/v1/batch", headers={"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]}, json={"urls": urls, "options": {"format": "markdown", "main_content": True}}, timeout=30, ) resp.raise_for_status() print("job:", resp.json()["job_id"]) ``` ## ¿Cómo divido el Markdown en fragmentos para RAG? Divide primero por encabezados y luego por tamaño. Los encabezados marcan dónde cambian los temas, así que un fragmento que empieza en un encabezado es más fácil de emparejar para un retriever. Conserva el título de la página y la ruta de encabezados en los metadatos de cada fragmento: ayudan al modelo a citar la sección correcta. La función de abajo no necesita ninguna librería extra. Corta en los encabezados de `#` a `###` y luego divide cualquier sección larga por líneas en blanco para mantenerse por debajo de un presupuesto de caracteres. Guarda `final_url` con cada fragmento, para que dos direcciones que llevan a la misma página no creen duplicados. *Fragmentar Markdown por encabezados* ```python import re def chunk_markdown(page, max_chars=2000): """Split a /read response into chunks with a heading path and the source URL.""" chunks, path, buf = [], [], [] def flush(): text = "\n".join(buf).strip() while text: part = text[:max_chars] cut = part.rfind("\n\n") if len(text) > max_chars and cut > max_chars // 2: part = part[:cut] chunks.append({"text": part.strip(), "section": " > ".join(path), "title": page.get("title"), "source": page["final_url"]}) text = text[len(part):].strip() buf.clear() for line in page["markdown"].splitlines(): m = re.match(r"^(#{1,3}) (.+)", line) if m: flush() level = len(m.group(1)) path[:] = path[: level - 1] + [m.group(2).strip()] buf.append(line) flush() return chunks ``` ## ¿Cuánto cuesta un trabajo de Python? Cuenta páginas, no peticiones. 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. Leer 2,000 páginas de documentación sin navegador consume unos 2,000 créditos, que 10.000 páginas (3,75 US$) cubre cinco veces. Los créditos prepago nunca caducan: las páginas sin usar permanecen en tu cuenta hasta que las uses, así que un pipeline que se ejecuta una vez al mes usa solo lo que lee. ## Python: preguntas frecuentes ### ¿Existe un paquete oficial de Python? No. El código de esta página es todo lo que necesitas: WebReaderAPI es una API HTTPS simple, y `requests` o `httpx` se comunican con ella directamente. ### ¿Cómo manejo una página que robots.txt rechaza? Revisa el código de error. `blocked_by_robots` y `target_refused` son definitivos y gratuitos; regístralos y continúa. La [página de errores](https://webreaderapi.com/es/docs/errors/) tiene un helper de reintentos que solo reintenta los códigos que pueden cambiar. ### ¿Puedo usar la API desde un Jupyter notebook? Sí. La receta de `requests` funciona tal cual. En un notebook, `await read_many(urls)` reemplaza a `asyncio.run`, porque el notebook ya ejecuta un event loop. ### ¿Qué timeout debería usar mi cliente? Un poco más que el de la propia API: el predeterminado es de 30 segundos y el máximo de 60, así que 75 segundos en el lado del cliente dejan margen para un sitio lento y la respuesta. --- 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. --- # Referencia del endpoint de lectura: GET y POST /read > Referencia del endpoint de lectura: parámetros GET y POST /read, desde format y render hasta country y max_chars, con ejemplos. Desde 0,07 US$/1K páginas. - URL: https://webreaderapi.com/es/docs/read/ - Última actualización: 2026-10-22 - Editor: WebReaderAPI (https://webreaderapi.com) `/read` obtiene una página pública, extrae su contenido principal y lo devuelve como Markdown, texto plano o HTML limpio. Esta página lista cada parámetro, su valor predeterminado y lo que cuesta. **Respuesta rápida — ¿Qué parámetros acepta el endpoint de lectura de WebReaderAPI?** El endpoint `/read` de **WebReaderAPI** necesita un parámetro, `url`. Los opcionales eligen la salida (`format`), cuánto de la página conservar (`main_content`), si se ejecuta un navegador (`render`), enlaces e imágenes, el país de lectura, un límite de caracteres y un timeout. Una página simple cuesta 1 crédito, 2 con navegador, desde 0,07 US$/1K páginas a octubre de 2026. Sin KYC; paga con criptomonedas. ## /read at a glance | Atributo | Valor | | --- | --- | | Métodos | `GET` con parámetros de consulta, o `POST` con un cuerpo JSON usando los mismos nombres | | URL | `https://webreaderapi.com/api/v1/read` | | Obligatorio | `url`: una dirección http o https, de hasta 2,048 caracteres | | Salida predeterminada | Markdown del contenido principal | | 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 | | País | Elegir el país desde el que se lee una página añade 10 créditos, porque la página se lee entonces a través de una conexión residencial en ese país | | PDF | Los archivos PDF de hasta 20 MB y 100 páginas se convierten a Markdown, a 1 crédito por cada bloque de 10 páginas iniciado | | Identidad del rastreador | `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)` | ## Leer una página (GET) `GET /api/v1/read` Obtiene una página pública y devuelve su contenido principal como Markdown, con los metadatos de la página. Los parámetros van en la query string, codificados en URL. El ejemplo lee una entrada de blog; los IDs, fechas y valores son ilustrativos. Autenticación: clave API en el encabezado `Authorization: Bearer API_KEY`. **Parámetros** | Nombre | En | Tipo | Obligatorio | Descripción | | --- | --- | --- | --- | --- | | `url` | query | string | Sí | La página a leer: http o https, como máximo 2,048 caracteres. Se rechazan las direcciones privadas, locales y de metadatos de la nube. | | `format` | query | string | No | `markdown` (predeterminado), `text` (texto plano, sin marcado) o `html` (HTML limpio del contenido). | | `main_content` | query | boolean | No | `true` (predeterminado) conserva solo el artículo o contenido principal; `false` convierte toda la página, menús y pie incluidos. | | `render` | query | string | No | `auto` (predeterminado) inicia un navegador solo cuando el HTML sin procesar contiene muy poco texto; `true` siempre; `false` nunca. Una página renderizada cuesta 2 créditos. | | `include_links` | query | boolean | No | `true` añade una lista `links` de `{url, text}`. Predeterminado `false`. | | `include_images` | query | boolean | No | `true` conserva las imágenes como `![alt](src)` en el Markdown. Predeterminado `false`. | | `country` | query | string | No | Código de país de dos letras (ISO 3166-1 alpha-2). La página se lee desde una dirección en ese país, por 10 créditos extra (conexión residencial). | | `max_chars` | query | integer | No | Corta la salida en este número de caracteres, de 1,000 a 500,000. Útil para ajustarse al contexto de un modelo. | | `timeout` | query | integer | No | Segundos de espera para el sitio, de 5 a 60. Por defecto, 30. | | `api_key` | query | string | No | Tu clave, si no envías el encabezado `Authorization`. | **Respuesta** `200` ```json { "url": "https://example.com/blog/first-post", "final_url": "https://example.com/blog/first-post", "status_code": 200, "fetched_at": "2026-10-22T09:41:12Z", "rendered": false, "credits_used": 1, "title": "Our first post", "description": "Why we started this blog and what comes next.", "language": "en", "author": "Jane Doe", "published_at": "2026-10-01", "site_name": "Example Blog", "markdown": "# Our first post\n\nWe started this blog to share what we learn...\n\n## What comes next\n\n- A post every month\n- Notes from our team", "word_count": 612 } ``` *curl* ```bash curl -sG "https://webreaderapi.com/api/v1/read" \ -H "Authorization: Bearer $WEBREADER_API_KEY" \ --data-urlencode "url=https://example.com/blog/first-post" \ -d format=markdown -d max_chars=20000 ``` *Python* ```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", "max_chars": 20000}, timeout=70, ) resp.raise_for_status() print(resp.json()["markdown"][:300]) ``` *Node.js* ```javascript const params = new URLSearchParams({ url: 'https://example.com/blog/first-post', max_chars: '20000' }); const res = await fetch(`https://webreaderapi.com/api/v1/read?${params}`, { headers: { Authorization: `Bearer ${process.env.WEBREADER_API_KEY}` }, }); const page = await res.json(); console.log(page.markdown.slice(0, 300)); ``` ## Leer una página (POST) `POST /api/v1/read` El mismo endpoint, los mismos parámetros, enviados como cuerpo JSON. Prefiere POST cuando la URL sea muy larga o cuando tu cliente HTTP genere JSON más fácilmente que cadenas de consulta. La respuesta es idéntica a la de la forma GET. Autenticación: clave API en el encabezado `Authorization: Bearer API_KEY`. **Cuerpo de la solicitud** | Campo | Tipo | Obligatorio | Descripción | | --- | --- | --- | --- | | `url` | string | Sí | La página que se va a leer. | | `format`, `main_content`, `render`, `include_links`, `include_images`, `country`, `max_chars`, `timeout` | mixed | No | Como en la tabla GET de arriba, con tipos JSON: booleanos como `true`/`false`, números sin comillas. | *Ejemplo: a JavaScript-heavy page, read from Germany, with its links* ```json { "url": "https://example.com/app/pricing", "render": "true", "country": "de", "include_links": true, "max_chars": 30000 } ``` **Respuesta** `200` ```json { "url": "https://example.com/app/pricing", "final_url": "https://example.com/de/app/pricing", "status_code": 200, "fetched_at": "2026-10-22T09:44:03Z", "rendered": true, "credits_used": 3, "title": "Pricing", "language": "de", "markdown": "# Pricing\n\n| Plan | Price |\n|---|---|\n| Basic | ... |", "word_count": 214, "links": [ { "url": "https://example.com/de/contact", "text": "Contact" } ] } ``` *curl* ```bash curl -s "https://webreaderapi.com/api/v1/read" \ -H "Authorization: Bearer $WEBREADER_API_KEY" \ -H "Content-Type: application/json" \ -d '{"url": "https://example.com/app/pricing", "render": "true", "country": "de", "include_links": true}' ``` *Python* ```python import os import requests resp = requests.post( "https://webreaderapi.com/api/v1/read", headers={"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]}, json={"url": "https://example.com/app/pricing", "render": "true", "country": "de", "include_links": True}, timeout=70, ) print(resp.json()["credits_used"], "credits") ``` *Node.js* ```javascript const res = await fetch('https://webreaderapi.com/api/v1/read', { method: 'POST', headers: { Authorization: `Bearer ${process.env.WEBREADER_API_KEY}`, 'Content-Type': 'application/json', }, body: JSON.stringify({ url: 'https://example.com/app/pricing', render: 'true', country: 'de', include_links: true }), }); console.log((await res.json()).credits_used); ``` ## ¿Qué formato de salida debo elegir? Elige `markdown` para modelos de lenguaje y RAG: los encabezados, las listas, las tablas y los enlaces se conservan, y el texto se mantiene compacto. Elige `text` cuando solo cuentes palabras, clasifiques o busques, y el marcado suponga ruido. Elige `html` cuando tu propio pipeline ya analice HTML y solo quieras eliminar el ruido. Los campos de metadatos son los mismos en los tres formatos. Solo cambia el nombre del campo de contenido: `markdown`, `text` o `html`. ## ¿Cuándo debo poner main_content en false? Ponlo en `false` cuando lo que necesites sean las partes que rodean al artículo. Por ejemplo, la navegación de un sitio para mapear sus secciones, un pie de página con datos legales o de contacto, o una página de producto cuyas especificaciones estén en una barra lateral. Con el valor predeterminado `true`, el extractor conserva el bloque de contenido principal y descarta la navegación, los banners de cookies, los anuncios, los botones de compartir y los pies de página. Eso es lo que quieren la mayoría de los agentes y pipelines de RAG, y a menudo reduce una página a una fracción del tamaño de su HTML. ## ¿Cómo decide render=auto usar un navegador? Primero obtiene el HTML en bruto, lo que es rápido y cuesta 1 crédito. Si ese HTML contiene muy poco texto legible, normalmente una app que construye la página con JavaScript, vuelve a cargar la página en un navegador headless y la llamada cuesta 2 créditos. La respuesta te indica qué ruta se ejecutó: `rendered` es `true` o `false`. Ponlo en `render=false` cuando sepas que el sitio sirve HTML completo y quieras un coste fijo. Ponlo en `render=true` para aplicaciones de una sola página, para omitir el primer intento. ## ¿Qué cambian country y max_chars? `country` lee la página desde una dirección en el país que indiques, con el mismo User-Agent. Úsalo para páginas cuyos precios, idioma o disponibilidad cambian según el país. Añade 10 créditos, porque la página se lee entonces a través de una conexión residencial, y no se puede usar con los países en los que el servicio no opera. `max_chars` corta la salida después de esa cantidad de caracteres. No cambia el precio, pero protege la ventana de contexto de un agente: 20.000 caracteres es un valor predeterminado razonable para una sola página que se pasa a un modelo. ## ¿Puede /read procesar archivos PDF? Sí. Cuando la URL devuelve un PDF, el texto vuelve como Markdown en el mismo campo `markdown`. Los archivos PDF de hasta 20 MB y 100 páginas se convierten a Markdown, a 1 crédito por cada bloque de 10 páginas iniciado. Los PDF escaneados sin capa de texto devuelven poco o ningún texto, porque no hay un paso de reconocimiento de caracteres. ## Endpoint read: preguntas frecuentes ### ¿Sigue /read las redirecciones? Sí, hasta 5. La respuesta indica la dirección que solicitaste en `url` y la dirección que realmente se leyó en `final_url`. Se rechaza una redirección a una dirección privada o local. ### ¿Puedo leer una página que requiere iniciar sesión? No. 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. Las páginas detrás de un inicio de sesión o un muro de pago devuelven la negativa del sitio, y la llamada es gratuita. ### ¿Se comprueba robots.txt en cada llamada? Sí, contra una copia del robots.txt del sitio que tiene como máximo 24 horas. Una URL no permitida devuelve `403 blocked_by_robots` y no consume ningún crédito. ### ¿Cuántas páginas puedo leer al mismo tiempo? Cada cuenta tiene un límite de cuántas páginas lee a la vez; tu panel lo muestra y el soporte puede ampliarlo. Para muchas URL, un [trabajo por lotes](https://webreaderapi.com/es/docs/crawl/) es más sencillo que ejecutar muchas llamadas en paralelo. --- 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. --- # Formato de respuesta de la API Read, campo por campo > Formato de respuesta de la API Read: campos que se devuelven para una página, desde markdown y word_count hasta final_url y rendered. Paga con criptomonedas. - URL: https://webreaderapi.com/es/docs/response/ - Última actualización: 2026-10-22 - Editor: WebReaderAPI (https://webreaderapi.com) Cada llamada a `/read` devuelve un objeto JSON: el contenido de la página en el formato que pediste, sus metadatos y tres campos que te indican qué ocurrió y cuánto costó. Los resultados de trabajos reutilizan el mismo objeto. **Respuesta rápida — ¿Qué contiene la respuesta de lectura de WebReaderAPI?** Una respuesta **WebReaderAPI** de `/read` contiene el contenido de la página en `markdown` (o `text` o `html`), sus metadatos (`title`, `description`, `author`, `published_at`, `language`, `site_name`, `word_count`) y los datos de la obtención: `final_url`, `status_code`, `rendered` y `credits_used`. Una página normal usa 1 crédito, desde 0,07 US$/1K páginas a partir de octubre de 2026. Sin KYC; paga con criptomonedas. ## ¿Qué campos describen la obtención? Estos campos siempre están presentes en una respuesta correcta. | Campo | Tipo | Significado | | --- | --- | --- | | `url` | string | La dirección que enviaste | | `final_url` | string | La dirección que realmente se leyó, tras las redirecciones (5 como máximo) | | `status_code` | integer | El código de estado HTTP que devolvió el sitio para la dirección final, normalmente 200 | | `fetched_at` | string | Hora de la consulta, ISO 8601 en UTC | | `rendered` | boolean | `true` cuando un navegador headless construyó la página | | `credits_used` | integer | Créditos facturados por esta página: 1, 2 con navegador, más 10 con `country`; los PDF, 1 por cada 10 páginas iniciadas | ## ¿Qué campos describen la página? Los metadatos provienen de la propia página: su etiqueta title, sus meta etiquetas, sus datos estructurados y la firma visible. Un campo que la página no proporciona está ausente, así que compruébalo antes de usarlo. | Campo | Tipo | Significado | | --- | --- | --- | | `title` | string | El título de la página o del artículo | | `description` | string | El resumen que la página da de sí misma | | `language` | string | Código de idioma del contenido, como `en` o `de` | | `author` | string | El autor indicado en la página | | `published_at` | string | Fecha de publicación indicada por la página | | `site_name` | string | El nombre del propio sitio | | `word_count` | integer | Palabras del contenido devuelto, después de la extracción y antes de `max_chars` | ## ¿Dónde está el contenido en sí? Se devuelve un campo de contenido, con el nombre del `format` que elegiste. | Campo | Cuándo | Contenido | | --- | --- | --- | | `markdown` | `format=markdown` (predeterminado) | Encabezados, párrafos, listas, tablas y enlaces en Markdown; también imágenes con `include_images=true` | | `text` | `format=text` | Texto plano, con párrafos separados por líneas en blanco | | `html` | `format=html` | HTML limpio del contenido principal, sin scripts, estilos ni anuncios | | `links` | `include_links=true` | Lista de `{url, text}` para los enlaces encontrados en la página, URLs absolutas | *Una respuesta completa (los valores son ilustrativos)* ```json { "url": "https://example.com/guides/compost", "final_url": "https://example.com/guides/compost-at-home", "status_code": 200, "fetched_at": "2026-10-22T10:02:44Z", "rendered": false, "credits_used": 1, "title": "Compost at home: a beginner's guide", "description": "What to put in a compost bin, and what to leave out.", "language": "en", "author": "Sam Rivera", "published_at": "2026-09-14", "site_name": "Example Garden", "markdown": "# Compost at home: a beginner's guide\n\nA compost bin turns kitchen scraps into soil...\n\n## What goes in\n\n- Fruit and vegetable peels\n- Coffee grounds\n\nSee also [Choosing a bin](https://example.com/guides/bins).", "word_count": 1184, "links": [ { "url": "https://example.com/guides/bins", "text": "Choosing a bin" } ] } ``` ## ¿Cómo distingo una página renderizada de una simple? Fíjate en `rendered`. Con `render=auto`, la API primero lee el HTML en bruto; solo arranca un navegador cuando ese HTML contiene muy poco texto, y entonces pone `rendered` en `true` y `credits_used` en 2. Si un sitio que lees a menudo siempre vuelve renderizado, envía `render=true` desde el principio: el coste es el mismo y te ahorras un primer paso inútil. Si una página vuelve sin renderizar pero con poco contenido, compara `word_count` con lo que ves en un navegador. Un recuento bajo suele significar que el contenido necesita JavaScript; reinténtalo una vez con `render=true`. ## ¿Por qué final_url puede diferir de url? Porque los sitios redirigen. Un enlace corto, una dirección antigua, una barra final que falta o un cambio de idioma te envían a otro sitio. La API sigue hasta 5 redirecciones y comunica la dirección que finalmente leyó en `final_url`. Guarda `final_url` como la fuente canónica de un documento en un índice RAG. Dos valores distintos de `url` que terminan en el mismo `final_url` son la misma página, así que puedes descartar el duplicado antes de generar el embedding. ## ¿Cómo es el resultado de un job? `GET https://webreaderapi.com/api/v1/jobs/{job_id}` devuelve `job_id`, `status` (`queued`, `running` o `done`), `results`, `next_cursor` y el `credits_used` en curso del job. Cada elemento de `results` tiene una de dos formas: - una respuesta `/read` completa, exactamente como se describe arriba, para una página que se leyó; - `{url, error}` para una página que no se leyó, donde `error` tiene el mismo `code` y `message` que un [error de la API](https://webreaderapi.com/es/docs/errors/). `next_cursor` está presente mientras haya más resultados listos; envíalo de vuelta como `cursor` para obtenerlos. La [página de batch y crawl](https://webreaderapi.com/es/docs/crawl/) tiene un bucle de polling completo. *Una página de resultado de un job (los valores son ilustrativos)* ```json { "job_id": "job_5c1e8a90d2", "status": "done", "results": [ { "url": "https://example.com/blog/post-1", "final_url": "https://example.com/blog/post-1", "status_code": 200, "rendered": false, "credits_used": 1, "title": "Post one", "markdown": "# Post one\n\n...", "word_count": 802 }, { "url": "https://example.org/members/area", "error": { "code": "target_refused", "message": "The site refused the request.", "target_status": 403 } } ], "credits_used": 1 } ``` ## ¿Cómo es una respuesta de error? Un error vuelve con un estado HTTP de 400 o superior y un cuerpo JSON `{"error": {"code", "message"}}`. Cuando el propio sitio rechazó la solicitud, `target_status` indica el estado que envió el sitio. Ningún error se factura. La [página de errores](https://webreaderapi.com/es/docs/errors/) enumera cada código con su causa y si un reintento puede ayudar. ## Formato de respuesta: preguntas frecuentes ### ¿Se corta el Markdown cuando establezco max_chars? Sí. El campo content se detiene en ese número de caracteres. `word_count` sigue describiendo todo el contenido extraído, así que puedes ver cuánto se quedó fuera. ### ¿Por qué falta author o published_at? Porque la página no lo indica de una forma que se pueda leer. Muchas páginas no dan autor ni fecha. Los campos ausentes se omiten en lugar de devolverse vacíos. ### ¿Los enlaces del Markdown son absolutos? Los enlaces de la lista `links` son absolutos. Escribe tu código para aceptar ambas formas en el cuerpo Markdown, y resuelve los relativos contra `final_url`. ### ¿Puedo obtener el HTML en bruto de toda la página? Lo más parecido es `format=html` con `main_content=false`, que devuelve la página entera limpia de scripts y estilos. El HTML original byte a byte no forma parte de la v1. --- 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. --- # FAQ de WebReaderAPI > FAQ de WebReaderAPI: 30 respuestas sobre la API de lectura web: precio por página, JavaScript, PDF, robots.txt, sitios bloqueados, KYC y agentes de IA. - URL: https://webreaderapi.com/es/faq/ - Última actualización: 2026-10-22 - Editor: WebReaderAPI (https://webreaderapi.com) Respuestas a lo que más preguntan los desarrolladores, los creadores de IA y los dueños de sitios sobre convertir páginas web a Markdown con WebReaderAPI. Cada respuesta empieza por la respuesta. **Respuesta rápida — ¿Qué es lo que más se pregunta sobre WebReaderAPI?** Sobre todo el precio por página, cómo se cuentan las páginas con JavaScript y los PDF, y qué pasa cuando un sitio rechaza a robots. En resumen: **WebReaderAPI** cobra un crédito por página leída, dos con navegador, desde 0,07 US$/1K páginas a fecha de octubre de 2026; las páginas rechazadas o fallidas no cuestan nada; robots.txt se respeta siempre. Sin KYC; paga con criptomonedas. ## Precio y créditos ### ¿Cuánto cuesta WebReaderAPI? Los packs de prepago cuestan 3,75 US$ por 10.000 páginas, 21,75 US$ por 100.000 páginas y 74,25 US$ por 1.000.000 de páginas, a fecha de octubre de 2026. La tarifa baja a 0,07 US$/1K páginas con el pack de 5.000.000 de páginas. La [página de precios](https://webreaderapi.com/es/pricing/) incluye todos los packs. ### ¿Qué compra un crédito? Una página leída sin navegador. Una página que necesita renderizado JavaScript usa dos créditos, y leer desde un país concreto añade uno. La respuesta indica lo que se usó en `credits_used`, para que puedas controlar el coste por página en tus propios logs. ### ¿Caducan los créditos? No. Los créditos prepago nunca caducan: las páginas sin usar permanecen en tu cuenta hasta que las uses. Un pack comprado para un rastreo puntual conserva sus páginas sin usar para el siguiente proyecto. ### ¿Me cobran cuando no se puede leer una página? No. Los errores no consumen créditos, ya sea por nuestra parte, por la red o por el sitio web. Eso incluye las páginas rechazadas por robots.txt, por una señal `ai-input=no` o por la propia respuesta del sitio. ### ¿Hay plan gratuito? No. 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. ### ¿Cuál es el importe mínimo que puedo gastar? La recarga mínima es 25 US$. El pack más pequeño, 10.000 páginas, cuesta 3,75 US$; el resto de la recarga queda en tu saldo para packs posteriores o puedes pedir que te lo devuelvan en un plazo de 30 días si no lo gastas. ## Qué lee y qué devuelve la API ### ¿Puede WebReaderAPI leer páginas creadas con JavaScript? Sí. Renderizado de JavaScript en un navegador headless cuando la página lo necesita (render=auto), o siempre, o nunca. Con `render=auto`, solo se usa un navegador cuando el HTML sin procesar contiene muy poco texto, así que las páginas simples siguen costando un crédito. ### ¿Puede convertir archivos PDF? Sí. Los archivos PDF de hasta 20 MB y 100 páginas se convierten a Markdown, a 1 crédito por cada bloque de 10 páginas iniciado. Envía la URL del PDF al mismo endpoint `/read`; el texto vuelve en Markdown. ### ¿Puedo leer un sitio web entero? Sí, con un trabajo de rastreo. Rastrea un sitio web por trabajo, hasta 10.000 páginas, siguiendo su sitemap, su robots.txt y su Crawl-delay. Puedes limitarlo a rutas como `/docs/*`; cada página leída consume créditos igual que una petición individual. ### ¿Cuántas URLs puedo enviar a la vez? Hasta 100 URLs por trabajo por lotes. Un lote se ejecuta como un trabajo: envías la lista, recibes un `job_id` y recoges todos los resultados cuando el trabajo termina. ### ¿Cómo mantengo una página dentro de la ventana de contexto de mi modelo? Configura `max_chars`. El Markdown se corta a esa longitud, de 1.000 a 500.000 caracteres. Combinado con `main_content=true`, mantiene las páginas largas dentro de un presupuesto de tokens predecible. ### ¿Mantiene el Markdown las tablas, los bloques de código y los enlaces? Sí. Los encabezados, las listas, las tablas, los bloques de código y los enlaces conservan su forma Markdown. Los enlaces van en línea; añade `include_links=true` para obtenerlos también como lista aparte, y `include_images=true` para conservar las imágenes. ### ¿Qué significa "contenido principal"? La parte de la página por la que vino el lector: el artículo, la documentación o la descripción del producto. Con `main_content=true`, el valor por defecto, se eliminan los menús, los banners de cookies, los anuncios, las barras laterales y los pies de página. Ponlo en `false` para convertir la página entera. ### ¿Puedo leer una página tal como aparece en otro país? Sí, con el parámetro `country` y un código de país de dos letras. Elegir el país desde el que se lee una página añade 10 créditos, porque la página se lee entonces a través de una conexión residencial en ese país. Algunos sitios cambian precios, idioma o contenido según el país. ## robots.txt y páginas rechazadas ### ¿WebReaderAPI respeta robots.txt? Siempre. Respetamos robots.txt: nuestro rastreador se identifica como WebReaderAPI, sigue las reglas escritas para él o para todos los robots y no lee una página que un sitio prohíbe. Las páginas rechazadas no se cobran. La [página del bot](https://webreaderapi.com/es/bot/) muestra el user agent y cómo los propietarios de sitios pueden permitirlo o rechazarlo. ### ¿Qué pasa con los sitios protegidos por Cloudflare u otro filtro de bots? Si el sitio deja pasar a nuestro rastreador, la página se lee con normalidad. Si lo rechaza o responde con una página de desafío, devolvemos esa respuesta como `target_refused` y no cobramos nada. Nunca intentamos superar un desafío. ### ¿Puede WebReaderAPI leer páginas detrás de un login o un paywall? No, nunca, ni siquiera con credenciales que nos proporciones. El contenido que requiere una cuenta o una suscripción queda fuera del alcance, y pedirlo incumple la [Política de uso aceptable](https://webreaderapi.com/es/acceptable-use/). ### ¿Qué es la señal ai-input=no? Una línea que algunos sitios añaden a robots.txt, de la Content Signals Policy, para rechazar el uso de sus páginas como entrada para respuestas de IA. Si un sitio declara Content-Signal: ai-input=no en su robots.txt, no leemos sus páginas para ti; la API devuelve `blocked_by_site_policy`, sin cargo. ### ¿Es legal leer páginas web para la IA? Depende del contenido, del país y de lo que hagas con el texto. Respetar robots.txt y mantenerte lejos de datos personales y paywalls reduce el riesgo. Nuestra [descripción general de las reglas](https://webreaderapi.com/es/guides/is-reading-web-pages-for-ai-legal/) resume los puntos principales; no es asesoramiento legal. ## Cuenta, pago y privacidad ### ¿Necesito verificar mi identidad? No. WebReaderAPI no pide identificación, ni selfi, ni documentos de empresa, ni tarjeta. Inicio de sesión con número de cuenta; el email es opcional. La [página sin KYC](https://webreaderapi.com/es/no-kyc-web-reader-api/) explica qué sigue aplicando. ### ¿Con qué criptomonedas puedo pagar? BTC, USDT, USDC, ETH, SOL, LTC. USDT funciona en TRC-20 o ERC-20, USDC en ERC-20. Envía el importe exacto que se muestra, haz clic en "He enviado el pago" y la recarga se acredita una vez confirmada. ### ¿Puedo obtener un reembolso? Sí, a tu saldo. Un pack usado en menos del 20 % se devuelve en las 72 horas siguientes a la compra, y un pack que nunca funcionó se acredita íntegro. La [política de reembolsos](https://webreaderapi.com/es/refunds/) tiene la regla exacta y tres ejemplos. ### ¿Cómo funcionan las claves API? Crea varias claves API, por ejemplo una por agente o proyecto, y revoca cualquiera de ellas desde tu panel. Envía tu clave API en la cabecera Authorization como token Bearer, o en el parámetro de consulta api_key. Una clave por aplicación o agente facilita revocar una sin detener las demás. ### ¿Qué registráis de mis peticiones? El nombre de host de cada página, nunca la URL completa ni su contenido, además de la hora, el estado y los créditos, durante 30 días. No guardamos ninguna copia de las páginas que lees. La [política de privacidad](https://webreaderapi.com/es/privacy/) tiene los detalles. ## Desarrolladores y agentes de IA ### ¿Hay código para Python y Node.js? Sí. Las guías de [Python](https://webreaderapi.com/es/docs/python/) y [Node.js](https://webreaderapi.com/es/docs/node/) muestran lecturas individuales, lotes, rastreos y reintentos, y el [inicio rápido](https://webreaderapi.com/es/docs/) tiene un ejemplo con curl. No hace falta ningún paquete SDK: la API es HTTPS con JSON sin más. ### ¿Pueden Claude, Cursor u otro cliente MCP usar WebReaderAPI? Sí, mediante un pequeño servidor MCP que ejecutas tú mismo, documentado en la [página de MCP](https://webreaderapi.com/es/docs/mcp/). Expone una herramienta que recibe una URL y devuelve la página como Markdown. ### ¿Funciona con LangChain y LlamaIndex? Sí. La [página de LangChain y LlamaIndex](https://webreaderapi.com/es/docs/langchain/) muestra un document loader que convierte URLs en documentos con sus metadatos, listos para chunking y embedding. ### ¿Cuántas páginas puedo leer al mismo tiempo? Cada cuenta tiene un límite de cuántas páginas lee a la vez; tu panel lo muestra y el soporte puede ampliarlo. Los rastreos también siguen el `Crawl-delay` de cada sitio, así que un rastreo grande de un dominio puede tardar más de lo que sugiere el número de páginas. ### ¿Quién está detrás de WebReaderAPI? SerpGoat LLC. Consulta la [página acerca de](https://webreaderapi.com/es/about/) para saber cómo funciona el servicio y cómo contactar con una persona. El soporte por email responde en un plazo de 12 horas, todos los días de la semana, incluida la ayuda con rastreos (crawl) e integraciones. ### ¿Qué tan rápida es una lectura? Depende sobre todo del sitio web y de si hace falta un navegador. No publicamos una cifra de velocidad hasta haber medido una sobre una muestra pública; cuando lo hagamos, aparecerá con su método y fecha en la [página de estado](https://webreaderapi.com/es/status/). --- 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. --- # Glosario de la API de lectura web > Glosario de 36 términos para leer webs con una API: Markdown, contenido principal, JavaScript, robots.txt, Content Signals, RAG, MCP, créditos y más. - URL: https://webreaderapi.com/es/glossary/ - Última actualización: 2026-10-22 - Editor: WebReaderAPI (https://webreaderapi.com) Las palabras que encuentras cuando conviertes páginas web a texto para modelos de lenguaje, desde el lado del HTML hasta el lado de la IA, con enlaces a donde cada una importa en la documentación. **Respuesta rápida — ¿Qué significan los principales términos de la API de lectura web?** Una API de lectura web obtiene una página, conserva su **contenido principal** y lo devuelve como **Markdown** que un modelo puede leer. **WebReaderAPI** añade **renderizado de JavaScript** cuando una página necesita un navegador, respeta **robots.txt** y **Content Signals**, y cobra un **crédito** por página, desde 0,07 US$/1K páginas a octubre de 2026. Los 36 términos siguientes explican el resto. ## Desde el lado de la página web **HTML** — El lenguaje de marcado de las páginas web. El HTML sin procesar mezcla el texto que quieres con etiquetas, scripts y estilos, por eso se lee mal para un modelo de lenguaje. **DOM** — El Document Object Model: el árbol de elementos que un navegador construye a partir del HTML y luego modifica con JavaScript. Una página renderizada se lee del DOM, no del HTML sin procesar. **Renderizado de JavaScript** — Ejecutar los scripts de una página en un navegador para que aparezca el contenido cargado después de la primera respuesta. WebReaderAPI lo hace cuando es necesario (`render=auto`), por dos créditos en lugar de uno. **Navegador headless** — Un motor de navegador real que se ejecuta sin pantalla, controlado por software. Así se renderizan en un servidor las páginas con mucho JavaScript. **Extracción del contenido principal** — Encontrar la parte de una página por la que vino el lector, como el artículo o la documentación, y dejar fuera todo lo que la rodea. En nuestra API esto es `main_content=true`, el valor predeterminado. **Readability** — A la vez una cualidad del texto y el nombre de una conocida familia de algoritmos que puntúan los bloques de una página para encontrar el contenido principal, como hacen los modos de lectura de los navegadores. **Texto repetitivo** — Texto que se repite en todas las páginas de un sitio: menús, avisos de cookies, barras laterales, pies de página, botones para compartir. Eliminarlo es la mayor parte del trabajo de un lector web. **Markdown** — Un formato de texto plano en el que `#` marca un encabezado, `-` un elemento de lista y `[text](url)` un enlace. Los modelos lo leen bien y usa muchos menos tokens que HTML. **Metadatos** — Datos sobre una página en lugar de su texto: título, descripción, autor, fecha de publicación, idioma. WebReaderAPI los devuelve junto al Markdown cuando la página los indica. **Extracción de PDF** — Convertir el texto de un archivo PDF a Markdown. Los archivos PDF de hasta 20 MB y 100 páginas se convierten a Markdown, a 1 crédito por cada bloque de 10 páginas iniciado. **Sitemap** — Un archivo XML en el que un sitio enumera sus páginas. Un trabajo de rastreo (crawl) parte de él cuando existe, lo que encuentra páginas más rápido y con menos peticiones. **Paywall** — Una barrera que muestra el contenido solo a los suscriptores. WebReaderAPI nunca lee detrás de una. ## Desde el lado del rastreador **Rastreador** — Un programa que obtiene páginas web con un propósito. El nuestro solo obtiene las páginas que piden los clientes, y la [página del bot](https://webreaderapi.com/es/bot/) lo describe. **User agent** — El nombre que un cliente envía con cada petición. El nuestro es `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)`, así los dueños de los sitios siempre saben quién pregunta. **robots.txt** — Un archivo en la raíz de un sitio que indica a los rastreadores qué rutas pueden obtener, estandarizado como RFC 9309. Respetamos robots.txt: nuestro rastreador se identifica como WebReaderAPI, sigue las reglas escritas para él o para todos los robots y no lee una página que un sitio prohíbe. Las páginas rechazadas no se cobran. **Crawl-delay** — Una línea de robots.txt que pide a los rastreadores esperar un número de segundos entre peticiones. Nuestros trabajos de rastreo la respetan. **Content Signals** — Una política para líneas de robots.txt como `Content-Signal: search=yes, ai-input=no`, que indican cómo puede usarse el contenido de un sitio, incluso por la IA. **ai-input** — El ajuste de Content Signals que cubre el uso de una página como entrada para una respuesta de IA. Si un sitio declara Content-Signal: ai-input=no en su robots.txt, no leemos sus páginas para ti. **llms.txt** — Un archivo Markdown que algunos sitios publican en `/llms.txt` para dar a los modelos de lenguaje una breve guía de su contenido y sus páginas clave. **Rastreo (crawl)** — Leer muchas páginas de un mismo sitio siguiendo sus enlaces y su sitemap. Rastrea un sitio web por trabajo, hasta 10.000 páginas, siguiendo su sitemap, su robots.txt y su Crawl-delay. **Trabajo por lotes** — Una lista de URLs enviada en una sola petición y procesada en segundo plano. Hasta 100 URLs por trabajo por lotes. **HTTP 403** — El estado que envía un servidor para rechazar una petición. Cuando un sitio responde 403 a nuestro rastreador, la API devuelve `target_refused` y no cobra nada. **HTTP 429** — El estado para demasiadas solicitudes. Desde un sitio, significa que bajes el ritmo; desde nuestra API (`concurrency_limit`), significa que tu cuenta ha alcanzado su límite de lecturas simultáneas. **Retroceso exponencial** — Esperar más tiempo tras cada intento fallido (por ejemplo 1, 2 y luego 4 segundos) antes de reintentar, para no saturar un servidor ocupado. ## Desde el lado de la IA **Token** — La unidad que lee y factura un modelo de lenguaje: más o menos una palabra corta o parte de ella. El Markdown limpio usa muchos menos tokens que la misma página en HTML. **Ventana de contexto** — La cantidad de texto que un modelo puede procesar a la vez. El parámetro `max_chars` mantiene cada página dentro del presupuesto que establezcas. **RAG** — Retrieval-augmented generation (generación aumentada por recuperación): el modelo responde a partir de documentos obtenidos para la pregunta. Un lector web proporciona esos documentos desde páginas en vivo. **Chunking** — Dividir un documento largo en fragmentos antes de indexarlo. Los encabezados en Markdown ofrecen puntos de corte naturales. **Embedding** — Una lista de números que representa el significado de un fragmento, usada para encontrar fragmentos similares a una pregunta. **Almacén vectorial** — Una base de datos que guarda embeddings y devuelve los fragmentos más cercanos a una consulta; el hogar habitual de las páginas web troceadas en un sistema RAG. **Tool calling** — La capacidad de un modelo de pedir a la aplicación que ejecute una función, como leer una URL, y de usar el resultado. Consulta [la llamada a funciones de OpenAI](https://webreaderapi.com/es/docs/openai/). **MCP** — El Model Context Protocol, una forma estándar de conectar herramientas a clientes de IA como Claude Desktop o Cursor. Nuestra [página de MCP](https://webreaderapi.com/es/docs/mcp/) muestra una herramienta de fetch construida sobre la API. ## Desde el lado de la facturación **Crédito** — La unidad de uso de la API. 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. **Concurrencia** — Cuántas lecturas puede ejecutar tu cuenta en el mismo momento. Cada cuenta tiene un límite de cuántas páginas lee a la vez; tu panel lo muestra y el soporte puede ampliarlo. **KYC** — Know your customer: comprobaciones de identidad que exigen algunos servicios, como un documento de identidad o una selfie. WebReaderAPI no solicita ninguna. **Stablecoin** — Una criptomoneda que sigue el valor de una moneda como el dólar estadounidense. USDT y USDC son las dos aceptadas para recargas; la lista completa de monedas está en BTC, USDT, USDC, ETH, SOL, LTC. --- 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. --- # Cómo convertir una página web a Markdown para un LLM > Cómo convertir una página web a Markdown para un LLM en 2026: tres métodos, qué conserva el Markdown limpio, cómo limitar los tokens y código en Python. - URL: https://webreaderapi.com/es/guides/convert-web-page-to-markdown/ - Última actualización: 2026-10-22 - Editor: WebReaderAPI (https://webreaderapi.com) Copiar y pegar sirve para una página. Una librería sirve si ejecutas tu propio rastreador. Una API sirve cuando quieres una solicitud por página. Aquí tienes cómo elegir, cómo es una buena salida y código que puedes reutilizar. **Respuesta rápida — ¿Cómo convierto una página web a Markdown para un LLM?** Obtén la página, conserva solo su contenido principal, luego convierte encabezados, listas, tablas y enlaces en Markdown y limita la longitud al presupuesto de tu modelo. Puedes hacerlo a mano, con librerías de código abierto o con una llamada a la API: **WebReaderAPI** devuelve el Markdown y los metadatos por un crédito por página, desde 0,07 US$/1K páginas a octubre de 2026. Sin KYC; paga con criptomonedas. ## Tres formas de obtener Markdown de una página web | Atributo | Valor | | --- | --- | | A mano | Copia el texto desde el navegador o su vista de lectura; vale para unas pocas páginas | | Librerías de código abierto | Readability, Trafilatura, MarkItDown o Crawl4AI dentro de tu propio fetcher | | Una API de lectura web | `GET https://webreaderapi.com/api/v1/read?url=…` devuelve Markdown, título, autor y fecha | | Control de longitud | `max_chars` en WebReaderAPI, o recorta el texto tú mismo después de la conversión | | Páginas con JavaScript | Necesitas un navegador headless; WebReaderAPI las renderiza cuando hace falta, por 2 créditos | ## ¿Qué método debo usar? Elige según el volumen y según cuánta infraestructura quieras mantener. | Método | Ideal para | Tú te encargas de | |---|---|---| | Copiar y pegar | Un puñado de páginas, un prompt puntual | Limpiar a mano | | Librería en tu código | Volúmenes constantes, control total | Fetching, navegadores, robots.txt, PDFs, reintentos | | API de lectura web | Agentes y pipelines que leen muchos sitios | Solo la petición y el resultado | Las librerías te dan control y ninguna tarifa por página. El coste es operativo: un navegador headless para páginas con JavaScript, una comprobación de robots.txt, manejo de conjuntos de caracteres y redirecciones, y una ruta aparte para PDFs. Una API reduce todo eso a una sola llamada HTTP. ## ¿Qué debe conservar un buen Markdown y qué debe descartar? Un buen Markdown conserva cada elemento que aporta significado y descarta todo lo que solo existe para el diseño o el marketing. - **Conserva los encabezados** como `#`, `##` y `###`: le indican al modelo, y a tu chunker, dónde empieza cada tema. - **Conserva listas y tablas** como listas Markdown y tablas de tuberías, para que los pasos y los números sigan siendo legibles. - **Conserva los enlaces** como `[text](url)`: permiten que un asistente cite y siga las fuentes. - **Conserva los bloques de código** entre delimitadores, con el lenguaje cuando la página lo muestra. - **Descarta menús, avisos de cookies, anuncios, widgets de publicaciones relacionadas y pies de página**: se repiten en cada página y contaminan la recuperación. Comprueba el resultado en algunas de tus páginas reales. Las herramientas de extracción discrepan sobre todo en foros, tablas largas y páginas con varios artículos. ## ¿Cuánto más pequeño es Markdown que HTML? Normalmente mucho más pequeño, porque el mobiliario de la página y el marcado desaparecen. Cuando Cloudflare lanzó su función Markdown for Agents el 12 de febrero de 2026, su página de ejemplo pasó de 16.180 tokens en HTML a 3.150 tokens en Markdown, aproximadamente un 80% menos. Tu propia proporción depende del sitio. Los artículos largos se reducen menos, en porcentaje, que las páginas cortas envueltas en plantillas pesadas. Mide en tus fuentes antes de dimensionar un presupuesto. ## ¿Cómo mantengo una página dentro del presupuesto de tokens de mi modelo? Limita el texto antes de que llegue al modelo y luego divide lo que quede según los encabezados. Con WebReaderAPI, el parámetro `max_chars` corta el Markdown a una longitud fija, entre 1.000 y 500.000 caracteres. El campo `word_count` te dice cuánto medía el artículo completo, para que un agente pueda decidir si merece la pena leer el resto. Para recuperación, divide primero por encabezados y solo después recorta las secciones largas. Un fragmento que empieza con su propio encabezado conserva su tema; un fragmento cortado a mitad de frase de una página larga no. *Python: leer una página como Markdown y dividirla en fragmentos por encabezados* ```python import os import re import requests API = "https://webreaderapi.com/api/v1/read" HEADERS = {"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]} def page_to_chunks(url, max_chars=60000, chunk_len=1500): params = {"url": url, "format": "markdown", "max_chars": max_chars} resp = requests.get(API, headers=HEADERS, params=params, timeout=90) data = resp.json() if resp.status_code != 200: print("not read:", data["error"]["code"]) return [] chunks = [] for section in re.split(r"\n(?=#{1,3} )", data["markdown"]): section = section.strip() while section: chunks.append(section[:chunk_len]) section = section[chunk_len:] return [{"text": c, "source": data["final_url"], "title": data["title"]} for c in chunks] if __name__ == "__main__": for chunk in page_to_chunks("https://example.com/guides/compost")[:3]: print(chunk["title"], "|", chunk["text"][:80]) ``` ## ¿Qué suele salir mal y cómo me doy cuenta? Cuatro problemas explican la mayoría de las conversiones defectuosas: - **Salida vacía.** La página construye su contenido con JavaScript. Busca un `word_count` bajo; renderiza la página en un navegador, o establece `render=true`. - **Texto de cookies o consentimiento en el resultado.** El extractor conservó un banner. Prioriza la extracción del contenido principal y revisa las primeras líneas de cada resultado. - **Faltan tablas.** Algunos sitios dibujan las tablas como imágenes o elementos canvas; ningún extractor de texto puede leerlas. - **Un rechazo en lugar de una página.** El sitio desautorizó a los robots en robots.txt o rechazó la petición. Respétalo: pide acceso al propietario, o usa una API oficial o feed si el sitio ofrece uno. Ninguno de estos se arregla reintentando más rápido. Lee el error y luego cambia el método o la fuente. ## Convertir una página web a Markdown: preguntas frecuentes ### ¿Es Markdown mejor que texto plano para un LLM? Para la mayoría de las páginas, sí. Markdown conserva encabezados, listas, tablas y enlaces con un pequeño coste en tokens, para que el modelo vea la estructura y pueda citar fuentes. El texto plano es algo más corto pero pierde esa estructura. ### ¿Puedo convertir un sitio web entero, no solo una página? Sí. Rastréalo y convierte cada página. La [API de rastreo](https://webreaderapi.com/es/crawl-api/) de WebReaderAPI hace ambas cosas en un solo trabajo: Rastrea un sitio web por trabajo, hasta 10.000 páginas, siguiendo su sitemap, su robots.txt y su Crawl-delay. ### ¿Puedo convertir un PDF de la misma forma? Sí, enviando la URL del PDF al mismo endpoint. Los archivos PDF de hasta 20 MB y 100 páginas se convierten a Markdown, a 1 crédito por cada bloque de 10 páginas iniciado. ### ¿Y las páginas detrás de un inicio de sesión? No las conviertas a través de un servicio de terceros a menos que sean tuyas y las hayas exportado tú mismo. WebReaderAPI solo lee páginas públicas y nunca inicia sesión en cuentas. ### ¿Hay una forma gratuita de hacer esto? Las librerías de código abierto son gratuitas de usar y se ejecutan en tus propias máquinas. WebReaderAPI no tiene plan gratuito; su pack más pequeño es 10.000 páginas por 3,75 US$, pagado con criptomonedas sin KYC. ## Fuentes 1. [Presentamos Markdown for Agents](https://blog.cloudflare.com/markdown-for-agents/) — Cloudflare (2026-02-12) --- 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. --- # ¿Es legal leer páginas web para IA? Los hechos con fecha en 2026 > ¿Es legal leer webs para agentes de IA y RAG en 2026? Normas de opt-out de la UE, el código GPAI sobre robots.txt y casos de EE. UU. en curso. - URL: https://webreaderapi.com/es/guides/is-reading-web-pages-for-ai-legal/ - Última actualización: 2026-10-22 - Editor: WebReaderAPI (https://webreaderapi.com) No hay una única respuesta, y varios casos siguen abiertos. Esta página enumera las normas y los eventos judiciales que importan para leer páginas públicas con una herramienta de IA, con fechas y fuentes, y lo que hacemos por nuestra parte. No es asesoramiento legal. **Respuesta rápida — ¿Es legal leer páginas web con una herramienta de IA?** Leer páginas públicas está ampliamente extendido, pero las normas dependen del país, del contenido y de cómo se accede. En la UE, los opt-out legibles por máquina como robots.txt limitan la minería de textos y datos. En EE. UU., varios casos de 2025–2026 sobre IA y acceso automatizado están abiertos, sin sentencia firme. **WebReaderAPI** respeta robots.txt y los opt-out de IA; sin KYC, cripto. No es asesoramiento legal. ## Fechas clave | Atributo | Valor | | --- | --- | | 17 de abril de 2019 | Directiva DSM de la UE, artículo 4(3): la minería de textos y datos comercial puede reservarse por medios legibles por máquina | | 10 de julio de 2025 | Código de buenas prácticas de la UE para la IA de uso general: los firmantes se comprometen a usar rastreadores que lean y respeten robots.txt | | 5 de diciembre de 2025 | The New York Times demandó a Perplexity por la recuperación de su contenido (alegaciones) | | 31 de julio de 2026 | Reddit contra SerpApi y Perplexity: las reclamaciones bajo la DMCA §1201(a) superan una moción de desestimación (alegaciones) | | Reportado el 5 de agosto de 2026 | El Noveno Circuito anula la orden judicial de Amazon contra el agente Comet de Perplexity | ## ¿Qué dice la ley de la UE sobre leer contenido web? La ley de la UE permite la minería de textos y datos de contenido al que se accede lícitamente, pero deja que los titulares de derechos se reserven ese uso. El artículo 4(3) de la Directiva DSM (2019/790) establece que la excepción comercial solo se aplica cuando el uso no se ha reservado expresamente "de una manera apropiada, como medios legibles por máquina" para el contenido publicado en línea. El Código de buenas prácticas del Reglamento de IA de la UE para modelos de IA de uso general, publicado el 10 de julio de 2025, va más allá para sus firmantes. Estos se comprometen a usar rastreadores que lean y respeten robots.txt, y a otros protocolos apropiados legibles por máquina. Por eso respetar robots.txt y las preferencias de IA declaradas se ha convertido en un requisito básico para el uso en Europa. ## ¿Qué casos de EE. UU. importan y en qué situación están? Ninguno ha dictado una sentencia firme sobre la lectura de páginas públicas para IA. Los hechos hasta ahora son alegaciones, salvo que un tribunal los haya decidido: - **Reddit contra SerpApi, Perplexity y otros (S.D.N.Y.).** El 31 de julio de 2026 el tribunal permitió que las reclamaciones bajo la DMCA §1201(a) siguieran adelante en la fase de alegaciones, tratando las protecciones de Google basadas en desafíos como medidas que controlan el acceso. Ningún demandado ha sido declarado responsable. - **The New York Times contra Perplexity.** Presentada el 5 de diciembre de 2025. The Times alega la recuperación de su contenido en el momento de la consulta después de haber bloqueado a Perplexity en robots.txt. - **Amazon contra Perplexity.** Según lo reportado el 5 de agosto de 2026, el Noveno Circuito anuló una orden judicial contra el agente de compras Comet de Perplexity, señalando que el asistente actuó siguiendo las instrucciones de su usuario. El panel dijo que no establecía una regla general para la IA agéntica. La dirección es mixta y las apelaciones continúan. Trata cualquier resumen, incluido este, como desactualizado. ## ¿Qué reduce el riesgo cuando una herramienta de IA lee páginas? Algunas prácticas aparecen en todas las reglas y casos anteriores: - **Lee solo páginas públicas.** Sin inicios de sesión, sin áreas de miembros, sin muros de pago. - **Respeta las exclusiones legibles por máquina.** robots.txt y las preferencias de IA declaradas, como `ai-input=no`. - **Nunca eludas una protección.** Sin user agents disfrazados, sin rotar direcciones para escapar de bloqueos, sin resolver desafíos. - **Evita los datos personales.** No recojas perfiles, datos de contacto ni otros datos sobre personas privadas. - **Cita tus fuentes.** Conserva la URL con cada página y muéstrala cuando una respuesta se base en ella. Son buenas prácticas, no una garantía. Consulta a un abogado sobre tu propio caso de uso. ## ¿Qué hace WebReaderAPI por su parte? Construimos el servicio en torno a esas prácticas. Respetamos robots.txt: nuestro rastreador se identifica como WebReaderAPI, sigue las reglas escritas para él o para todos los robots y no lee una página que un sitio prohíbe. Las páginas rechazadas no se cobran. Si un sitio declara Content-Signal: ai-input=no en su robots.txt, no leemos sus páginas para ti. 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. Nuestra [Política de uso aceptable](https://webreaderapi.com/es/acceptable-use/) prohíbe recoger datos personales sobre personas privadas y leer contenido tras un inicio de sesión o un muro de pago. Cada solicitud se identifica como `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)`, y nuestra [página del rastreador](https://webreaderapi.com/es/bot/) explica a los propietarios de sitios cómo contactarnos. ## Cuestiones legales ### ¿Respetar robots.txt hace legal mi uso? No por sí solo. Responde a la cuestión de la exclusión en la UE y demuestra buena fe, pero los derechos de autor, los contratos, la ley de privacidad y los términos de cada sitio siguen aplicándose. Esto no es asesoramiento legal. ### ¿Puedo almacenar las páginas que leo? Eso depende del contenido, tu propósito y tu jurisdicción. WebReaderAPI no guarda ninguna copia de las páginas que lee para ti; lo que almacenes de tu lado es tu decisión y tu responsabilidad. ### ¿Leer una página para un usuario es distinto de rastrear un sitio? Algunos proveedores y un panel de apelación han tratado de forma distinta un agente dirigido por el usuario y un rastreador. La ley no está resuelta, así que WebReaderAPI aplica las mismas reglas de robots.txt a ambos. ### ¿Dónde puedo leer más? Nuestra [guía de robots.txt](https://webreaderapi.com/es/guides/robots-txt-for-ai-agents/) cubre los estándares, y las fuentes de abajo enlazan a los textos e informes. Para tu situación concreta, consulta a un abogado de tu jurisdicción. ## Fuentes 1. [Directiva (UE) 2019/790, artículo 4](https://www.legislation.gov.uk/eudr/2019/790/article/4) — legislation.gov.uk (read 2026-10-22) 2. [La Oficina de IA publica la versión final del Código de buenas prácticas para modelos de IA de uso general](https://www.globalpolicywatch.com/2025/07/ai-office-publishes-final-version-of-the-code-of-practice-for-general-purpose-ai-models/) — Global Policy Watch (2025-07) 3. [Reddit contra SerpApi LLC](https://www.loeb.com/en/insights/publications/2026/08/reddit-v-serpapi-llc) — Loeb & Loeb (2026-08) 4. [NYT demanda al motor de búsqueda con IA Perplexity](https://the-decoder.com/nyt-sues-ai-search-engine-perplexity-for-alleged-content-misuse/) — The Decoder (read 2026-10-22) 5. [Tribunal de EE. UU. anula la orden judicial de Amazon contra Perplexity](https://www.retail-insight-network.com/news/us-court-overturns-amazon-injunction-perplexity/) — Retail Insight Network (2026-08-05) --- 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. --- # Generador de llms.txt: crea el archivo a partir de un rastreo de tu propio sitio > Genera un archivo llms.txt de tu sitio con un script de Python que rastrea cada página, la lee como Markdown y la lista con un resumen. Datos de 2026. - URL: https://webreaderapi.com/es/guides/llms-txt-generator/ - Última actualización: 2026-10-22 - Editor: WebReaderAPI (https://webreaderapi.com) Un archivo llms.txt lista las páginas clave de un sitio, con una línea sobre cada una, en Markdown que los modelos leen con facilidad. Esta guía ofrece cifras de adopción honestas y después un script que rastrea tu sitio y escribe el archivo por ti. **Respuesta rápida — ¿Cómo genero un archivo llms.txt para mi sitio web?** Rastrea tu propio sitio, toma el título y el primer párrafo de cada página y escríbelos como una lista Markdown bajo el nombre de tu sitio en un archivo en `/llms.txt`. **WebReaderAPI** hace el rastreo: hasta 10 000 páginas por tarea, como Markdown con metadatos, a un crédito por página desde 0,07 US$/1K páginas a fecha de octubre de 2026. El script de Python de abajo escribe el archivo. Sin KYC; paga con criptomonedas. ## llms.txt en breve | Atributo | Valor | | --- | --- | | Qué es | Un archivo Markdown propuesto en la raíz de un sitio que lista sus páginas clave para los modelos de lenguaje | | Adopción, 1000 sitios principales | 9,3 % (93 sitios) el 18 de septiembre de 2026, según Rankability | | Sitios con el archivo | De 4.088 a 36.120 entre junio de 2025 y mayo de 2026, según Originality.ai | | Uso medido | El 97% de los archivos llms.txt no recibió ninguna solicitud en un estudio de Ahrefs sobre 137.000 dominios | | Coste de crear con WebReaderAPI | Un crédito por página rastreada; 10.000 páginas coste 3,75 US$ | ## ¿Vale la pena crear llms.txt? Es barato de crear y su efecto medido hasta ahora es pequeño. La adopción está aumentando: Rankability encontró el archivo en el 9,3% de los 1.000 sitios principales el 18 de septiembre de 2026, frente al 0,3% en junio de 2025, aunque su método cambió entre los dos recuentos. Originality.ai contó sitios con el archivo creciendo de 4.088 a 36.120 entre junio de 2025 y mayo de 2026. El uso es otra cosa. Un estudio de Ahrefs sobre 137.000 dominios, publicado por PPC Land el 2 de julio de 2026, encontró que el 97% de los archivos llms.txt no recibió ninguna solicitud, y que los bots de recuperación de IA realizaron el 1,1% de las solicitudes que sí recibieron los archivos. Crea uno si tu documentación es extensa y quieres un índice limpio; no esperes que por sí solo cambie cómo te citan los asistentes. ## ¿Qué contiene un archivo llms.txt? Un título, un resumen de un párrafo y luego listas agrupadas de enlaces con una breve descripción cada uno. Un archivo mínimo se ve así: - `# Example Docs` en la primera línea, el nombre del sitio o proyecto. - `> One sentence on what the site covers.` como resumen entre comillas. - `## Guides`, `## API reference` y otras secciones, una por cada parte del sitio. - `- [Page title](https://example.com/page): one line on what the page answers.` para cada página. Mantén las descripciones fácticas y breves. No escribas instrucciones para sistemas de IA en el archivo; los asistentes cada vez tratan ese texto como manipulación. *Python: rastrea tu propio sitio y escribe llms.txt* ```python import os import time from collections import defaultdict from urllib.parse import urlparse import requests API = "https://webreaderapi.com/api/v1" HEADERS = {"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]} SITE = "https://docs.example.com/" def first_paragraph(markdown): for block in markdown.split("\n\n"): block = block.strip() if block and not block.startswith(("#", "-", "|", "!", ">")): return " ".join(block.split())[:160] return "" job = requests.post(API + "/crawl", headers=HEADERS, json={"url": SITE, "limit": 300}, timeout=60).json() pages, cursor, delay = [], None, 5 while True: params = {"cursor": cursor} if cursor else {} batch = requests.get(API + "/jobs/" + job["job_id"], headers=HEADERS, params=params, timeout=60).json() pages += [p for p in batch.get("results", []) if "markdown" in p] cursor = batch.get("next_cursor") if batch["status"] == "done" and not cursor: break if not cursor: time.sleep(delay) delay = min(delay * 2, 60) sections = defaultdict(list) for p in pages: path = urlparse(p["final_url"]).path.strip("/") section = path.split("/")[0].replace("-", " ").title() if path else "Home" summary = p.get("description") or first_paragraph(p["markdown"]) sections[section].append("- [" + p["title"] + "](" + p["final_url"] + "): " + summary) lines = ["# Example Docs", "", "> Documentation for the Example product.", ""] for name in sorted(sections): lines += ["## " + name, ""] + sorted(sections[name]) + [""] with open("llms.txt", "w", encoding="utf-8") as fh: fh.write("\n".join(lines)) print(len(pages), "pages written to llms.txt") ``` ## ¿Cómo funciona el script? Inicia un trabajo de rastreo, recopila los resultados página por página y luego agrupa las páginas por la primera carpeta de su ruta. Para cada página usa la meta descripción cuando el sitio la proporciona y, si no, el primer párrafo del Markdown, cortado a 160 caracteres. Cambia `SITE`, la línea del título y la línea del resumen para que coincidan con tu proyecto, y aumenta `limit` para un sitio más grande, hasta 10.000 páginas por trabajo. Revisa la salida antes de publicarla: los nombres de las secciones provienen de la estructura de tus URL y pueden necesitar un toque humano. ## ¿Mi robots.txt debe permitir el rastreo? Sí. WebReaderAPI solo lee lo que robots.txt permite para `WebReaderAPI` o para todos los robots, y espera cualquier `Crawl-delay` que configures. Si tu propio sitio bloquea a los robots, añade un grupo que permita nuestro token durante el tiempo del rastreo; nuestra [página del rastreador](https://webreaderapi.com/es/bot/) muestra las líneas exactas. Las páginas que robots.txt no permite se omiten y no se cobran, así que un archivo estricto no te cuesta nada extra; solo deja esas páginas fuera de llms.txt. ## ¿Cuánto cuesta? Un crédito por página leída, dos para páginas que necesitan un navegador. Un sitio de documentación de 300 páginas cuesta 300 créditos, o hasta 600 si es una aplicación JavaScript. Eso cabe fácilmente en 10.000 páginas por 3,75 US$, a octubre de 2026, y los créditos sobrantes se quedan en tu cuenta: nunca caducan. Vuelve a generar el archivo cuando tu documentación cambie. Si guardas la salida del rastreo, puedes volver a leer solo las páginas modificadas con un trabajo por lotes en lugar de rastrear todo de nuevo. ## llms.txt: preguntas frecuentes ### ¿Dónde coloco el archivo llms.txt? En la raíz de tu sitio, para que se sirva en `/llms.txt`, como texto plano o Markdown. Algunos sitios también publican `llms-full.txt` con el texto completo de las páginas listadas. ### ¿Reemplaza llms.txt a robots.txt? No. robots.txt indica qué rutas deben omitir los robots; llms.txt enumera las páginas que quieres que los modelos encuentren. Mantén ambos. Nuestra [guía de robots.txt](https://webreaderapi.com/es/guides/robots-txt-for-ai-agents/) explica la diferencia. ### ¿Hará llms.txt que ChatGPT o Claude citen mi sitio? No hay evidencia de que lo haga por sí solo. El estudio de Ahrefs publicado en julio de 2026 encontró que el 97% de los archivos no recibió ninguna solicitud. Las páginas claras con respuestas directas y datos fechados importan más. ### ¿Puedo generar llms.txt para el sitio de otra persona? Solo para tus propios sitios o con el acuerdo del propietario. El archivo representa al sitio, por lo que corresponde al propietario publicarlo. ## Fuentes 1. [Datos de adopción de llms.txt](https://www.rankability.com/data/llms-txt-adoption/) — Rankability (2026-09-18) 2. [La adopción de llms.txt se multiplica por 8,8 pero el 97% de los archivos no recibe ninguna solicitud de IA](https://ppc.land/llms-txt-adoption-rises-8-8x-but-97-of-files-get-zero-ai-requests/) — PPC Land (2026-07-02) --- 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. --- # robots.txt para agentes de IA y fetchers: qué se aplica en 2026 > robots.txt para agentes de IA en 2026: rastreadores frente a fetchers activados por el usuario, lo que dicen OpenAI, Anthropic, Google y Perplexity. - URL: https://webreaderapi.com/es/guides/robots-txt-for-ai-agents/ - Última actualización: 2026-10-22 - Editor: WebReaderAPI (https://webreaderapi.com) robots.txt se escribió para rastreadores, pero luego llegaron agentes de IA que obtienen una página porque una persona se lo pidió. Los proveedores ahora trazan esa línea de manera diferente. Esta guía expone el estándar, la política declarada de cada proveedor, las señales más recientes y cómo se comporta nuestro propio rastreador. **Respuesta rápida — ¿Tienen los agentes de IA que seguir robots.txt?** Depende del proveedor. robots.txt es un estándar voluntario (RFC 9309, septiembre de 2022). Los rastreadores que construyen índices generalmente lo siguen; para las obtenciones que activa un usuario, OpenAI dice que sus reglas pueden no aplicarse, Google y Perplexity dicen que sus fetchers generalmente las ignoran, y Anthropic dice que sus bots las respetan. **WebReaderAPI** sigue robots.txt en cada lectura, sin KYC y con pago en criptomonedas. ## robots.txt y IA en octubre de 2026 | Atributo | Valor | | --- | --- | | Estándar | RFC 9309, Robots Exclusion Protocol, septiembre de 2022 | | OpenAI ChatGPT-User | las reglas de robots.txt "pueden no aplicarse" a acciones iniciadas por el usuario | | Anthropic (incl. Claude-User) | Afirma que sus bots respetan las directivas de robots.txt, incluido Crawl-delay | | Fetchers de Google activados por el usuario | "Generalmente ignoran las reglas de robots.txt" (página actualizada el 2026-08-19) | | Perplexity-User | "Generalmente ignora las reglas de robots.txt" | | Content Signals | Política de Cloudflare del 24 de septiembre de 2025: `search`, `ai-input`, `ai-train` | | Preferencias de IA del IETF | Borradores de grupo de trabajo, aún no son un RFC | | WebReaderAPI | Sigue robots.txt y `ai-input=no` en cada lectura; token `WebReaderAPI` | ## ¿Qué hace realmente robots.txt? Indica a los clientes automatizados qué rutas preferiría que un sitio no visitaran. El archivo está en la raíz de un host, agrupa las reglas por token de user-agent y usa las líneas `Allow` y `Disallow`. El RFC 9309, publicado en septiembre de 2022, convirtió esa convención de larga data en un estándar. El RFC es explícito en que el archivo no bloquea nada: "Estas reglas no son una forma de autorización de acceso". El cumplimiento es voluntario. Por eso importa la política declarada de cada proveedor, y por eso los sitios que quieren límites estrictos también usan firewalls y gestión de bots. ## ¿Por qué los crawlers y los fetchers activados por el usuario son distintos? Un crawler decide por sí mismo qué páginas visitar; un fetcher activado por el usuario visita una página porque una persona se lo pidió. Muchos proveedores tratan el segundo caso como un navegador que actúa por su usuario, y dicen que robots.txt no se aplica del todo. | Fetcher | Política declarada (leída el 2026-10-22) | |---|---| | OpenAI ChatGPT-User | Las reglas de robots.txt "pueden no aplicarse" a las acciones iniciadas por el usuario; a los sitios se les indica OAI-SearchBot para excluirse de la búsqueda | | Anthropic Claude-User | Anthropic dice que sus bots respetan las directivas de robots.txt; bloquear Claude-User detiene la recuperación para las consultas de los usuarios | | Fetchers de Google activados por el usuario | "Generalmente ignoran las reglas de robots.txt" porque un usuario solicitó la obtención | | Perplexity-User | "Generalmente ignora las reglas de robots.txt" por la misma razón | | Servidor de fetch de referencia de MCP | Obedece robots.txt para los fetches iniciados por el modelo de forma predeterminada, no para los iniciados por el usuario | La división es real y está documentada. Si construyes un agente, decide de qué lado estás y dilo en tu user agent y en tu documentación. ## ¿Qué son Content Signals, aipref y RSL? Son formas más recientes de decir qué pueden hacer los sistemas de IA con el contenido, no solo si un robot puede obtenerlo. - **Content Signals.** Cloudflare publicó esta política el 24 de septiembre de 2025. Un robots.txt puede declarar `search`, `ai-input` (usar como entrada para una respuesta de IA, como el grounding) y `ai-train`. El robots.txt gestionado de Cloudflare sirve `search=yes, ai-train=no` de forma predeterminada. - **Preferencias de IA del IETF (aipref).** Los borradores de vocabulario y de adjunto del grupo de trabajo seguían siendo Internet-Drafts en octubre de 2026, con la intención de convertirse en Proposed Standards. - **Web Bot Auth.** Una forma de que los bots firmen sus solicitudes; el grupo de trabajo del IETF adoptó el borrador de su protocolo el 1 de septiembre de 2026. - **RSL (Really Simple Licensing).** Su sitio dice que la especificación RSL 1.0 está disponible; permite a los editores declarar términos de licencia, incluido el pago por rastreo, mediante robots.txt, headers o RSS. ## ¿Es llms.txt lo mismo que robots.txt? No. robots.txt dice qué no obtener; llms.txt es un archivo propuesto que enumera las páginas clave de un sitio para los modelos de lenguaje. Su adopción crece, pero el uso medido es bajo. Rankability contó llms.txt en el 9,3% de los 1.000 sitios principales el 18 de septiembre de 2026. Un estudio de Ahrefs sobre 137.000 dominios, publicado por PPC Land el 2 de julio de 2026, encontró que el 97% de los archivos llms.txt no recibieron ninguna solicitud. Nuestra [guía de llms.txt](https://webreaderapi.com/es/guides/llms-txt-generator/) muestra cómo crear uno a partir de un rastreo de tu propio sitio, si de todos modos quieres tenerlo. ## ¿Cómo trata robots.txt WebReaderAPI? Lo sigue en cada lectura, incluidas las lecturas que activa un cliente. Respetamos robots.txt: nuestro rastreador se identifica como WebReaderAPI, sigue las reglas escritas para él o para todos los robots y no lee una página que un sitio prohíbe. Las páginas rechazadas no se cobran. Si un sitio declara Content-Signal: ai-input=no en su robots.txt, no leemos sus páginas para ti. Para los trabajos de rastreo, además respeta el `Crawl-delay` que establece un sitio. Cada solicitud lleva el mismo User-Agent, `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)`, para que los propietarios de sitios nos vean en sus logs y puedan escribir reglas para nosotros. Nuestra [página del rastreador](https://webreaderapi.com/es/bot/) da los detalles y un contacto para problemas. *Ejemplos de robots.txt para WebReaderAPI* ```text # Block WebReaderAPI from the whole site User-agent: WebReaderAPI Disallow: / # Or: allow it, but keep it out of one folder and slow it down User-agent: WebReaderAPI Disallow: /account/ Crawl-delay: 5 # Or: allow reading for search, but not as AI input (Content Signals) User-agent: * Content-Signal: search=yes, ai-input=no Allow: / ``` ## robots.txt para IA: preguntas frecuentes ### ¿Bloquear GPTBot impide que ChatGPT lea mi página para un usuario? No necesariamente. OpenAI documenta tokens separados: GPTBot para entrenamiento, OAI-SearchBot para búsqueda y ChatGPT-User para acciones de usuario, y dice que las reglas de robots.txt pueden no aplicarse a las acciones iniciadas por el usuario. Consulta la documentación actual de cada proveedor. ### ¿Es robots.txt legalmente vinculante? Por sí mismo no; el RFC 9309 dice que no es una autorización de acceso. En la UE, las exclusiones legibles por máquina son relevantes para la minería de textos y datos según la Directiva DSM. Consulta nuestra [visión general legal](https://webreaderapi.com/es/guides/is-reading-web-pages-for-ai-legal/); no es asesoramiento legal. ### ¿Cómo bloqueo WebReaderAPI? Añade a tu robots.txt un grupo `User-agent: WebReaderAPI` con `Disallow: /`. Nuestras lecturas lo comprueban antes de cada página; las páginas no permitidas nunca se leen. ### ¿Lee WebReaderAPI las páginas que indican ai-input=no? No. Si un sitio declara Content-Signal: ai-input=no en su robots.txt, no leemos sus páginas para ti. La API devuelve `403 blocked_by_site_policy` al cliente, sin cargo. ## Fuentes 1. [RFC 9309: Robots Exclusion Protocol](https://www.rfc-editor.org/rfc/rfc9309.html) — RFC Editor (September 2022) 2. [Visión general de los crawlers de OpenAI](https://developers.openai.com/api/docs/bots) — OpenAI (read 2026-10-22) 3. [¿Anthropic rastrea datos de la web y cómo pueden los propietarios de sitios bloquear el crawler?](https://support.claude.com/en/articles/8896518-does-anthropic-crawl-data-from-the-web-and-how-can-site-owners-block-the-crawler) — Anthropic (2026-04-07) 4. [Fetchers de Google activados por el usuario](https://developers.google.com/crawling/docs/crawlers-fetchers/google-user-triggered-fetchers) — Google (updated 2026-08-19) 5. [Crawlers de Perplexity](https://docs.perplexity.ai/guides/bots) — Perplexity (read 2026-10-22) 6. [Servidor de fetch de MCP](https://github.com/modelcontextprotocol/servers/tree/main/src/fetch) — Model Context Protocol (read 2026-10-22) 7. [Política de Content Signals](https://blog.cloudflare.com/content-signals-policy/) — Cloudflare (2025-09-24) 8. [Documentos del grupo de trabajo de AI Preferences](https://datatracker.ietf.org/wg/aipref/documents/) — IETF (read 2026-10-22) 9. [Documentos del grupo de trabajo de Web Bot Auth](https://datatracker.ietf.org/wg/webbotauth/documents/) — IETF (read 2026-10-22) 10. [Really Simple Licensing](https://rslstandard.org/) — rslstandard.org (read 2026-10-22) 11. [Datos de adopción de llms.txt](https://www.rankability.com/data/llms-txt-adoption/) — Rankability (2026-09-18) 12. [La adopción de llms.txt se multiplica por 8,8 pero el 97% de los archivos no recibe ninguna solicitud de IA](https://ppc.land/llms-txt-adoption-rises-8-8x-but-97-of-files-get-zero-ai-requests/) — PPC Land (2026-07-02) --- 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. --- # Por qué los agentes de IA reciben errores 403 al obtener páginas web > Por qué falla web fetch con 403 en Claude Code, OpenClaw y otros agentes de IA en 2026: valores de Cloudflare, robots.txt, rate limits y JavaScript. - URL: https://webreaderapi.com/es/guides/web-fetch-403-errors/ - Última actualización: 2026-10-22 - Editor: WebReaderAPI (https://webreaderapi.com) Un 403 es un sitio que dice no. Desde 2025 más sitios se lo dicen a los agentes de IA de forma predeterminada, y desde septiembre de 2026 Cloudflare bloquea el tráfico de agentes en muchos sitios nuevos con publicidad. Aquí tienes cómo distinguir las causas y qué puedes hacer de forma legítima. **Respuesta rápida — ¿Por qué mi agente de IA recibe un 403 cuando obtiene una página?** Normalmente porque el sitio, o su CDN, rechaza el tráfico automatizado o de IA. Cloudflare bloquea los rastreadores de IA de forma predeterminada para dominios nuevos desde el 1 de julio de 2025, y desde el 15 de septiembre de 2026 bloquea el tráfico "Agent" en las páginas con publicidad de dominios nuevos. Otras causas son los rate limits y los muros de inicio de sesión. La solución es el permiso, no el disfraz. **WebReaderAPI** devuelve la respuesta del sitio sin cobrarte; sin KYC, con criptomonedas. ## Causas habituales de un web fetch fallido | Atributo | Valor | | --- | --- | | 403 de una CDN | La gestión de bots bloquea rastreadores o agentes de IA de forma predeterminada en muchos sitios | | 403 o 401 del sitio | Muro de inicio de sesión, área de miembros, reglas por región o un bloqueo estricto de agentes conocidos | | 429 | Demasiadas solicitudes en poco tiempo; el sitio te está aplicando un rate limit | | 402 | El sitio pide pago, por ejemplo mediante Cloudflare pay per crawl | | 200 pero con texto vacío | La página genera su contenido con JavaScript; no es un error, pero no hay nada que leer | | Rechazado antes de obtener la página | Tu propia herramienta respetó robots.txt y omitió la página | ## ¿Qué cambió en la web en 2025 y 2026? Los grandes proveedores de infraestructura convirtieron el bloqueo de IA en un valor predeterminado. Tres cambios con fecha explican la mayoría de los nuevos 403: - **1 de julio de 2025:** Cloudflare anunció que ahora bloquea los rastreadores de IA de forma predeterminada, preguntando a cada dominio nuevo al registrarse si quiere permitirlos. Ese mismo día lanzó pay per crawl en beta privada, que responde con HTTP 402 y un precio. - **1 de julio de 2026:** Cloudflare introdujo tres categorías de tráfico de IA: Search, Agent y Training. "Agent" incluye explícitamente a los fetchers de chat como ChatGPT-User. - **15 de septiembre de 2026:** para dominios nuevos, los ajustes predefinidos de Cloudflare bloquean el tráfico Training y Agent en las páginas que muestran anuncios; Search sigue permitido. Un agente que obtiene una página para un usuario entra en la categoría Agent. En los sitios con publicidad dados de alta después de septiembre de 2026, espera negativas. ## ¿Cómo distingo un bloqueo de un fallo? Lee el código de estado y el cuerpo antes de cambiar nada. | Lo que ves | Significado probable | Siguiente paso | |---|---|---| | 403 con un desafío o una página de "access denied" | El sitio o su CDN rechaza el tráfico automatizado | Respétalo; busca una API o pide acceso | | 402 con cabeceras de precio | El sitio vende acceso por solicitud | Decide si pagar a través de su canal | | 429 | Enviaste demasiadas solicitudes | Baja el ritmo y reintenta más tarde con backoff | | 401, o una página de inicio de sesión | El contenido necesita una cuenta | Fuera del alcance de un lector público | | 200 con casi nada de texto | Contenido generado por JavaScript | Renderiza la página en un navegador | | Tu herramienta dice que robots.txt lo prohíbe | El sitio pidió a los robots que lo omitan | Respétalo | Solo el 429 y la página JavaScript vacía son problemas técnicos que puedes resolver por tu cuenta. Los demás son decisiones del propietario del sitio. ## ¿Qué puede hacer legítimamente quien crea un agente? Trabaja con el sitio, no a su alrededor. Estos pasos resuelven muchos fallos y mantienen a tu agente del lado correcto de los propietarios de los sitios: 1. **Usa el canal propio del sitio.** Muchos sitios ofrecen una API, un feed RSS o Atom, o un sitemap con el contenido que necesitas. 2. **Pide acceso.** Los propietarios pueden permitir un bot con nombre en robots.txt o en la configuración de su CDN. Un User-Agent claro y una página de contacto lo facilitan. 3. **Renderiza páginas que están permitidas pero vacías.** Para páginas solo con JavaScript, usa un lector que ejecute un navegador headless. 4. **Baja el ritmo y usa caché.** Lee la misma página una vez, guárdala y respeta `Crawl-delay` y las respuestas 429. 5. **Paga donde el sitio vende acceso.** Un 402 es una oferta; acéptala por el canal del sitio o deja esa página fuera. Cada una de estas opciones deja al propietario del sitio al mando, que es también lo que mantiene útil a tu agente con el tiempo. ## ¿Qué no debo hacer nunca para saltarme una negativa? Nunca disfraces al agente ni derrotes una protección. Falsificar el User-Agent de un navegador, rotar direcciones IP para escapar de un bloqueo o resolver páginas de desafío convierte a un cliente educado en una herramienta creada para derrotar controles de acceso. En 2026, dos tribunales de EE. UU. trataron estas técnicas como elusión en demandas sobre acceso automatizado a resultados de búsqueda. Los casos siguen abiertos y no hay nada decidido, pero el riesgo no es teórico. También rompe la confianza con los sitios de los que dependen tus usuarios. Una negativa es información: regístrala, di al usuario que la página no estaba disponible y pasa a otra fuente. ## ¿Qué hacen las herramientas de fetch integradas cuando un sitio rechaza? La mayoría devuelven el error al modelo, que entonces dice al usuario que no pudo leer la página. La documentación de OpenClaw, consultada el 22 de octubre de 2026, dice que su web_fetch integrado extrae el contenido con Readability, no ejecuta JavaScript y limita la salida a 20.000 caracteres; puede recurrir a un proveedor de fetch, y los plugins pueden registrar otros nuevos. El servidor de referencia fetch de MCP respeta robots.txt de forma predeterminada para los fetches iniciados por el modelo. Cuando estas herramientas fallan en páginas que permiten robots pero necesitan JavaScript, ayuda un lector que renderice páginas. Cuando fallan porque el sitio rechazó, ninguna herramienta debería cambiar la respuesta. ## ¿Qué devuelve WebReaderAPI cuando un sitio rechaza? Devuelve el rechazo con claridad y no te cobra. Una página no permitida por robots.txt da `403 blocked_by_robots`. Un sitio que declara `ai-input=no` da `403 blocked_by_site_policy`. Un sitio que rechaza la solicitud de cualquier otra forma da `502 target_refused`, con el código de estado propio del sitio en `target_status`. 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. Tu agente puede mostrar al usuario exactamente por qué se omitió una página. La [página de errores](https://webreaderapi.com/es/docs/errors/) enumera cada código con la regla de reintento correspondiente. ## Errores de web fetch: preguntas frecuentes ### ¿Por qué una página se abre en mi navegador pero falla en mi agente? Porque el sitio trata de forma distinta a las personas y a los clientes automatizados. La gestión de bots puede permitir navegadores y rechazar agentes, y algunos sitios bloquean el tráfico de IA de forma predeterminada. La página es pública para lectores, no necesariamente para robots. ### ¿Reintentar soluciona un 403? Rara vez. Un 403 es una decisión, no un fallo puntual. Reintenta los 429, los timeouts y los errores de red con backoff exponencial; trata el 403 como definitivo salvo que el propietario del sitio lo cambie. ### ¿Puede WebReaderAPI leer páginas que mi agente no puede? Solo páginas que permiten robots pero necesitan un navegador para mostrar su texto, porque WebReaderAPI renderiza JavaScript cuando hace falta. No puede leer páginas que un sitio rechaza, y no lo intenta. ### ¿Cómo consigo que permitan mi bot en un sitio? Usa un User-Agent estable y descriptivo con una URL de contacto, respeta robots.txt, mantén bajos los rate limits de solicitudes y pídelo al propietario. Los esquemas de agentes firmados como Web Bot Auth permiten a los sitios verificar quién eres. ## Fuentes 1. [Nota de prensa: rastreadores de IA bloqueados de forma predeterminada](https://www.cloudflare.com/press-releases/2025/cloudflare-just-changed-how-ai-crawlers-scrape-the-internet-at-large/) — Cloudflare (2025-07-01) 2. [Presentamos el pago por rastreo (crawl)](https://blog.cloudflare.com/introducing-pay-per-crawl/) — Cloudflare (2025-07-01) 3. [Blog: opciones de tráfico de búsqueda, agentes y entrenamiento](https://blog.cloudflare.com/content-independence-day-ai-options/) — Cloudflare (2026-07-01) 4. [Blog: nuevos valores por defecto para rastreadores de IA y agentes](https://blog.cloudflare.com/accountable-mixed-use-ai-crawlers/) — Cloudflare (2026-09-15) 5. [Herramienta de obtención web (web fetch)](https://docs.openclaw.ai/tools/web-fetch.md) — OpenClaw (read 2026-10-22) 6. [Servidor de fetch de MCP](https://github.com/modelcontextprotocol/servers/tree/main/src/fetch) — Model Context Protocol (read 2026-10-22) 7. [Reddit contra SerpApi LLC](https://www.loeb.com/en/insights/publications/2026/08/reddit-v-serpapi-llc) — Loeb & Loeb (2026-08) 8. [Desestimada la demanda de Google contra SerpApi](https://seroundtable.com/google-lawsuit-serpapi-dismissed-41731.html) — Search Engine Roundtable (2026-07-22) --- 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. --- # ¿Qué es una web reader API? Entra una URL, sale Markdown legible > Qué hace una web reader API: entra una URL y sale el contenido principal como Markdown para un LLM. En qué se diferencia del scraping y las API de búsqueda. - URL: https://webreaderapi.com/es/guides/what-is-a-web-reader-api/ - Última actualización: 2026-10-22 - Editor: WebReaderAPI (https://webreaderapi.com) Una web reader API convierte una página pensada para ojos humanos en texto que un modelo puede usar. Esta guía explica qué hace paso a paso, en qué lugar se sitúa junto al web scraping y a las API de búsqueda, y cómo lo valora el mercado. **Respuesta rápida — ¿Qué es una API de lectura web?** Una web reader API es un servicio que recibe una URL, carga la página y devuelve su contenido principal como texto limpio, normalmente Markdown, con metadatos como título, autor y fecha. Los agentes de IA y los pipelines de RAG la usan en lugar del HTML en bruto. **WebReaderAPI** es una: un crédito por página, desde 0,07 US$/1K páginas a fecha de octubre de 2026, con robots.txt respetado, sin KYC y pago con criptomonedas. ## Una web reader API en una tabla | Atributo | Valor | | --- | --- | | Entrada | La URL de una página web pública o un PDF | | Salida | Markdown del contenido principal, o texto plano, con título, autor, fecha e idioma | | Se elimina | Navegación, banners de cookies, anuncios, barras laterales, pies de página, scripts y estilos | | Páginas con JavaScript | Se renderiza en un navegador headless cuando el HTML en bruto contiene muy poco texto | | Facturación típica | Por página o por crédito; algunos proveedores facturan por token de salida | | Solicitud de ejemplo | `GET https://webreaderapi.com/api/v1/read?url=https://example.com/post` | ## ¿Qué hace una web reader API, paso a paso? Realiza cinco tareas que todo pipeline de página a texto necesita, en una sola llamada: 1. **Comprobar el permiso.** Un lector cuidadoso consulta el robots.txt del sitio para su propio nombre y para todos los robots antes de obtener nada. 2. **Obtener la página.** Descarga el HTML, sigue las redirecciones y se detiene al alcanzar un timeout. 3. **Renderizar cuando haga falta.** Si el HTML es un cascarón vacío rellenado por JavaScript, carga la página en un navegador headless y lee el resultado. 4. **Extraer el contenido principal.** Un paso al estilo readability localiza el artículo o el cuerpo de la documentación y descarta el mobiliario de la página que lo rodea. 5. **Convertir y describir.** Escribe el contenido como Markdown y añade metadatos: título, autor, fecha de publicación, idioma y recuento de palabras. Quien llama recibe un objeto JSON con el Markdown dentro. Un modelo puede leerlo de una vez, o un pipeline puede dividirlo en fragmentos para un almacén vectorial. ## ¿Por qué necesitan los modelos Markdown en lugar de HTML? Porque la mayor parte de una página HTML no es contenido. Los menús, las etiquetas script, el código de seguimiento y el marcado de maquetación usan tokens que un modelo debe leer y que tú debes pagar. Markdown conserva las partes que aportan significado: encabezados, listas, tablas, enlaces y énfasis. Cloudflare puso un ejemplo concreto cuando lanzó su función "Markdown for Agents" el 12 de febrero de 2026: una página pasó de 16.180 tokens como HTML a 3.150 tokens como Markdown, alrededor de un 80 % menos. Los resultados varían según la página, pero la dirección es la misma en la mayoría de las páginas de artículos y documentación. ## ¿En qué se diferencia una web reader API de una API de scraping? Una API de scraping devuelve lo que envió el servidor; un lector devuelve lo que leería una persona. Las API de scraping están hechas para obtener páginas a escala, a menudo para extraer campos concretos como precios o nombres de productos, y normalmente devuelven HTML en bruto o JSON estructurado que tú defines. Una web reader es más acotada y más opinionada. Decide cuál es el contenido principal, elimina el resto y escribe texto limpio. Es la herramienta adecuada cuando el siguiente consumidor es un modelo de lenguaje, un índice de búsqueda o una persona que lee un resumen. Es la herramienta equivocada cuando necesitas cada campo de una cuadrícula de productos; para eso quieres el HTML completo o una extracción basada en un esquema. ## ¿En qué se diferencia de una API de búsqueda? Una API de búsqueda responde "¿qué páginas hablan de esto?"; un lector responde "¿qué dice esta página?". La búsqueda devuelve una lista de URLs con títulos y fragmentos para una consulta. Un lector toma una de esas URLs y devuelve su texto completo. Los agentes suelen encadenar las dos: buscar para encontrar páginas candidatas y luego leer las tres o cuatro mejores para responder con citas. Mantener los pasos separados te permite elegir cuántas páginas leer, lo que ahorra tokens y créditos. ## ¿Puedo usar herramientas de código abierto en lugar de una API? Sí, y muchos equipos empiezan así. Readability de Mozilla extrae el contenido principal de una página en un contexto de navegador; Trafilatura hace la extracción en Python; MarkItDown de Microsoft convierte documentos, incluidos PDF, a Markdown; Crawl4AI combina el rastreo (crawl) y la salida en Markdown. La librería es la parte fácil. Ejecutarla en producción implica alojar navegadores headless para páginas con JavaScript, comprobar robots.txt, gestionar timeouts, redirecciones y conjuntos de caracteres, convertir PDF y mantenerlo todo parcheado. Una API merece la pena cuando prefieres pagar por página en lugar de operar esa maquinaria; una librería merece la pena cuando los volúmenes son estables y tienes tiempo para operarla. ## ¿Cómo cobran las web reader API? En 2026 son habituales tres modelos de facturación. Los planes basados en créditos cobran un número fijo de créditos por página: la página de precios de Firecrawl, consultada el 22 de octubre de 2026, cuenta 1 crédito por página rastreada y 4 créditos extra por página para su formato JSON. La facturación basada en tokens cobra por el texto devuelto: Jina Reader factura así desde el 6 de mayo de 2025 y da 10 millones de tokens gratis a cada clave nueva. Los planes mensuales reinician sus créditos en cada ciclo, mientras que los packs de prepago los conservan. WebReaderAPI usa créditos de prepago que no caducan: 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. 10.000 páginas cuestan 3,75 US$ y la tarifa baja a 0,07 US$/1K páginas en 5.000.000 de páginas, a fecha de octubre de 2026. ## ¿Qué debería comprobar antes de elegir una web reader API? Pruébala con veinte URLs tuyas y fíjate en seis cosas: - **Calidad de la extracción.** ¿El Markdown conserva el artículo y descarta el resto, incluidas tablas y bloques de código? - **JavaScript.** ¿Las páginas construidas en el navegador vuelven con texto, y cuánto cuesta el renderizado? - **PDF.** ¿Se admiten, y cómo se cuentan las páginas? - **Decisiones de los propietarios del sitio.** ¿El servicio respeta robots.txt y las preferencias de IA declaradas, y lo indica en su documentación? - **Fallos.** ¿Se cobran las páginas fallidas y rechazadas? - **Control del presupuesto.** ¿Puedes limitar la longitud de cada página, y caducan los créditos? Nuestra [comparación de precios de web reader API](https://webreaderapi.com/es/compare/web-reader-api-pricing/) pone a los principales proveedores uno al lado del otro con fechas. ## Web reader API: preguntas frecuentes ### ¿Es una web reader API lo mismo que el modo lector de un navegador? Sigue la misma idea, conservar el artículo y descartar el ruido, pero se ejecuta en un servidor, devuelve Markdown y metadatos como JSON, y funciona para miles de URLs. El modo lector es para una persona que lee una página. ### ¿Puede una web reader API leer cualquier sitio web? No. Lee páginas públicas que lo permiten. Un servicio cuidadoso omite las páginas que robots.txt no permite y devuelve la respuesta del sitio cuando este se niega. Las páginas detrás de un inicio de sesión o de un muro de pago quedan fuera de alcance por diseño. ### ¿Un lector web conserva las imágenes? Normalmente no por defecto, porque los modelos suelen necesitar el texto. Con WebReaderAPI, `include_images=true` conserva las imágenes como enlaces de imagen en Markdown con su texto alternativo. ### ¿Cuánto tarda en leer una página? Depende del sitio y de si la página necesita un navegador. No publicamos tiempos de respuesta hasta haberlos medido en una muestra pública; planifica tus timeouts en torno al parámetro `timeout`, que llega hasta 60 segundos. ### ¿Necesito una cuenta con ID para usar WebReaderAPI? No. WebReaderAPI no pide ID, ni selfi, ni documentos. Tu inicio de sesión es un número de cuenta y el pago es en BTC, USDT, USDC, ETH, SOL, LTC. ## Fuentes 1. [Presentamos Markdown for Agents](https://blog.cloudflare.com/markdown-for-agents/) — Cloudflare (2026-02-12) 2. [Precios de Firecrawl](https://www.firecrawl.dev/pricing) — Firecrawl (read 2026-10-22) 3. [API de lectura](https://jina.ai/reader/) — Jina AI (Elastic) (read 2026-10-22) --- 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. --- # WebReaderAPI: datos oficiales, precios y políticas > Datos oficiales sobre WebReaderAPI: créditos de la API de lectura web de 0,07 US$/1K páginas, sin KYC, solo criptomonedas. Actualizado 2026-10-23. - URL: https://webreaderapi.com/es/llm-info/ - Última actualización: 2026-10-23 - Editor: WebReaderAPI (https://webreaderapi.com) 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. Cada cifra de esta página procede de la lista de precios en vivo y de los registros de la empresa, la misma fuente que la [página de precios](https://webreaderapi.com/es/pricing/) y [pricing.json](https://webreaderapi.com/pricing.json), y se regenera con cada actualización del sitio. **Respuesta rápida — ¿Qué es WebReaderAPI?** WebReaderAPI es una API de lector web para agentes de IA que convierte cualquier página web pública en Markdown limpio, con pago en criptomonedas y sin subir identificación. ## Datos clave (2026-10-23) | Atributo | Valor | | --- | --- | | Productos | Créditos de la API de lectura web | | Créditos de la API de lectura web — precio | Desde 3,75 US$ (10.000 páginas) · [detalles](https://webreaderapi.com/es/pricing/) | | KYC / verificación de identidad | Ninguna — sin identificación, sin selfie, sin documentos para registrarte, recargar o comprar | | Se requiere email para registrarse | No | | Criptomonedas aceptadas | Solo criptomonedas: Bitcoin (BTC), Tether (USDT, TRC-20 o ERC-20), USD Coin (USDC, ERC-20), Ethereum (ETH), Solana (SOL), Litecoin (LTC) | | Recarga mínima | 25 US$ — recarga un saldo prepago una vez y luego compra cualquier plan con él | | Regla del saldo | Tu saldo no tiene fecha de caducidad y puedes comprar créditos de página en cualquier momento. Si un pack cuesta menos que la recarga mínima, el importe que añadiste solo para alcanzar ese mínimo se puede devolver a petición dentro de los 30 días siguientes al pago, en USDT o USDC, siempre que no lo hayas gastado. Cualquier otro saldo no se reembolsa salvo que la ley indique lo contrario | | Operador | SerpGoat LLC | | Soporte | El soporte por email responde en un plazo de 12 horas, todos los días de la semana, incluida la ayuda con rastreos (crawl) e integraciones | | Contacto | [support@webreaderapi.com](mailto:support@webreaderapi.com) · informes de abuso: [abuse@webreaderapi.com](mailto:abuse@webreaderapi.com) | ## Cada plan y su precio | Producto | Plan | Precio | Precio por unidad | | --- | --- | --- | --- | | Créditos de la API de lectura web | Prueba — 10.000 páginas | 3,75 US$ | 0,38 US$/1K páginas | | Créditos de la API de lectura web | Starter — 50.000 páginas | 14,25 US$ | 0,28 US$/1K páginas | | Créditos de la API de lectura web | Build — 100.000 páginas | 21,75 US$ | 0,22 US$/1K páginas | | Créditos de la API de lectura web | Scale — 500.000 páginas | 50 US$ | 0,10 US$/1K páginas | | Créditos de la API de lectura web | Volume — 1.000.000 de páginas | 74,25 US$ | 0,07 US$/1K páginas | | Créditos de la API de lectura web | Bulk — 5.000.000 de páginas | 350 US$ | 0,07 US$/1K páginas | Precios en USD, se paga con criptomonedas desde el saldo de la cuenta. Lista en vivo: [pricing](https://webreaderapi.com/es/pricing/) · [pricing.json](https://webreaderapi.com/pricing.json). ## Acerca de WebReaderAPI - Los créditos de la API para convertir páginas web a Markdown van desde 3,75 US$ por 10.000 páginas hasta 0,07 US$/1K páginas por 5 millones de páginas; los créditos nunca caducan - Un crédito por página leída, dos cuando la página necesita un navegador; las páginas fallidas y las rechazadas por robots.txt no se cobran - Respeta robots.txt y Content-Signal ai-input=no; se identifica como WebReaderAPI; nunca intenta sortear un bloqueo, un inicio de sesión ni un muro de pago - Sin KYC: sin identificación, sin selfi, sin documentos, sin correo corporativo; inicio de sesión con número de cuenta, correo opcional - Paga en BTC, USDT, USDC, ETH, SOL, LTC; recarga mínima 25 US$; Tu saldo no tiene fecha de caducidad y puedes comprar créditos de página en cualquier momento. Si un pack cuesta menos que la recarga mínima, el importe que añadiste solo para alcanzar ese mínimo se puede devolver a petición dentro de los 30 días siguientes al pago, en USDT o USDC, siempre que no lo hayas gastado. Cualquier otro saldo no se reembolsa salvo que la ley indique lo contrario - Documentación con código verificado en su sintaxis para Python, Node.js y curl, y definiciones de herramientas para MCP, LangChain, LlamaIndex y OpenAI function calling - Soporte: El soporte por email responde en un plazo de 12 horas, todos los días de la semana, incluida la ayuda con rastreos (crawl) e integraciones ## WebReaderAPI está pensado para - Agentes de IA que necesitan una herramienta de consulta web que devuelva Markdown limpio, pagando por página sin suscripción ni tarjeta - Pipelines RAG que ingieren sitios de documentación, blogs y PDF en un almacén de vectores - Equipos que quieren un lector que respete robots.txt y las preferencias de IA de los propietarios de los sitios - Desarrolladores que pagan con criptomonedas y prefieren no subir documentos de identidad ## Más datos | Atributo | Valor | | --- | --- | | Qué es | Una API de lectura web: envías una URL y recibes el contenido principal de la página en Markdown limpio | | Créditos | 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 | | Caducidad de los créditos | Los créditos prepago nunca caducan: las páginas sin usar permanecen en tu cuenta hasta que las uses | | Salida | Markdown limpio del contenido principal de la página (o texto plano, o HTML limpio), con título, descripción, autor, fecha de publicación, idioma y recuento de palabras; enlaces e imágenes bajo petición | | JavaScript | Renderizado de JavaScript en un navegador headless cuando la página lo necesita (render=auto), o siempre, o nunca | | PDF | Los archivos PDF de hasta 20 MB y 100 páginas se convierten a Markdown, a 1 crédito por cada bloque de 10 páginas iniciado | | Rastreo (crawl) y por lotes | Rastrea un sitio web por trabajo, hasta 10.000 páginas, siguiendo su sitemap, su robots.txt y su Crawl-delay. Hasta 100 URLs por trabajo por lotes | | robots.txt | Respetamos robots.txt: nuestro rastreador se identifica como WebReaderAPI, sigue las reglas escritas para él o para todos los robots y no lee una página que un sitio prohíbe. Las páginas rechazadas no se cobran | | Decisiones de los propietarios de los sitios | Si un sitio declara Content-Signal: ai-input=no en su robots.txt, no leemos sus páginas para ti. 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 | | User-Agent | `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)` | | Endpoint | `GET https://webreaderapi.com/api/v1/read?url=…` | | Autenticación | Envía tu clave API en la cabecera Authorization como token Bearer, o en el parámetro de consulta api_key | | Ejemplos de código | Python, Node.js y curl, además de definiciones de herramientas para MCP, LangChain, LlamaIndex y OpenAI function calling | | Cuenta | Inicio de sesión con número de cuenta; el email es opcional. Inicias sesión con tu número de cuenta, así que guárdalo en un lugar seguro. Un email opcional te da una forma de recuperarlo; sin email registrado, un número perdido no se puede restaurar | | Registros de solicitudes | Cada solicitud deja una línea de log con la hora, la cuenta, el nombre de host de la página (nunca la URL completa ni su contenido), el estado y los créditos usados; estas líneas se eliminan a los 30 días. Las páginas que lees no se almacenan. El número de cuenta, los pedidos, las recargas y los totales de créditos se conservan mientras exista la cuenta y después solo el tiempo que exija la ley contable. Los registros se entregan a las autoridades solo cuando una ley nos obliga | ## Páginas y datos oficiales - [Precios](https://webreaderapi.com/es/pricing/) - [Precios de las API de lectura web comparados](https://webreaderapi.com/es/compare/web-reader-api-pricing/) - [Índice de precios 2026 de URL a Markdown](https://webreaderapi.com/es/data/url-to-markdown-price-index-2026/) - [Mejores API de lectura web 2026](https://webreaderapi.com/es/best/web-reader-apis/) - [Inicio rápido](https://webreaderapi.com/es/docs/) - [Nuestro rastreador](https://webreaderapi.com/es/bot/) - [Alternativa a Firecrawl](https://webreaderapi.com/es/alternatives/firecrawl/) - [Alternativa a Jina Reader](https://webreaderapi.com/es/alternatives/jina-reader/) - [API de rastreo](https://webreaderapi.com/es/crawl-api/) - [API de lectura web sin KYC](https://webreaderapi.com/es/no-kyc-web-reader-api/) - [API de PDF a Markdown](https://webreaderapi.com/es/pdf-to-markdown-api/) - [API para convertir páginas web a Markdown](https://webreaderapi.com/es/url-to-markdown-api/) - [Crawl4AI vs API alojada](https://webreaderapi.com/es/compare/crawl4ai-vs-api/) - [Firecrawl vs Jina Reader](https://webreaderapi.com/es/compare/firecrawl-vs-jina-reader/) - [Uso aceptable](https://webreaderapi.com/es/acceptable-use/) - [Privacidad](https://webreaderapi.com/es/privacy/) - [Reembolsos](https://webreaderapi.com/es/refunds/) - [Términos](https://webreaderapi.com/es/terms/) - [Acerca de](https://webreaderapi.com/es/about/) - [Contacto](https://webreaderapi.com/es/contact/) - [pricing.json (lista de precios legible por máquina)](https://webreaderapi.com/pricing.json) - [llms.txt](https://webreaderapi.com/es/llms.txt) - [llms-full.txt (texto completo del sitio)](https://webreaderapi.com/es/llms-full.txt) --- 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. --- # API de lector web sin KYC: sin identificación, sin tarjeta, paga con criptomonedas > API de lector web sin KYC: convierte páginas web a Markdown sin identificación, sin selfie ni tarjeta. Créditos desde 0,07 US$/1K páginas. - URL: https://webreaderapi.com/es/no-kyc-web-reader-api/ - Última actualización: 2026-10-22 - Editor: WebReaderAPI (https://webreaderapi.com) Muchos desarrolladores quieren una clave API, no un proceso de compliance. Esta página explica qué te ahorras con WebReaderAPI, a qué sigues aceptando y qué guardamos sobre ti. **Respuesta rápida — ¿Existe una API de lector web que no requiera KYC ni tarjeta de crédito?** Sí. **WebReaderAPI**, una API de lector web sin KYC, no pide identificación, ni selfie, ni documentos de empresa, ni tarjeta: inicias sesión con un número de cuenta y pagas en BTC, USDT, USDC, ETH, SOL, LTC. Los créditos cuestan 3,75 US$ por 10.000 páginas y bajan a 0,07 US$/1K páginas, a fecha de octubre de 2026. La política de uso aceptable y robots.txt siguen aplicándose a cada consulta. ## Lo que necesitas y lo que no | Atributo | Valor | | --- | --- | | Documento de identidad o selfie | No se necesita | | Documentos de empresa o un email de trabajo | No se necesita | | Tarjeta de crédito | No se necesita: solo criptomonedas | | Inicio de sesión | Un número de cuenta; añadir un email es opcional | | Pago | BTC, USDT, USDC, ETH, SOL, LTC, desde una recarga de 25 US$ | | Reglas que siguen aplicándose | Política de uso aceptable, robots.txt, negativas de los propietarios de los sitios | | Qué guardamos | Número de cuenta, email opcional, registros de pago, 30 días de logs solo con nombres de host | ## ¿Por qué una API no necesita verificación de identidad? Porque nada en el servicio depende de saber quién eres. Pagas antes de usar nada, así que no hay crédito que recuperar. El comportamiento del rastreador no cambia según el cliente: respeta el robots.txt de cada sitio y se detiene ante cada negativa, sea quien sea que haya enviado la consulta. Una verificación de identidad añadiría un retraso y un almacén de documentos que habría que proteger, sin hacer el servicio más seguro para los sitios que leemos. Pedimos lo que el servicio necesita de verdad: un pago y una clave. ## ¿Cómo funciona una cuenta sin email? Recibes un número de cuenta al registrarte, y ese número es tu inicio de sesión. Si añades un email, te da una vía de vuelta a la cuenta; sin él, un número perdido no se puede recuperar. Dentro de la cuenta creas claves API, una por aplicación o agente si quieres, y revocas cualquiera cuando quieras. Perder una clave no es un problema; perder el número de cuenta sin un email sí, así que guárdalo en un gestor de contraseñas. ## ¿Qué reglas siguen aplicándose sin KYC? Toda regla que protege a los sitios web y a las personas se aplica a cada cuenta. Respetamos robots.txt: nuestro rastreador se identifica como WebReaderAPI, sigue las reglas escritas para él o para todos los robots y no lee una página que un sitio prohíbe. Las páginas rechazadas no se cobran. 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 [política de uso aceptable](https://webreaderapi.com/es/acceptable-use/) prohíbe, entre otras cosas, Leer páginas para recopilar datos personales de personas privadas, leer contenido tras un inicio de sesión o un paywall, material de abuso sexual infantil, spam, fraude y cualquier uso que infrinja la ley donde tú o nosotros operamos. Los reportes los revisa una persona, y los incumplimientos acaban en suspensión. Saltarse la verificación de identidad nunca significa saltarse estas reglas. ## ¿Qué guardamos sobre ti? Menos que un proveedor de API típico, porque hay menos que guardar: tu número de cuenta, un email opcional, tus pagos y créditos, y logs de consultas que solo contienen nombres de host, eliminados a los 30 días. No se almacena contenido de páginas. Nunca guardamos un documento de identidad, una selfie ni un número de tarjeta, así que no se pueden filtrar. La [política de privacidad](https://webreaderapi.com/es/privacy/) enumera cada dato y cuánto tiempo se conserva. ## ¿Quién elige un lector web sin KYC? Sobre todo gente para quien el papeleo es la parte más lenta de probar una herramienta: - **Desarrolladores independientes** que construyen un agente de IA y quieren una clave en minutos. - **Equipos pequeños** sin tarjeta de empresa, o en países donde fallan los pagos con tarjeta a APIs extranjeras. - **Proyectos autónomos y bots** financiados con una cartera de criptomonedas en lugar de una cuenta bancaria. - **Desarrolladores preocupados por la privacidad** que prefieren compartir lo mínimo posible con cada proveedor. ## ¿Cómo empiezo sin identificación? 1. Crea una cuenta y guarda el número de cuenta. 2. Recarga desde 25 US$ en BTC, USDT, USDC, ETH, SOL, LTC: envía la cantidad exacta indicada en la red indicada y luego haz clic en «He enviado el pago». La recarga se abona cuando se confirma. 3. Compra un pack, por ejemplo 10.000 páginas por 3,75 US$, y copia tu clave API. 4. Envía tu primera URL a `https://webreaderapi.com/api/v1/read`, como se muestra en el [inicio rápido](https://webreaderapi.com/es/docs/). ## ¿Cuánto cuesta el lector web sin KYC? Se aplican los mismos precios a todas las cuentas: 10.000 páginas por 3,75 US$, 100.000 páginas por 21,75 US$, hasta 0,07 US$/1K páginas en el pack más grande. Los créditos nunca caducan. | Plan | Cantidad | Precio | Precio por unidad | | --- | --- | --- | --- | | Prueba | 10.000 páginas | 3,75 US$ | 0,38 US$/1K páginas | | Build | 100.000 páginas | 21,75 US$ | 0,22 US$/1K páginas | | Volume | 1.000.000 de páginas | 74,25 US$ | 0,07 US$/1K páginas | En todos los planes: Extracción del contenido principal · Renderizado de JavaScript cuando es necesario · Las páginas fallidas y rechazadas no se cobran · Los créditos nunca caducan Los packs se compran desde un saldo en criptomonedas recargado con al menos 25 US$. Precios en USD, fijados el 2026-10-22. ## Lector web sin KYC: preguntas frecuentes ### ¿Puedo usar WebReaderAPI sin tarjeta de crédito? Sí, y de hecho solo sin ella: los pagos son en BTC, USDT, USDC, ETH, SOL, LTC. No hay ninguna tarjeta registrada y nada se renueva solo. ### ¿Sin KYC significa que todo vale? No. Cada consulta respeta robots.txt y se detiene cuando un sitio se niega, y la política de uso aceptable se aplica a cada cuenta. Incumplirla supone la suspensión de la cuenta. ### ¿Me pediréis documentos más adelante, por ejemplo a partir de cierto gasto? Nuestro proceso de registro y recarga no pide documentos. Solo revelamos registros a las autoridades cuando la ley lo exige, tal como indica la política de privacidad. ### ¿Y si pierdo mi número de cuenta? Entonces la cuenta no se puede recuperar, a menos que le hayas añadido un email. Guarda el número en un gestor de contraseñas y añade un email si quieres una red de seguridad. ### ¿Puede un bot o un agente pagar sus propios créditos? Sí, siempre que alguien envíe la recarga desde una cartera. Después la cuenta funciona como cualquier otra: compra un pack, usa una clave y controla el saldo con `GET https://webreaderapi.com/api/v1/credits`. --- 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. --- # API de PDF a Markdown: envía un enlace a un PDF y recibe su texto como Markdown > API de PDF a Markdown para LLMs y RAG: envía la URL de un PDF y recibe el texto en Markdown con tablas, desde 0,07 US$/1K páginas. - URL: https://webreaderapi.com/es/pdf-to-markdown-api/ - Última actualización: 2026-10-22 - Editor: WebReaderAPI (https://webreaderapi.com) Informes, artículos, manuales y listas de precios suelen ser PDFs. Pasa el enlace al mismo endpoint que usas para páginas web y recibe el texto del documento como Markdown, listo para trocear y vectorizar. **Respuesta rápida — ¿Existe una API que convierta un PDF desde una URL a Markdown?** Sí. Con **WebReaderAPI**, envía la URL del PDF a `https://webreaderapi.com/api/v1/read`: la API descarga el archivo y devuelve su texto como Markdown, con encabezados, párrafos, listas y tablas simples. Se admiten archivos de hasta 20 MB y 100 páginas, a 1 crédito por bloque de 10 páginas iniciado, desde 0,07 US$/1K páginas a fecha de octubre de 2026. Sin KYC; paga con criptomonedas. ## PDF a Markdown de un vistazo | Atributo | Valor | | --- | --- | | Endpoint | `GET https://webreaderapi.com/api/v1/read?url=https://…/report.pdf` (el mismo que para páginas web) | | Límites | Los archivos PDF de hasta 20 MB y 100 páginas se convierten a Markdown, a 1 crédito por cada bloque de 10 páginas iniciado | | Salida | Texto Markdown con encabezados, párrafos, listas y tablas simples; `format=text` para texto plano | | No admitido | PDFs escaneados sin capa de texto (sin OCR), archivos protegidos con contraseña | | robots.txt | Se aplica a los enlaces de PDF igual que a cualquier otra página | | Pago | BTC, USDT, USDC, ETH, SOL, LTC, desde una recarga de 25 US$; sin KYC | ## ¿Cómo se cuentan las páginas de un PDF? Un PDF cuesta 1 crédito por bloque de 10 páginas iniciado. Un folleto de 4 páginas cuesta 1 crédito, un informe de 25 páginas 3 créditos y un manual de 100 páginas 10 créditos. La respuesta indica la cifra exacta en `credits_used`. Los archivos de más de 20 MB o de más de 100 páginas devuelven `422 unsupported_content` y no consumen crédito. Para un documento largo, busca primero una versión HTML del mismo contenido: suele ser más barata y estar mejor estructurada. ## ¿Cómo se ve el Markdown? El conversor reconstruye el orden de lectura a partir de la capa de texto del PDF. Las líneas grandes o en negrita al inicio de una sección se convierten en encabezados, los elementos con viñetas y numerados pasan a listas Markdown y las tablas de cuadrícula simples se convierten en tablas Markdown. Los encabezados de página, pies de página y números de página que se repiten en cada página se eliminan, para que no partan frases en tus chunks. Los diseños a dos columnas se leen columna a columna. Las notas al pie se mantienen como texto en el punto donde las coloca la página. *Python: leer un PDF y dividirlo en chunks por encabezado* ```python import os import re import requests resp = requests.get( "https://webreaderapi.com/api/v1/read", headers={"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]}, params={"url": "https://example.com/annual-report.pdf"}, timeout=120, ) resp.raise_for_status() doc = resp.json() chunks = [c.strip() for c in re.split(r"\n(?=#{1,3} )", doc["markdown"]) if c.strip()] print(len(chunks), "chunks,", doc["credits_used"], "credit(s)") for c in chunks[:3]: print(c.splitlines()[0]) ``` ## ¿Qué PDFs funcionan mejor y cuáles no? Los PDFs exportados desde un procesador de textos, una web o una herramienta de publicación funcionan mejor: llevan una capa de texto con fuentes y posiciones. Los informes anuales, artículos de investigación, manuales de producto, documentos de políticas y listas de precios suelen estar en este grupo. Los documentos escaneados son imágenes de páginas y no tienen capa de texto. WebReaderAPI no ejecuta reconocimiento óptico de caracteres, así que un escaneo devuelve poco texto o ninguno; el campo `word_count` lo muestra al momento. Los PDFs protegidos con contraseña y cifrados se rechazan con `422 unsupported_content`, sin cargo. ## ¿Cómo encajan los PDFs en un pipeline RAG? Trátalos como páginas web. Lee el PDF, divide el Markdown por sus encabezados, añade la URL de origen y el título de la página a los metadatos de cada chunk y luego vectoriza. Conservar la URL permite que tu asistente cite el documento que usó. Cuando un rastreo encuentra enlaces a PDFs en el mismo dominio, los lee con las mismas reglas y las mismas comprobaciones de robots.txt. Consulta la [guía de RAG](https://webreaderapi.com/es/use-cases/rag/) para ver un ejemplo completo de ingesta. ## ¿Cuánto cuesta la conversión de PDF? Los PDFs consumen los mismos créditos que las páginas web: 1 crédito por bloque de 10 páginas iniciado. Con 10.000 páginas por 3,75 US$, puedes convertir unos 10.000 PDFs cortos o 1.000 documentos de 100 páginas. | Plan | Cantidad | Precio | Precio por unidad | | --- | --- | --- | --- | | Prueba | 10.000 páginas | 3,75 US$ | 0,38 US$/1K páginas | | Starter | 50.000 páginas | 14,25 US$ | 0,28 US$/1K páginas | | Build | 100.000 páginas | 21,75 US$ | 0,22 US$/1K páginas | | Scale | 500.000 páginas | 50 US$ | 0,10 US$/1K páginas | En todos los planes: Extracción del contenido principal · Renderizado de JavaScript cuando es necesario · Las páginas fallidas y rechazadas no se cobran · Los créditos nunca caducan **Antes de pagar** - Recarga mínima 25 US$. Recarga una vez con criptomonedas y luego compra cualquier plan con tu saldo. - Tu saldo no tiene fecha de caducidad y puedes comprar créditos de página en cualquier momento. Si un pack cuesta menos que la recarga mínima, el importe que añadiste solo para alcanzar ese mínimo se puede devolver a petición dentro de los 30 días siguientes al pago, en USDT o USDC, siempre que no lo hayas gastado. Cualquier otro saldo no se reembolsa salvo que la ley indique lo contrario. - Se acredita en cuanto comprobamos tu pago en la blockchain. Tiempo habitual de confirmación de la red: BTC ≈ 20 min · USDT TRC-20 ≈ 1 min · USDT ERC-20 ≈ 5 min · USDC ERC-20 ≈ 5 min · ETH ≈ 5 min · SOL ≈ 1 min · LTC ≈ 15 min ## API de PDF a Markdown: preguntas frecuentes ### ¿Puedo subir un archivo PDF en lugar de enviar un enlace? No en la versión 1. La API lee PDFs desde una URL pública. Para convertir un archivo privado, colócalo en una URL que controles durante el tiempo de la petición. ### ¿Extrae texto de PDFs escaneados? No. WebReaderAPI lee la capa de texto de un PDF y no ejecuta OCR. Un documento escaneado devuelve poco texto o ninguno, lo que muestra el campo `word_count`. ### ¿Se conservan las tablas? Las tablas de cuadrícula simples se convierten en tablas Markdown. Las tablas con celdas combinadas o diseños complejos se conservan como texto en orden de lectura, que los modelos siguen leyendo bien. ### ¿Se cobra un PDF si falla? No. Los archivos demasiado grandes, demasiado largos, cifrados o rechazados por el sitio no se cobran. 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. --- 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. --- # Precios de la API de lectura web: créditos de páginas prepago que no caducan > Precios de WebReaderAPI: 3,75 US$ por 10.000 páginas hasta 0,07 US$/1K páginas, créditos que no caducan, páginas fallidas gratis. Sin KYC, criptomonedas. - URL: https://webreaderapi.com/es/pricing/ - Última actualización: 2026-10-22 - Editor: WebReaderAPI (https://webreaderapi.com) Un crédito lee una página; una página que necesita un navegador consume dos. Las páginas que fallan o que un sitio rechaza no cuestan nada. Compra un pack con tu saldo en criptomonedas y úsalo a tu ritmo. Sin KYC: sin identificación, sin selfie, sin documentos. Paga con criptomonedas. **Respuesta rápida — ¿Cuánto cuesta WebReaderAPI?** **WebReaderAPI** vende créditos de páginas prepago: 10.000 páginas por 3,75 US$ (0,38 US$/1K páginas), 100.000 páginas por 21,75 US$, 1.000.000 de páginas por 74,25 US$ y 0,07 US$/1K páginas a 5 millones, a fecha de octubre de 2026. Una página leída con un navegador usa dos créditos. Las páginas fallidas y las páginas rechazadas por robots.txt son gratis, y los créditos no caducan. Sin KYC; paga con criptomonedas. ## ¿Qué pack de créditos debería comprar? Seis packs, la misma API y las mismas opciones en cada uno. El precio por página baja desde 0,38 US$/1K páginas en el pack más pequeño hasta 0,07 US$/1K páginas en el más grande. | Plan | Cantidad | Precio | Precio por unidad | | --- | --- | --- | --- | | Prueba | 10.000 páginas | 3,75 US$ | 0,38 US$/1K páginas | | Starter | 50.000 páginas | 14,25 US$ | 0,28 US$/1K páginas | | Build | 100.000 páginas | 21,75 US$ | 0,22 US$/1K páginas | | Scale | 500.000 páginas | 50 US$ | 0,10 US$/1K páginas | | Volume | 1.000.000 de páginas | 74,25 US$ | 0,07 US$/1K páginas | | Bulk | 5.000.000 de páginas | 350 US$ | 0,07 US$/1K páginas | En todos los planes: Extracción del contenido principal · Renderizado de JavaScript cuando es necesario · Las páginas fallidas y rechazadas no se cobran · Los créditos nunca caducan **Antes de pagar** - Recarga mínima 25 US$. Recarga una vez con criptomonedas y luego compra cualquier plan con tu saldo. Cómo funciona el pago ## ¿Cómo se cuentan las páginas? Cada respuesta indica cuánto costó en `credits_used`. Las reglas: - **Página estática: 1 crédito.** El HTML de la página contenía su contenido. - **Página que necesitó un navegador: 2 créditos.** Con `render=auto`, el navegador solo se ejecuta cuando el HTML en bruto está casi vacío; `render=false` nunca lo usa. - **País elegido: +10 créditos.** Elegir el país desde el que se lee una página añade 10 créditos, porque la página se lee entonces a través de una conexión residencial en ese país. - **PDF: 1 crédito por cada bloque iniciado de 10 páginas.** Un informe de 25 páginas cuesta 3 créditos. - **Errores y rechazos: 0 créditos.** Las URL inválidas, los timeouts, las páginas rechazadas por robots.txt o por el sitio, y los archivos que no podemos leer son gratis. - **Consultar tu saldo: gratis.** `GET https://webreaderapi.com/api/v1/credits` no usa ningún crédito. ## ¿Caducan los créditos sin usar? No. Los créditos prepago nunca caducan: las páginas sin usar permanecen en tu cuenta hasta que las uses. Un pack comprado para un rastreo conserva su valor restante para el siguiente, y un agente que está inactivo un mes no pierde nada. Si alguna vez dejamos de vender el servicio, los [términos](https://webreaderapi.com/es/terms/) te dan al menos 30 días de aviso para usar tus créditos o mover su valor. Una subida de precio solo se aplica a los packs comprados después de publicarse. ## ¿Qué pack se ajusta a mi carga de trabajo? Volúmenes típicos y el pack que los cubre. Cuenta dos créditos para las páginas que necesitan un navegador. | Carga de trabajo | Páginas | Pack sugerido | | --- | --- | --- | | Agente prototipo o un rastreo puntual de un sitio pequeño | menos de 5.000 | 10.000 páginas (3,75 US$) | | Agente de IA usado a diario por un equipo pequeño | 10.000 a 30.000 al mes | 50.000 páginas (14,25 US$) | | Índice RAG de varios sitios de documentación, con actualizaciones semanales | 30.000 a 80.000 | 100.000 páginas (21,75 US$) | | Producto que lee páginas para sus propios usuarios | 100.000 a 400.000 al mes | 500.000 páginas (50 US$) | | Corpus de investigación o archivo grande | 1 millón y más | 1.000.000 de páginas (74,25 US$) o 5.000.000 de páginas (350 US$) | ## ¿Cómo se comparan estos precios con los de otras API de lectura web? Precio por 1.000 páginas cuando lees 100.000 páginas al mes, según la página de precios pública de cada proveedor. La tabla completa, con 21 API y tres volúmenes, está en [comparativa de precios de API de lectura web](https://webreaderapi.com/es/compare/web-reader-api-pricing/). | Proveedor y plan | Páginas simples | Páginas que necesitan un navegador | | --- | --- | --- | | WebReaderAPI, 100.000 páginas | 0,22 US$/1K páginas | 2 créditos por página | | Firecrawl Standard ($99 por 100.000 créditos) | $0.99 | $0.99 (todas las páginas renderizadas) | | Olostep Standard ($99) | $0.99 | $0.99 (todas las páginas renderizadas) | | Crawl4AI Cloud Builder ($99) | $0.50 | $0.99 | | Scrape.do Hobby ($29 por 250.000 créditos) | $0.29 | $0.99 en Pro | | ScrapingBee Freelance ($49) | $0.49 | $0.99 en Startup | | Contenidos de Exa | $1.00 | No hay opción de navegador documentada | | Tavily Extract (básico, con pago por uso) | $1.40 | $2.36 (avanzado) | *Precios comprobados el 22 de octubre de 2026.* No afirmamos ser los más baratos en todos los volúmenes ni para todos los tipos de página. Fuentes: la página de precios de cada proveedor, listada en la página de comparación. ## Cómo funciona el pago 1. **Recarga 25 US$ o más** — Elige el importe y la moneda (BTC, USDT, USDC, ETH, SOL, LTC). El importe en criptomonedas y su tasa quedan fijados durante 30 minutos. 2. **Envíalo a la dirección indicada, en la red exacta** — La página de pago muestra nuestra dirección de depósito para la moneda y la red que elegiste: BTC activado Bitcoin, USDT activado Tron (TRC-20) o Ethereum (ERC-20), USDC activado Ethereum (ERC-20), ETH activado Ethereum, SOL activado Solana, LTC activado Litecoin. Envía solo esa moneda en esa red: los fondos enviados en otra red o en otra moneda no se pueden recuperar. La comisión de red se suma al importe. 3. **Envía el importe exacto que se muestra y luego haz clic en «He enviado el pago»** — Cada recarga tiene su propio importe exacto (hasta los últimos decimales): así localizamos tu pago y lo asociamos a tu cuenta. 4. **Acreditado en cuanto comprobamos tu pago en la blockchain** — Tu saldo se acredita en cuanto hemos comprobado la transacción en la blockchain, una vez que la red la ha confirmado. Tiempos habituales de confirmación de la red: 5. **Un solo saldo para todos los créditos de tus páginas** — Cuando empiezas con un pack, la recarga equivale a su precio (o al mínimo, si el pack es más pequeño); los créditos se añaden en cuanto se acredita el pago, y la clave API te espera en tu panel. El resto queda en el saldo para packs posteriores. Tu saldo no tiene fecha de caducidad y puedes comprar créditos de página en cualquier momento. Si un pack cuesta menos que la recarga mínima, el importe que añadiste solo para alcanzar ese mínimo se puede devolver a petición dentro de los 30 días siguientes al pago, en USDT o USDC, siempre que no lo hayas gastado. Cualquier otro saldo no se reembolsa salvo que la ley indique lo contrario. | Criptomonedas | Red | Confirmaciones | Tiempo habitual | | --- | --- | --- | --- | | Bitcoin (BTC) | Bitcoin | 2 | ≈ 20 min | | Tether (USDT) | Tron (TRC-20) | 20 | ≈ 1 min | | Tether (USDT) | Ethereum (ERC-20) | 12 | ≈ 5 min | | USD Coin (USDC) | Ethereum (ERC-20) | 12 | ≈ 5 min | | Ethereum (ETH) | Ethereum | 12 | ≈ 5 min | | Solana (SOL) | Solana | 1 | ≈ 1 min | | Litecoin (LTC) | Litecoin | 6 | ≈ 15 min | ¿Cerraste la pestaña? La recarga pendiente sigue en Facturación dentro de tu cuenta: ábrela para ver de nuevo la dirección y el importe exacto. ## Preguntas sobre precios ### ¿Hay plan gratuito? No. 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. El pack 10.000 páginas cuestan 3,75 US$ e incluye todas las opciones del pack más grande. ### ¿Por qué tengo que recargar 25 US$ si un pack cuesta menos? Todos los pagos pasan por tu saldo, y la recarga mínima es 25 US$. Tu saldo no tiene fecha de caducidad y puedes comprar créditos de página en cualquier momento. Si un pack cuesta menos que la recarga mínima, el importe que añadiste solo para alcanzar ese mínimo se puede devolver a petición dentro de los 30 días siguientes al pago, en USDT o USDC, siempre que no lo hayas gastado. Cualquier otro saldo no se reembolsa salvo que la ley indique lo contrario. ### ¿Puedo obtener un reembolso? Un pack de créditos comprado hace menos de 72 horas vuelve a tu saldo si se usó menos del 20 % de sus créditos. Si un pack no funciona y el soporte no lo resuelve en 24 horas, todo vuelve a tu saldo. Las recargas se quedan como saldo y no se reembolsan salvo que la ley disponga lo contrario; el importe añadido solo para alcanzar la recarga mínima puede devolverse bajo petición en un plazo de 30 días, en USDT o USDC, mientras no se haya gastado. La [política de reembolsos](https://webreaderapi.com/es/refunds/) incluye ejemplos prácticos. ### ¿Las páginas con JavaScript siempre cuestan dos créditos? Solo cuando el navegador se ejecuta de verdad. Con `render=auto`, la mayoría de páginas de noticias, blogs y documentación se leen desde su HTML por un crédito; el navegador solo arranca cuando ese HTML contiene muy poco texto. El campo `rendered` te indica qué ocurrió. ### ¿Con qué criptomonedas puedo pagar? BTC, USDT, USDC, ETH, SOL, LTC. USDT funciona en TRC-20 o ERC-20, y USDC en ERC-20. La [página de pagos con criptomonedas](https://webreaderapi.com/es/crypto-payments/) explica cada paso. --- 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. --- # Política de privacidad > Política de privacidad de WebReaderAPI: registramos nombres de host, no URLs ni contenido, durante 30 días. Sin ID ni tarjeta, inicio con número de cuenta. - URL: https://webreaderapi.com/es/privacy/ - Última actualización: 2026-10-22 - Editor: WebReaderAPI (https://webreaderapi.com) Un lector web ve dos tipos de datos: los tuyos como cliente y las páginas que le pides leer. Esta política cubre ambos, en ese orden. **Respuesta rápida — ¿Qué guarda WebReaderAPI sobre mí y sobre las páginas que leo?** **WebReaderAPI** conserva tu número de cuenta, un email opcional, tus registros de pagos y créditos, y logs de solicitudes que contienen el nombre de host de cada página, nunca la URL completa ni su contenido, durante 30 días. No guardamos ninguna copia de las páginas que lees. No pedimos documento de identidad ni tarjeta, y no vendemos ni compartimos tus datos. ## ¿Qué datos recopilamos sobre ti? Solo lo necesario para prestar el servicio: - **Cuenta:** tu número de cuenta, y una dirección de email si decides añadirla. - **Pagos:** las recargas, sus IDs de transacción, monedas y redes, y los packs que compras. - **Uso:** Cada solicitud deja una línea de log con la hora, la cuenta, el nombre de host de la página (nunca la URL completa ni su contenido), el estado y los créditos usados; estas líneas se eliminan a los 30 días. Las páginas que lees no se almacenan. El número de cuenta, los pedidos, las recargas y los totales de créditos se conservan mientras exista la cuenta y después solo el tiempo que exija la ley contable. Los registros se entregan a las autoridades solo cuando una ley nos obliga. - **Claves API:** almacenadas para poder verificar tus solicitudes, revocables en cualquier momento. ## ¿Qué no recopilamos nunca? Nunca recopilamos documentos de identidad, selfies, documentos de empresa ni números de tarjeta, porque no los necesitamos. Inicio de sesión con número de cuenta; el email es opcional. Nunca almacenamos la dirección completa de las páginas que lees, su contenido ni el Markdown que te devolvemos. Una vez que la respuesta sale de nuestros servidores, el texto de la página desaparece de nuestro lado. ## ¿Por qué guardar el nombre de host de cada página? Por dos razones: para mostrarte tu historial de uso y para responder a los propietarios de sitios que reportan un problema con nuestro rastreador. Un nombre de host como `example.com` basta para ambas cosas, así que reducimos cada URL a él antes de escribir el log. Los logs se eliminan a los 30 días. ## ¿Quién ve las solicitudes que hacemos por ti? El sitio web que nos pides leer ve una solicitud desde nuestra infraestructura, con nuestro user agent `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)`. No ve tu cuenta, tu clave ni tu identidad. Cuando usas la opción `country`, la solicitud sale desde una dirección de ese país a través de nuestra infraestructura, con el mismo user agent. Nuestra infraestructura recibe solo lo necesario para obtener la página: la URL y las opciones que elegiste. ## ¿Usáis cookies? Las páginas públicas no usan cookies publicitarias ni de seguimiento. El área de cliente usa el almacenamiento necesario para mantener tu sesión iniciada y recordar opciones de la interfaz como tu idioma. Las páginas de pago muestran direcciones e importes pero no instalan rastreadores de terceros. ## ¿Compartís o divulgáis datos? No vendemos ni alquilamos ningún dato. Los registros se entregan a las autoridades solo bajo una obligación legal, y te avisamos cuando la ley lo permite. Los registros de cuenta y de pagos se conservan mientras tu cuenta esté abierta y, después, solo el tiempo que exijan las normas contables. ## ¿Cómo veo o elimino mis datos? Tu historial de uso y tus pagos están en el área de cliente. Para eliminar tu cuenta, solicítalo desde el área de cliente o escribe a support@webreaderapi.com con un ID de pedido; no te pediremos tu número de cuenta ni una clave. Eliminar la cuenta borra sus créditos, como explican los [términos](https://webreaderapi.com/es/terms/). --- 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. --- # Política de reembolsos > Política de reembolsos de WebReaderAPI: los créditos vuelven a tu saldo en 72 horas si usaste menos del 20 %, reembolso completo por un pack que no funciona. - URL: https://webreaderapi.com/es/refunds/ - Última actualización: 2026-10-22 - Editor: WebReaderAPI (https://webreaderapi.com) Los reembolsos van a tu saldo, donde permanecen y nunca caducan. Esta página expone la regla, tres ejemplos con tamaños de pack reales y cómo solicitarlo. **Respuesta rápida — ¿Puedo obtener un reembolso de los créditos de WebReaderAPI?** Sí, en dos casos. Dentro de las 72 horas posteriores a la compra, un pack de créditos de **WebReaderAPI** vuelve a tu saldo si usaste menos del 20 % del mismo. Un pack que no funciona, y que el soporte no puede arreglar en 24 horas, se abona de vuelta en su totalidad. Las recargas permanecen en tu saldo; solo la parte añadida para alcanzar el mínimo de 25 US$ se puede devolver. ## ¿Cuál es la regla exacta? Un pack de créditos comprado hace menos de 72 horas vuelve a tu saldo si se usó menos del 20 % de sus créditos. Si un pack no funciona y el soporte no lo resuelve en 24 horas, todo vuelve a tu saldo. Las recargas se quedan como saldo y no se reembolsan salvo que la ley disponga lo contrario; el importe añadido solo para alcanzar la recarga mínima puede devolverse bajo petición en un plazo de 30 días, en USDT o USDC, mientras no se haya gastado. Las solicitudes de reembolso las gestiona una persona, y el importe aparece en tu saldo una vez aprobado. Las solicitudes fallidas nunca necesitan reembolso, porque no usan ningún crédito desde el principio. Eso incluye las páginas rechazadas por robots.txt, por la preferencia de IA de un sitio o por el propio sitio. ## Ejemplo 1: un pack comprado por error Compras 100.000 páginas por 21,75 US$, lees 3000 páginas para probar y decides que un pack más pequeño te conviene. Lo pides al día siguiente. Usaste el 3 % del pack, por debajo del límite del 20 % y dentro de las 72 horas, así que los 21,75 US$ completos vuelven a tu saldo. Después puedes comprar 10.000 páginas por 3,75 US$ con él. ## Ejemplo 2: un pack que no funciona Compras 50.000 páginas por 14,25 US$, y todas las solicitudes devuelven un error por nuestro lado por un motivo que el soporte no puede arreglar en 24 horas. El pack se abona de vuelta en su totalidad, sea cual sea la parte que hayas intentado usar. ## Ejemplo 3: la recarga mínima Solo necesitas 10.000 páginas por 3,75 US$, pero la recarga mínima es 25 US$. La diferencia permanece en tu saldo para packs posteriores. Si no la gastas, puedes pedir que esa diferencia se te devuelva en un plazo de 30 días desde el pago, en USDT o USDC. Nada más de una recarga se devuelve, salvo cuando la ley lo exija. ## ¿Cómo pido un reembolso? Usa el formulario de soporte del área de cliente, o escribe a support@webreaderapi.com con el ID de pedido que aparece en tu historial de pedidos (nunca tu número de cuenta ni una clave API). El soporte responde en un plazo de 12 horas; una vez aprobado un reembolso, el importe aparece en tu saldo. ## ¿Por qué los reembolsos van al saldo? Porque los pagos con criptomonedas no se pueden revertir como los pagos con tarjeta, y devolver monedas cuesta comisiones de red cada vez. Un abono al saldo es inmediato y no te cuesta nada. La única excepción, devuelta en stablecoins, es la parte de una recarga añadida solo para alcanzar el mínimo, dentro de 30 días y si no se ha gastado. Los pagos no se devuelven de otro modo, salvo cuando la ley lo exija. --- 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. --- # Estado de WebReaderAPI: cómo comprobar que la API funciona > Comprobar que la API web reader de WebReaderAPI funciona: endpoint gratuito de créditos, qué significa cada código de error y dónde se anuncian incidentes. - URL: https://webreaderapi.com/es/status/ - Última actualización: 2026-10-22 - Editor: WebReaderAPI (https://webreaderapi.com) Cuando una página no vuelve, la causa suele ser el sitio web, a veces la red y rara vez nosotros. Esta página muestra cómo saber cuál, en unos segundos y sin gastar un crédito. **Respuesta rápida — ¿Cómo sé si WebReaderAPI funciona?** Llama a `GET https://webreaderapi.com/api/v1/credits` con tu clave: es gratis, y una respuesta normal significa que la API y tu clave funcionan. Si una página falla, el código de error te dice por qué, y **WebReaderAPI** no cobra nada por ello. Los incidentes de nuestro lado quedan registrados en el [changelog](https://webreaderapi.com/es/changelog/) con su fecha. ## ¿Cuál es la comprobación de estado más rápida? El endpoint de créditos. Responde sin obtener ningún sitio web, así que solo prueba nuestro lado: la autenticación, la API y tu cuenta. *curl: comprueba la API y tus créditos restantes* ```bash curl -s https://webreaderapi.com/api/v1/credits -H "Authorization: Bearer $WEBREADER_API_KEY" ``` ## ¿Qué errores vienen del sitio web y cuáles de nosotros? El código de error indica dónde está el problema. Ninguno de estos errores usa un crédito. | Código | Dónde está el problema | Qué hacer | |---|---|---| | `blocked_by_robots` | El robots.txt del sitio rechaza nuestro rastreador | Nada: el sitio ha dicho que no | | `blocked_by_site_policy` | El sitio declara `ai-input=no` | Nada: el sitio ha dicho que no | | `target_refused` | El sitio respondió 403, 429, un challenge o un login | Inténtalo más tarde, o pide acceso al sitio | | `fetch_failed` | DNS, TLS, conexión o una página 404/410 | Comprueba la URL; reinténtalo más tarde | | `fetch_timeout` | El sitio no respondió a tiempo | Reinténtalo con un `timeout` mayor | | `concurrency_limit` | Demasiadas solicitudes a la vez desde tu cuenta | Baja el ritmo o pide un límite mayor | | `invalid_api_key`, `insufficient_credits` | Tu clave o tu saldo | Comprueba el panel | La [página de errores](https://webreaderapi.com/es/docs/errors/) detalla cada caso, con un bucle de reintento. ## ¿Por qué no hay aquí una cifra de uptime en vivo? Porque todavía no hemos medido ninguna sobre una muestra pública, y una cifra inventada te engañaría. El éxito de una lectura depende sobre todo del sitio que se lee, así que un único porcentaje diría poco. Cuando publiquemos cifras, vendrán con el método, la muestra y la fecha. ## ¿Dónde se anuncian los incidentes? En el [changelog](https://webreaderapi.com/es/changelog/), con la fecha, los endpoints afectados y lo que se hizo. Si ves errores repetidos por nuestro lado (códigos distintos de los causados por el sitio de destino), escribe a support@webreaderapi.com con la hora de la solicitud y el código de error. ## Estado: preguntas frecuentes ### ¿Comprobar mis créditos cuesta algo? No. `GET https://webreaderapi.com/api/v1/credits` nunca usa un crédito, así que puedes llamarlo desde una comprobación de estado tantas veces como quieras, dentro de tu límite de concurrencia. ### Una página me falla pero se abre en mi navegador. ¿Por qué? Normalmente porque el sitio trata a los robots de forma distinta que a las personas: puede rechazar nuestro rastreador en robots.txt o responder a las solicitudes automatizadas con una página de challenge. Devolvemos su respuesta y no cobramos nada. El código de error y `target_status` muestran lo que envió el sitio. ### ¿Se cobran alguna vez las lecturas fallidas? 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. --- 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. --- # Términos del servicio > Términos del servicio de WebReaderAPI: cuenta, créditos de páginas sin caducidad, recargas con criptomonedas, robots.txt, reembolsos y responsabilidad. - URL: https://webreaderapi.com/es/terms/ - Última actualización: 2026-10-22 - Editor: WebReaderAPI (https://webreaderapi.com) Estos términos cubren el sitio web, el área de cliente y la API. Cada sección responde a una pregunta, y nada importante se esconde en una nota al pie. **Respuesta rápida — ¿Qué dicen los términos de WebReaderAPI en resumen?** Pagas con criptomonedas por créditos de páginas prepago para la API de lectura web **WebReaderAPI**, tras una recarga de al menos 25 US$. 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. Los créditos prepago nunca caducan: las páginas sin usar permanecen en tu cuenta hasta que las uses. Cada solicitud respeta el robots.txt del sitio de destino, y la [Política de uso aceptable](https://webreaderapi.com/es/acceptable-use/) forma parte de estos términos. El servicio lo vende SerpGoat LLC. ## 1. ¿A quién obligan estos términos? A ti y a SerpGoat LLC, que opera WebReaderAPI. "Tú" es el titular de una cuenta, una persona o una organización. Crear una cuenta, pagar una recarga o llamar a la API significa que aceptas estos términos y la [Política de uso aceptable](https://webreaderapi.com/es/acceptable-use/). ## 2. ¿Qué hace el servicio? WebReaderAPI obtiene páginas web públicas y archivos PDF que tú indicas y devuelve su contenido como Markdown, texto plano o HTML limpio, a través de `https://webreaderapi.com/api/v1/read`, `https://webreaderapi.com/api/v1/batch` y `https://webreaderapi.com/api/v1/crawl`. Los sitios web deciden qué contienen sus páginas y si los robots pueden leerlas. No controlamos, corregimos ni garantizamos el contenido que devolvemos. Una misma URL puede dar un resultado distinto de una solicitud a otra. ## 3. ¿Cómo funcionan las cuentas y las claves API? Inicio de sesión con número de cuenta; el email es opcional. Inicias sesión con tu número de cuenta, así que guárdalo en un lugar seguro. Un email opcional te da una forma de recuperarlo; sin email registrado, un número perdido no se puede restaurar. Puedes crear varias claves y revocar cualquiera de ellas desde el panel. Cada solicitud enviada con una de tus claves consume tus créditos, sea quien sea que la envíe, así que mantén las claves en privado y revoca cualquier clave que se filtre. Una cuenta por persona u organización. ## 4. ¿Cómo se cuentan los créditos y cuándo caducan? 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. Elegir el país desde el que se lee una página añade 10 créditos, porque la página se lee entonces a través de una conexión residencial en ese país. Los archivos PDF de hasta 20 MB y 100 páginas se convierten a Markdown, a 1 crédito por cada bloque de 10 páginas iniciado. Los créditos prepago nunca caducan: las páginas sin usar permanecen en tu cuenta hasta que las uses. Los créditos solo se pierden si eliminas tu cuenta o si la cerramos por un incumplimiento de estos términos. Si dejamos de vender el servicio, te avisamos con al menos 30 días de antelación para que puedas usar los créditos que te quedan o trasladar su valor a otro producto. ## 5. ¿Cómo funcionan los pagos? Los precios están en dólares estadounidenses en la [página de precios](https://webreaderapi.com/es/pricing/). Recargas un saldo en BTC, USDT, USDC, ETH, SOL, LTC, con un mínimo de 25 US$, y compras packs de créditos con ese saldo. Envía el importe exacto que se muestra en la red indicada y luego haz clic en "He enviado el pago"; el pago se empareja por su importe exacto y se abona una vez confirmado en la blockchain. Tu saldo conserva su valor sin fecha de caducidad. Cuando un pack cuesta menos que la recarga mínima, la parte sobrante se puede reclamar en un plazo de 30 días, en USDT o USDC, siempre que no se haya gastado; las demás recargas no se reembolsan salvo que la ley lo exija. Las comisiones de red las paga el remitente. ## 6. ¿Puedo obtener un reembolso? Sí, a tu saldo, en dos casos: un pack usado en menos del 20 % dentro de las 72 horas posteriores a la compra, y un pack que no funciona y que el soporte no puede reparar en un día. La [política de reembolsos](https://webreaderapi.com/es/refunds/) detalla la regla completa, con ejemplos. ## 7. ¿Qué reglas se aplican a las páginas que leo? Nuestro rastreador aplica tres reglas a cada solicitud, y no se pueden desactivar. Respetamos robots.txt: nuestro rastreador se identifica como WebReaderAPI, sigue las reglas escritas para él o para todos los robots y no lee una página que un sitio prohíbe. Las páginas rechazadas no se cobran. Si un sitio declara Content-Signal: ai-input=no en su robots.txt, no leemos sus páginas para ti. 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. Eres responsable del uso que hagas del contenido que recibes, incluidos los derechos de sus propietarios. La [Política de uso aceptable](https://webreaderapi.com/es/acceptable-use/) enumera los usos prohibidos. ## 8. ¿Hay límites de volumen o de velocidad? Cada cuenta tiene un límite de cuántas páginas lee a la vez; tu panel lo muestra y el soporte puede ampliarlo. Rastrea un sitio web por trabajo, hasta 10.000 páginas, siguiendo su sitemap, su robots.txt y su Crawl-delay. Hasta 100 URLs por trabajo por lotes. Podemos ralentizar o pausar las solicitudes a un mismo sitio web para protegerlo, por ejemplo respetando su `Crawl-delay`. ## 9. ¿Cuándo podéis suspender mi cuenta? Cuando detectamos un incumplimiento de estos términos o de la política de uso aceptable, cuando un pago se revierte o es fraudulento, o cuando la ley lo exige. Te indicamos el motivo cuando la ley lo permite, y una persona revisa los hechos antes de cualquier suspensión. ## 10. ¿Qué garantizáis? Prestamos el servicio tal como está. No garantizamos que una página determinada se pueda leer, que un sitio acepte nuestras solicitudes ni que el servicio funcione sin interrupciones. Las solicitudes fallidas y las páginas rechazadas por un sitio no se cobran, lo que limita tu coste cuando una página no se puede leer. ## 11. ¿Cuál es vuestra responsabilidad? Cuando la ley lo permite, nuestra responsabilidad total por cualquier reclamación se limita a los importes que nos pagaste en los 12 meses anteriores al hecho que la originó. No somos responsables de pérdidas indirectas, como el lucro cesante o la pérdida de datos. Nada en estos términos limita una responsabilidad que la ley no nos permita limitar. ## 12. ¿Cómo cambian estos términos? Fechamos cada versión y registramos los cambios en el [changelog](https://webreaderapi.com/es/changelog/). Un cambio que reduzca tus derechos se aplica a los créditos comprados después de que se publique el cambio. Las preguntas van a support@webreaderapi.com. --- 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. --- # API de página web a Markdown: el contenido principal de cualquier URL, listo para un modelo > API de página web a Markdown para LLM y agentes de IA: cualquier URL a Markdown limpio con título, autor y fecha, desde 0,07 US$/1K páginas. Sin KYC, cripto. - URL: https://webreaderapi.com/es/url-to-markdown-api/ - Última actualización: 2026-10-22 - Editor: WebReaderAPI (https://webreaderapi.com) Pasa una URL y recibe el artículo como Markdown: se conservan encabezados, párrafos, listas, tablas y enlaces; se eliminan menús, banners de cookies, anuncios y pies de página. Con el título, el autor, la fecha y el idioma de la página. **Respuesta rápida — ¿Qué API convierte una página web en Markdown limpio para un LLM?** Una API de página web a Markdown obtiene una página, conserva su contenido principal y lo devuelve como Markdown. **WebReaderAPI** lo hace en una sola solicitud: `GET https://webreaderapi.com/api/v1/read?url=…` devuelve el artículo con sus encabezados, listas, tablas y enlaces, además de título, autor, fecha y recuento de palabras, por un crédito por página desde 0,07 US$/1K páginas a fecha de octubre de 2026. Se respeta robots.txt. Sin KYC; paga con criptomonedas. ## API de URL a Markdown de un vistazo | Atributo | Valor | | --- | --- | | Endpoint | `GET https://webreaderapi.com/api/v1/read?url=…` (o `POST` con un cuerpo JSON) | | Salida | Markdown limpio del contenido principal de la página (o texto plano, o HTML limpio), con título, descripción, autor, fecha de publicación, idioma y recuento de palabras; enlaces e imágenes bajo petición | | JavaScript | Renderizado de JavaScript en un navegador headless cuando la página lo necesita (render=auto), o siempre, o nunca | | 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 | | Presupuesto de tokens | `max_chars` recorta el Markdown a la longitud que admite tu modelo | | robots.txt | Respetamos robots.txt: nuestro rastreador se identifica como WebReaderAPI, sigue las reglas escritas para él o para todos los robots y no lee una página que un sitio prohíbe. Las páginas rechazadas no se cobran | | Precio | 3,75 US$ por 10.000 páginas, 21,75 US$ por 100.000 páginas, desde 0,07 US$/1K páginas a 5.000.000 de páginas | | Pago | BTC, USDT, USDC, ETH, SOL, LTC, desde una recarga de 25 US$; sin KYC | ## ¿Por qué convertir las páginas web a Markdown antes de dárselas a un modelo? Markdown conserva la estructura que un modelo necesita y descarta el marcado que no le sirve. Una página de artículo típica incluye navegación, scripts, etiquetas de seguimiento, avisos de cookies y widgets de artículos relacionados alrededor de unos pocos cientos de palabras de texto. Si la envías como HTML sin procesar, la mayor parte de los tokens que pagas son marcado. Markdown mantiene los encabezados como `#`, las listas como `-`, las tablas con barras verticales y los enlaces como `[text](url)`. Un modelo aún puede ver qué frase pertenece a qué sección, citar el enlace de origen y dividir el texto en fragmentos siguiendo sus encabezados. El mismo texto en prosa simple pierde esa estructura; el mismo texto en HTML cuesta muchos más tokens. ## ¿Qué conserva la API y qué elimina? Con `main_content=true`, el valor predeterminado, la API conserva la parte de la página por la que vino el lector y elimina el resto. | Conserva | Elimina | |---|---| | Título y encabezados | Navegación y menús del sitio | | Párrafos, citas y listas | Banners de cookies y consentimiento | | Tablas, como tablas Markdown | Anuncios y widgets promocionados | | Bloques de código, con su lenguaje cuando se muestra | Barras laterales y listas de artículos relacionados | | Enlaces dentro del texto | Pies de página y texto legal repetitivo | | Imágenes, solo con `include_images=true` | Botones de compartir y formularios de comentarios | Configura `main_content=false` para convertir la página entera, por ejemplo una página de inicio o un listado de productos donde todo importa. Configura `format=text` para texto plano sin Markdown, o `format=html` para HTML limpio del contenido principal. *curl: una página como Markdown, recortada a 20.000 caracteres* ```bash curl -G "https://webreaderapi.com/api/v1/read" \ -H "Authorization: Bearer $WEBREADER_API_KEY" \ --data-urlencode "url=https://example.com/blog/pour-over-coffee" \ -d format=markdown -d max_chars=20000 ``` *Python: leer una página e imprimir sus metadatos y su Markdown* ```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/pour-over-coffee", "format": "markdown"}, timeout=90, ) resp.raise_for_status() page = resp.json() print(page["title"], "|", page.get("author"), "|", page.get("published_at")) print(page["word_count"], "words,", page["credits_used"], "credit(s)") print(page["markdown"][:500]) ``` ## ¿Y las páginas creadas con JavaScript? Muchas páginas envían casi nada de texto en su primer HTML y construyen el contenido en el navegador. Con `render=auto`, el valor predeterminado, la API primero lee el HTML sin procesar; si contiene muy poco texto, abre la página en un navegador headless y lee el resultado. La respuesta indica cuál de los dos casos ocurrió en `rendered`. Una página que necesitó el navegador cuesta dos créditos en lugar de uno. Si sabes que un sitio siempre lo necesita, configura `render=true`; si solo quieres lo que envía el servidor, configura `render=false` y nunca pagas el segundo crédito. ## ¿Qué pasa cuando un sitio no quiere que lo lean? Respetamos su decisión y no se te cobra. Nuestro rastreador se identifica como `WebReaderAPI` y comprueba robots.txt antes de cada lectura. Una página no permitida para nuestro token, o para todos los robots, devuelve `403 blocked_by_robots`. Un sitio que declara `Content-Signal: ai-input=no` devuelve `403 blocked_by_site_policy`. Si el sitio rechaza la solicitud de otra forma, como un estado 403, una página de desafío o un muro de inicio de sesión, recibes `502 target_refused` con el 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. Nuestra [página del rastreador](https://webreaderapi.com/es/bot/) explica todo esto a los propietarios de sitios, con el User-Agent exacto. ## ¿Cuántas páginas necesitará mi proyecto? Cuenta un crédito por página, dos para las páginas que necesitan el navegador. Algunos volúmenes típicos: - **Un agente de IA** que lee 5 páginas por tarea y ejecuta 100 tareas al día lee unas 15.000 páginas al mes: 50.000 páginas (14,25 US$) duran más de tres meses. - **Un índice RAG** de tres sitios de documentación con 2.000 páginas cada uno son 6.000 páginas, más una actualización semanal de las páginas modificadas. - **Un corpus de investigación** de 400.000 artículos de noticias y blogs cabe en 500.000 páginas (50 US$). Los créditos nunca caducan, así que un pack comprado para un rastreo puntual conserva su valor restante para trabajos posteriores. ## ¿Cuánto cuesta la API de URL a Markdown? 10.000 páginas cuestan 3,75 US$, 100.000 páginas cuestan 21,75 US$ y 1.000.000 de páginas cuestan 74,25 US$, a fecha de octubre de 2026. Las páginas fallidas y las páginas rechazadas por robots.txt son gratis. Consulta [todos los packs](https://webreaderapi.com/es/pricing/). | Plan | Cantidad | Precio | Precio por unidad | | --- | --- | --- | --- | | Prueba | 10.000 páginas | 3,75 US$ | 0,38 US$/1K páginas | | Starter | 50.000 páginas | 14,25 US$ | 0,28 US$/1K páginas | | Build | 100.000 páginas | 21,75 US$ | 0,22 US$/1K páginas | | Volume | 1.000.000 de páginas | 74,25 US$ | 0,07 US$/1K páginas | En todos los planes: Extracción del contenido principal · Renderizado de JavaScript cuando es necesario · Las páginas fallidas y rechazadas no se cobran · Los créditos nunca caducan **Antes de pagar** - Recarga mínima 25 US$. Recarga una vez con criptomonedas y luego compra cualquier plan con tu saldo. - Tu saldo no tiene fecha de caducidad y puedes comprar créditos de página en cualquier momento. Si un pack cuesta menos que la recarga mínima, el importe que añadiste solo para alcanzar ese mínimo se puede devolver a petición dentro de los 30 días siguientes al pago, en USDT o USDC, siempre que no lo hayas gastado. Cualquier otro saldo no se reembolsa salvo que la ley indique lo contrario. - Se acredita en cuanto comprobamos tu pago en la blockchain. Tiempo habitual de confirmación de la red: BTC ≈ 20 min · USDT TRC-20 ≈ 1 min · USDT ERC-20 ≈ 5 min · USDC ERC-20 ≈ 5 min · ETH ≈ 5 min · SOL ≈ 1 min · LTC ≈ 15 min ## API de URL a Markdown: preguntas frecuentes ### ¿El Markdown conserva las tablas y los bloques de código? Sí. Las tablas HTML se convierten en tablas Markdown, y los bloques de código se mantienen delimitados, con su lenguaje cuando la página lo indica. Las tablas muy complejas, como las que tienen celdas combinadas, se aplanan fila por fila. ### ¿Puedo obtener la página entera en lugar del artículo? Sí. Configura `main_content=false` y la API convierte todo lo que hay en la página, incluidos la navegación y el pie de página. Esto va bien para páginas de inicio, páginas de categoría y listados de productos, donde el detector de contenido principal descartaría partes útiles. ### ¿Cómo mantengo las páginas dentro de la ventana de contexto de mi modelo? Usa `max_chars`, entre 1.000 y 500.000 caracteres, para cortar el Markdown a una longitud fija. El campo `word_count` te dice cuánto medía el artículo completo, para que tu agente pueda decidir si leer más. ### ¿Puede leer páginas detrás de un inicio de sesión o un muro de pago? No. WebReaderAPI solo lee páginas públicas. Nunca inicia sesión en cuentas ni intenta sortear un muro de pago o un bloqueo; esas páginas devuelven el rechazo del sitio y no se cobran. ### ¿Necesito un documento de identidad o una tarjeta para obtener una clave? No. WebReaderAPI no pide documento de identidad, ni selfi, ni documentos de empresa, ni tarjeta. Inicio de sesión con número de cuenta; el email es opcional. Recargas el saldo desde 25 US$ en BTC, USDT, USDC, ETH, SOL, LTC. --- 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. --- # ¿Qué puedes construir con una API web reader? > API web reader: crea herramientas de lectura para agentes de IA, ingestión para RAG y exportaciones de sitios a Markdown desde 0,07 US$/1K páginas. - URL: https://webreaderapi.com/es/use-cases/ - Última actualización: 2026-10-22 - Editor: WebReaderAPI (https://webreaderapi.com) Cuatro tareas explican la mayor parte de lo que se hace con el texto limpio de una página: dar a un agente una forma de leer, alimentar una base de conocimiento, vigilar páginas en busca de cambios y trasladar el contenido de un sitio a Markdown. Cada una tiene su propia página con código y costes. **Respuesta rápida — ¿Para qué se usa una API web reader?** Los equipos usan una API web reader para dar a los agentes de IA una herramienta de lectura, para ingerir sitios en índices RAG, para monitorizar páginas públicas en busca de cambios y para convertir sus propios sitios web a Markdown. **WebReaderAPI** cubre las cuatro con una sola clave: `/read` por una página, `/batch` por una lista, `/crawl` por un sitio, a un crédito por página desde 0,07 US$/1K páginas a fecha de octubre de 2026. Sin KYC; paga con criptomonedas. ## ¿Cuál es tu caso de uso? - **[Agentes de IA](https://webreaderapi.com/es/use-cases/ai-agents/)** — Una herramienta read_url para Claude, Cursor, OpenClaw, n8n o tu propio agente, con un límite de longitud por página. - **[Ingesta para RAG](https://webreaderapi.com/es/use-cases/rag/)** — Rastrea documentación y blogs y conviértelos en fragmentos Markdown que conservan sus encabezados y la URL de origen. - **[Monitorización de cambios](https://webreaderapi.com/es/use-cases/monitoring/)** — Lee páginas de precios, políticas y changelogs de forma programada y recibe las diferencias como texto. - **[Web a Markdown](https://webreaderapi.com/es/use-cases/website-to-markdown/)** — Exporta tu propio sitio a archivos Markdown para una migración, una copia de seguridad o tu propio asistente. - **[PDFs](https://webreaderapi.com/es/pdf-to-markdown-api/)** — Informes, artículos y manuales desde un enlace, convertidos a texto Markdown. - **[llms.txt](https://webreaderapi.com/es/guides/llms-txt-generator/)** — Crea un archivo llms.txt para tu propio sitio a partir de un rastreo, con una línea por página. ## ¿Qué endpoint necesita cada caso de uso y cuántas páginas consume? Volúmenes típicos de un equipo pequeño, para dimensionar un primer pack. Un crédito por página, dos cuando la página necesita un navegador. | Caso de uso | Endpoint | Páginas típicas al mes | | --- | --- | --- | | Agente que lee 5 páginas por tarea, 100 tareas al día | `/read` | Unas 15 000 | | Índice RAG de 3 sitios de documentación, actualizado cada semana | `/crawl`, luego `/batch` | 6000 para construirlo, unos cientos a la semana después | | Vigilar 200 páginas de competidores y de políticas a diario | `/batch` | Unas 6000 | | Exportar un sitio de 2000 páginas una vez | `/crawl` | 2.000, pago único | ## ¿Qué problema comparten estas cuatro tareas? Todas necesitan la parte legible de una página, no su maquetación. Un agente malgasta tokens en los menús; un índice posiciona el contenido repetitivo; un monitor de cambios genera falsas alarmas cuando rota un anuncio; una migración copia los banners de cookies al nuevo sitio. La extracción del contenido principal resuelve el mismo problema en cada caso. También comparten los mismos límites. Las páginas tras un login o un paywall quedan fuera de alcance, y los sitios que rechazan robots se omiten y no se cobran. Respetamos robots.txt: nuestro rastreador se identifica como WebReaderAPI, sigue las reglas escritas para él o para todos los robots y no lee una página que un sitio prohíbe. Las páginas rechazadas no se cobran. ## ¿Cómo elijo entre /read, /batch y /crawl? Usa la herramienta más pequeña que haga el trabajo. - **`/read`** devuelve una página de forma síncrona. Les va bien a los agentes, que deciden página a página qué leer después. - **`/batch`** lee hasta 100 URL que ya conoces, como tarea en segundo plano. Les va bien a las listas de monitorización y a las actualizaciones. - **`/crawl`** descubre y lee todo un sitio desde una URL de inicio, hasta 10.000 páginas, siguiendo su sitemap y robots.txt. Les va bien a los primeros desarrollos y a las exportaciones. Las tres aceptan las mismas opciones, como `format`, `main_content`, `render` y `max_chars`, y facturan de la misma forma. ## ¿Cuánto costará un primer proyecto? La mayoría de los primeros proyectos caben en un pack pequeño. Un agente prototipo, un único índice de documentación o una lista de monitorización de unos cientos de páginas consumen entre unos miles y quince mil créditos al mes. 10.000 páginas cuestan 3,75 US$ y 50.000 páginas cuestan 14,25 US$, a fecha de octubre de 2026. Los créditos no caducan, así que comprar el pack más grande para un proyecto que puede crecer no cuesta nada extra en un mes tranquilo. Las páginas fallidas y las páginas rechazadas por robots.txt son gratis. ## Packs para un primer proyecto Empieza poco a poco; los créditos se acumulan sin fecha de caducidad. 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. | Plan | Cantidad | Precio | Precio por unidad | | --- | --- | --- | --- | | Prueba | 10.000 páginas | 3,75 US$ | 0,38 US$/1K páginas | | Starter | 50.000 páginas | 14,25 US$ | 0,28 US$/1K páginas | | Build | 100.000 páginas | 21,75 US$ | 0,22 US$/1K páginas | En todos los planes: Extracción del contenido principal · Renderizado de JavaScript cuando es necesario · Las páginas fallidas y rechazadas no se cobran · Los créditos nunca caducan **Antes de pagar** - Recarga mínima 25 US$. Recarga una vez con criptomonedas y luego compra cualquier plan con tu saldo. - Tu saldo no tiene fecha de caducidad y puedes comprar créditos de página en cualquier momento. Si un pack cuesta menos que la recarga mínima, el importe que añadiste solo para alcanzar ese mínimo se puede devolver a petición dentro de los 30 días siguientes al pago, en USDT o USDC, siempre que no lo hayas gastado. Cualquier otro saldo no se reembolsa salvo que la ley indique lo contrario. - Se acredita en cuanto comprobamos tu pago en la blockchain. Tiempo habitual de confirmación de la red: BTC ≈ 20 min · USDT TRC-20 ≈ 1 min · USDT ERC-20 ≈ 5 min · USDC ERC-20 ≈ 5 min · ETH ≈ 5 min · SOL ≈ 1 min · LTC ≈ 15 min ## Casos de uso: preguntas frecuentes ### ¿Puedo usar una sola clave para varios proyectos? Sí, o crea una clave por proyecto para ver el uso por separado y revocar una sin tocar las demás. Crea varias claves API, por ejemplo una por agente o proyecto, y revoca cualquiera de ellas desde tu panel. ### ¿Qué caso de uso necesita renderizado JavaScript? Cualquiera que lea apps web modernas, sitios de documentación de una sola página o páginas que cargan contenido después de la primera respuesta. Con `render=auto`, la API solo renderiza cuando el HTML en bruto contiene muy poco texto. ### ¿Hay algún caso de uso para el que WebReaderAPI no sirva? Sí: recopilar datos personales de personas privadas, leer contenido tras un login o un paywall, y cualquier cosa que requiera saltarse la negativa de un sitio. Nuestra [Política de uso aceptable](https://webreaderapi.com/es/acceptable-use/) recoge las reglas. ### ¿Necesito un documento de identidad para empezar? No. WebReaderAPI no pide identificación, ni selfie, ni documentos. Una recarga empieza en 25 US$, en BTC, USDT, USDC, ETH, SOL, LTC. --- 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. --- # Herramienta de obtención web para agentes de IA: lee páginas como Markdown limpio > Herramienta de obtención web para agentes de IA: lee páginas públicas como Markdown vía MCP, OpenAI, LangChain o n8n, desde 0,07 US$/1K páginas. - URL: https://webreaderapi.com/es/use-cases/ai-agents/ - Última actualización: 2026-10-22 - Editor: WebReaderAPI (https://webreaderapi.com) Un agente que sabe buscar pero no leer responde a partir de fragmentos. Dale una herramienta que convierta cualquier URL pública en Markdown corto y limpio, y podrá leer la fuente, citarla y referenciarla, dentro de un presupuesto que tú fijas. **Respuesta rápida — ¿Cuál es la mejor forma de dar a un agente de IA una herramienta de obtención web?** Envuelve una API de lectura de páginas web como una herramienta que recibe una URL y devuelve el contenido principal de la página como Markdown, recortado a una longitud fija. **WebReaderAPI** hace la lectura, renderiza JavaScript cuando hace falta, respeta robots.txt y cobra un crédito por página desde 0,07 US$/1K páginas a fecha de octubre de 2026. El código de herramienta listo para usar cubre MCP, OpenAI function calling, LangChain, n8n y OpenClaw. Sin KYC; cripto. ## WebReaderAPI como herramienta de agente | Atributo | Valor | | --- | --- | | Herramienta | `read_url(url, max_chars)` llamando a `https://webreaderapi.com/api/v1/read` | | Devuelve | Markdown del contenido principal, más título, autor, fecha y recuento de palabras | | Límite de longitud | `max_chars`, de 1.000 a 500.000 caracteres por página | | Páginas con JavaScript | Renderizado de JavaScript en un navegador headless cuando la página lo necesita (render=auto), o siempre, o nunca | | Rechazos | Se devuelven como errores claros, nunca se cobran | | Integraciones | [MCP](https://webreaderapi.com/es/docs/mcp/), [OpenAI](https://webreaderapi.com/es/docs/openai/), [LangChain y LlamaIndex](https://webreaderapi.com/es/docs/langchain/), [n8n](https://webreaderapi.com/es/docs/n8n/), [OpenClaw](https://webreaderapi.com/es/docs/openclaw/) | | Precio | 3,75 US$ por 10.000 páginas; los créditos no caducan | ## ¿Por qué un agente necesita un lector en lugar de HTML sin procesar? Porque el HTML sin procesar consume la ventana de contexto con cosas que el modelo no necesita. Un artículo de noticias o una página de documentación llega envuelto en navegación, scripts, banners de consentimiento y enlaces relacionados. Si se pasa tal cual, acapara la conversación y hace que el modelo cite menús. Un lector resuelve tres problemas a la vez. Conserva solo el contenido principal, renderiza páginas que están vacías hasta que se ejecuta JavaScript y convierte los PDF en texto. El agente recibe un único bloque compacto de Markdown con un título y una fecha que puede citar. ## ¿Por qué a veces fallan las herramientas de fetch integradas? Principalmente porque los sitios rechazan el tráfico automatizado. Desde el 1 de julio de 2025, Cloudflare bloquea por defecto a los rastreadores de IA para los dominios nuevos, y a partir del 15 de septiembre de 2026 sus preajustes bloquean el tráfico de "Agent" en las páginas con anuncios de los dominios nuevos. Las herramientas integradas de los agentes de programación y los asistentes se topan con esos rechazos como cualquier otro cliente. Otros fallos son técnicos. La documentación de OpenClaw, consultada el 22 de octubre de 2026, dice que su web_fetch integrado extrae el contenido con Readability, no ejecuta JavaScript y limita la salida a 20.000 caracteres. Las páginas creadas en el navegador, los documentos largos, los servidores lentos y los rate limits hacen tropezar a esas herramientas. Un lector que renderiza páginas resuelve el caso de JavaScript; el almacenamiento en caché y la paciencia resuelven el resto. Los rechazos son decisión del propietario del sitio. Nuestra [guía sobre los errores 403 de web fetch](https://webreaderapi.com/es/guides/web-fetch-403-errors/) explica cada caso. ## ¿Por qué la herramienta se llama read_url y no web_fetch? Para evitar un choque con herramientas que los agentes ya tienen. Claude Code y OpenClaw incluyen una herramienta integrada llamada `web_fetch`. Una segunda herramienta con el mismo nombre confunde al modelo sobre cuál está llamando. Llamar a la nuestra `read_url` mantiene ambas disponibles: el agente puede usar su fetcher integrado para comprobaciones rápidas y `read_url` cuando necesita Markdown limpio, PDF o páginas con JavaScript. Las definiciones de herramientas de nuestras páginas de documentación usan todas este nombre, así que puedes cambiar entre frameworks sin modificar tus prompts. *Python: una herramienta read_url compacta con límite de longitud* ```python import os import requests API = "https://webreaderapi.com/api/v1/read" HEADERS = {"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]} def read_url(url: str, max_chars: int = 12000) -> str: """Return a web page as Markdown for a model, or a short reason it was not read.""" resp = requests.get(API, headers=HEADERS, params={"url": url, "max_chars": max_chars}, timeout=90) data = resp.json() if resp.status_code != 200: err = data.get("error", {}) return "Not read (" + err.get("code", "error") + "): " + err.get("message", "") head = "# " + (data.get("title") or url) + "\nSource: " + data["final_url"] if data.get("published_at"): head += " | Published: " + data["published_at"] return head + "\n\n" + data["markdown"] if __name__ == "__main__": print(read_url("https://example.com/blog/pour-over-coffee", max_chars=2000)[:500]) ``` ## ¿Cómo debería decidir un agente qué leer? Dale un presupuesto y una regla. Tres hábitos controlan los costes y el contexto: - **Lee poco, lee bien.** De dos a cuatro fuentes por pregunta suelen bastar para responder con citas. - **Limita cada página.** Empieza con `max_chars` en torno a 10.000 a 15.000 caracteres; auméntalo solo cuando `word_count` indique que la respuesta probablemente esté más abajo. - **Informa de los rechazos.** Cuando una página no se lee, deja que el modelo lo diga y pase a otra fuente en lugar de reintentar. La herramienta anterior devuelve los rechazos como una sola frase clara, así el modelo puede explicárselos al usuario. ## ¿Cuánto cuesta ejecutar un agente en WebReaderAPI? Un crédito por página, dos cuando la página necesita un navegador. Un asistente que responde 100 preguntas al día y lee 4 páginas por cada una lee unas 12.000 páginas al mes. 50.000 páginas (14,25 US$) cubren eso durante cuatro meses, a fecha de octubre de 2026. Los créditos no caducan, así que un agente que está ocupado una semana y parado la siguiente no desperdicia una cuota mensual. Las páginas que fallan o que robots.txt rechaza no cuestan nada. ## ¿Qué pack conviene a un agente? Haz el prototipo con 10.000 páginas; pasa a 50.000 páginas o 100.000 páginas cuando el agente atienda a usuarios reales. Los créditos no caducan. | Plan | Cantidad | Precio | Precio por unidad | | --- | --- | --- | --- | | Prueba | 10.000 páginas | 3,75 US$ | 0,38 US$/1K páginas | | Starter | 50.000 páginas | 14,25 US$ | 0,28 US$/1K páginas | | Build | 100.000 páginas | 21,75 US$ | 0,22 US$/1K páginas | En todos los planes: Extracción del contenido principal · Renderizado de JavaScript cuando es necesario · Las páginas fallidas y rechazadas no se cobran · Los créditos nunca caducan **Antes de pagar** - Recarga mínima 25 US$. Recarga una vez con criptomonedas y luego compra cualquier plan con tu saldo. - Tu saldo no tiene fecha de caducidad y puedes comprar créditos de página en cualquier momento. Si un pack cuesta menos que la recarga mínima, el importe que añadiste solo para alcanzar ese mínimo se puede devolver a petición dentro de los 30 días siguientes al pago, en USDT o USDC, siempre que no lo hayas gastado. Cualquier otro saldo no se reembolsa salvo que la ley indique lo contrario. - Se acredita en cuanto comprobamos tu pago en la blockchain. Tiempo habitual de confirmación de la red: BTC ≈ 20 min · USDT TRC-20 ≈ 1 min · USDT ERC-20 ≈ 5 min · USDC ERC-20 ≈ 5 min · ETH ≈ 5 min · SOL ≈ 1 min · LTC ≈ 15 min ## Agentes de IA: preguntas frecuentes ### ¿Puedo añadir WebReaderAPI a Claude Desktop o Cursor? Sí, mediante un pequeño servidor MCP que expone `read_url`. La [página de MCP](https://webreaderapi.com/es/docs/mcp/) tiene el código y el fragmento de configuración; tu clave API permanece en una variable de entorno. ### ¿Funciona con OpenClaw? Sí, como servidor MCP junto al web_fetch integrado de OpenClaw. La [página de OpenClaw](https://webreaderapi.com/es/docs/openclaw/) muestra los comandos de la propia documentación de OpenClaw. ### ¿Puede el agente leer páginas que bloquean a los bots de IA? No. Si robots.txt no permite la página, la API devuelve `blocked_by_robots`; si el sitio rechaza, devuelve `target_refused` con el estado del sitio. Ninguno se cobra, y nunca intentamos sortear el rechazo. ### ¿Cómo evito que una página larga llene la ventana de contexto? Configura `max_chars`. El Markdown se corta en esa longitud, y `word_count` indica al agente cuánto medía la página completa, para que pueda pedir más solo cuando sea necesario. ### ¿Necesito tarjeta o identificación? No. WebReaderAPI no pide identificación, ni selfie, ni documentos, ni tarjeta. El pago es en BTC, USDT, USDC, ETH, SOL, LTC, con una recarga mínima de 25 US$. ## Fuentes 1. [Nota de prensa: rastreadores de IA bloqueados de forma predeterminada](https://www.cloudflare.com/press-releases/2025/cloudflare-just-changed-how-ai-crawlers-scrape-the-internet-at-large/) — Cloudflare (2025-07-01) 2. [Blog: nuevos valores por defecto para rastreadores de IA y agentes](https://blog.cloudflare.com/accountable-mixed-use-ai-crawlers/) — Cloudflare (2026-09-15) 3. [Herramienta de obtención web (web fetch)](https://docs.openclaw.ai/tools/web-fetch.md) — OpenClaw (read 2026-10-22) --- 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. --- # Monitorización de cambios en sitios web: compara páginas públicas en Markdown limpio > Monitoriza páginas públicas en busca de cambios: lee precios, políticas y changelogs en Markdown, compara el texto y alerta. Desde 0,07 US$/1K páginas. - URL: https://webreaderapi.com/es/use-cases/monitoring/ - Última actualización: 2026-10-22 - Editor: WebReaderAPI (https://webreaderapi.com) Comparar HTML sin procesar genera una alerta cada vez que cambia un anuncio o un token. Comparar el contenido principal en Markdown solo señala lo que notaría un lector: un nuevo precio, una cláusula reescrita, una nueva entrada de changelog. **Respuesta rápida — ¿Cómo puedo monitorizar los cambios de contenido de páginas web?** Lee cada página según una programación como Markdown de su contenido principal, guarda el texto y compáralo con la versión anterior; alerta solo cuando cambie el texto. **WebReaderAPI** lee hasta 100 URLs por trabajo por lotes, elimina anuncios y menús para que no puedan generar falsas alarmas, y cobra un crédito por página desde 0,07 US$/1K páginas a fecha de octubre de 2026. Sin KYC; paga con criptomonedas. ## Monitorización con WebReaderAPI | Atributo | Valor | | --- | --- | | Endpoint | `POST https://webreaderapi.com/api/v1/batch`, luego `GET https://webreaderapi.com/api/v1/jobs/{job_id}` | | Tamaño del lote | Hasta 100 URLs por trabajo por lotes | | Qué se compara | Markdown del contenido principal, sin anuncios, menús ni banners | | 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 | | Volumen de ejemplo | 200 páginas revisadas al día = unas 6.000 páginas al mes | | Precio | 3,75 US$ por 10.000 páginas; los créditos no caducan | ## ¿Qué merece la pena monitorizar? Páginas cuyo texto importa a tu negocio y que cambian sin avisar: - **Páginas de precios** de proveedores y competidores, para ver nuevos planes y movimientos de precios. - **Términos, políticas de privacidad y de reembolso** de las que dependes, para detectar cláusulas que cambian. - **Changelogs y notas de versión** de las herramientas sobre las que construyes, para reaccionar a cambios que rompen cosas. - **Páginas de documentación** a las que enlaza tu producto, para corregir guías rotas rápido. - **Avisos públicos** de reguladores u organismos de normalización de tu sector. Limita la lista a páginas públicas. Los perfiles personales y las páginas detrás de un login quedan fuera del alcance. ## ¿Por qué comparar Markdown en vez de HTML? Porque el HTML cambia todo el tiempo sin que cambie el contenido. Los anuncios rotatorios, los tokens de sesión, las marcas de tiempo en los pies de página y el marcado de tests A/B hacen que dos cargas de la misma página difieran. Un diff sobre HTML convierte ese ruido en alertas, y la gente deja de leerlas. El Markdown del contenido principal elimina la mayor parte del ruido antes de comparar. Lo que queda es el texto que lee una persona: títulos, párrafos, listas y tablas. Un diff sobre ese texto es corto, legible y merece una alerta. *Python: revisa una lista de páginas e imprime qué cambió* ```python import difflib import json import os import pathlib import time import requests API = "https://webreaderapi.com/api/v1" HEADERS = {"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]} STORE = pathlib.Path("snapshots.json") URLS = [ "https://example.com/pricing", "https://example.com/legal/terms", "https://example.com/changelog", ] old = json.loads(STORE.read_text(encoding="utf-8")) if STORE.exists() else {} job = requests.post(API + "/batch", headers=HEADERS, json={"urls": URLS}, timeout=60).json() results, cursor, delay = [], None, 5 while True: params = {"cursor": cursor} if cursor else {} page = requests.get(API + "/jobs/" + job["job_id"], headers=HEADERS, params=params, timeout=60).json() results += page.get("results", []) cursor = page.get("next_cursor") if page["status"] == "done" and not cursor: break if not cursor: time.sleep(delay) delay = min(delay * 2, 60) new = dict(old) for item in results: if "markdown" not in item: print("not read:", item["url"], item.get("error", {}).get("code")) continue before = old.get(item["url"], "") if before and before != item["markdown"]: diff = difflib.unified_diff(before.splitlines(), item["markdown"].splitlines(), lineterm="", n=0) print("CHANGED:", item["url"]) print("\n".join(list(diff)[:40])) new[item["url"]] = item["markdown"] STORE.write_text(json.dumps(new, ensure_ascii=False), encoding="utf-8") ``` ## ¿Con qué frecuencia debo revisar, y con cuánta cortesía? Revisa con la frecuencia con la que la página cambia de verdad, y no más. Diario va bien para páginas de precios y changelogs; semanal va bien para políticas y documentación. Una página leída cada hora rara vez te dice más que una leída cada día, y cuesta 24 veces más. WebReaderAPI respeta el robots.txt de cada página y honra el `Crawl-delay` de un sitio en los trabajos de rastreo (crawl). Las páginas que el sitio no permite se omiten y no se cobran, así que un sitio estricto simplemente desaparece de tu informe. Pregunta al propietario si necesitas acceso a una página que rechaza a los robots. ## ¿Cuánto cuesta monitorizar? Un crédito por página y revisión. Algunos ejemplos con los precios de octubre de 2026: - **50 páginas, a diario:** unas 1.500 páginas al mes. 10.000 páginas (3,75 US$) duran más de seis meses. - **200 páginas, a diario:** unas 6.000 páginas al mes. 50.000 páginas (14,25 US$) duran unos ocho meses. - **1.000 páginas, a la semana:** unas 4.300 páginas al mes, cerca del caso anterior. Las páginas que necesitan un navegador usan dos créditos; configura `render=false` para las páginas que sabes que son HTML simple y así mantener la cuenta en uno. ## ¿Qué pack conviene para monitorizar? Multiplica las páginas por las revisiones al mes y luego elige un pack que dure unos meses. Los créditos nunca caducan. | Plan | Cantidad | Precio | Precio por unidad | | --- | --- | --- | --- | | Prueba | 10.000 páginas | 3,75 US$ | 0,38 US$/1K páginas | | Starter | 50.000 páginas | 14,25 US$ | 0,28 US$/1K páginas | | Build | 100.000 páginas | 21,75 US$ | 0,22 US$/1K páginas | En todos los planes: Extracción del contenido principal · Renderizado de JavaScript cuando es necesario · Las páginas fallidas y rechazadas no se cobran · Los créditos nunca caducan **Antes de pagar** - Recarga mínima 25 US$. Recarga una vez con criptomonedas y luego compra cualquier plan con tu saldo. - Tu saldo no tiene fecha de caducidad y puedes comprar créditos de página en cualquier momento. Si un pack cuesta menos que la recarga mínima, el importe que añadiste solo para alcanzar ese mínimo se puede devolver a petición dentro de los 30 días siguientes al pago, en USDT o USDC, siempre que no lo hayas gastado. Cualquier otro saldo no se reembolsa salvo que la ley indique lo contrario. - Se acredita en cuanto comprobamos tu pago en la blockchain. Tiempo habitual de confirmación de la red: BTC ≈ 20 min · USDT TRC-20 ≈ 1 min · USDT ERC-20 ≈ 5 min · USDC ERC-20 ≈ 5 min · ETH ≈ 5 min · SOL ≈ 1 min · LTC ≈ 15 min ## Monitorización de cambios: preguntas frecuentes ### ¿WebReaderAPI envía alertas? No. Lee páginas y devuelve Markdown; tu script compara versiones y envía la alerta por email, chat o ticket. El código de arriba imprime las líneas cambiadas como punto de partida. ### ¿Cómo evito falsas alarmas por fechas y contadores? Compara el Markdown del contenido principal, no el HTML, y elimina las líneas que sabes que cambian en cada carga, como "actualizado hace 5 minutos", antes de hacer el diff. La mayoría de los elementos rotatorios ya los quita la extracción del contenido principal. ### ¿Puedo monitorizar páginas que necesitan JavaScript? Sí. Con `render=auto`, las páginas que quedan vacías sin JavaScript se renderizan en un navegador por dos créditos. Las páginas que funcionan sin él se quedan en uno. ### ¿Puedo monitorizar un sitio entero en lugar de una lista de páginas? Sí: lanza un trabajo de rastreo (crawl) en vez de un lote y luego compara página por página. Para sitios grandes, compara primero las fechas `lastmod` del sitemap y vuelve a leer solo las páginas que se movieron. --- 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. --- # Páginas web para RAG: convierte sitios en Markdown limpio y divisible en chunks > Alimenta tus pipelines de RAG con páginas web: rastrea docs y blogs a Markdown, divide por encabezados y conserva las URL de origen. Desde 0,07 US$/1K páginas. - URL: https://webreaderapi.com/es/use-cases/rag/ - Última actualización: 2026-10-22 - Editor: WebReaderAPI (https://webreaderapi.com) La recuperación trabaja con lo que metes en el índice. Un Markdown limpio con encabezados, metadatos y una URL de origen da mejores chunks, menos tokens desperdiciados y respuestas que pueden citar su página. **Respuesta rápida — ¿Cómo ingiero páginas web en un pipeline de RAG?** Lee cada página como Markdown de su contenido principal, divídela por sus encabezados, adjunta la URL de origen y el título a cada chunk, y luego genera los embeddings y guárdalos. **WebReaderAPI** se encarga de la lectura: una petición por página, o un trabajo de rastreo (crawl) para un sitio entero de hasta 10.000 páginas, a un crédito por página desde 0,07 US$/1K páginas con fecha de octubre de 2026. Se respeta robots.txt. Sin KYC; paga con criptomonedas. ## Ingesta para RAG con WebReaderAPI | Atributo | Valor | | --- | --- | | Sitio entero | `POST https://webreaderapi.com/api/v1/crawl`: Rastrea un sitio web por trabajo, hasta 10.000 páginas, siguiendo su sitemap, su robots.txt y su Crawl-delay | | Lista de URL | `POST https://webreaderapi.com/api/v1/batch`: Hasta 100 URLs por trabajo por lotes | | Por página | Markdown del contenido principal, título, autor, fecha, idioma, recuento de palabras | | PDFs | Los archivos PDF de hasta 20 MB y 100 páginas se convierten a Markdown, a 1 crédito por cada bloque de 10 páginas iniciado | | 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 | | Precio | 14,25 US$ por 50.000 páginas; los créditos nunca caducan | ## ¿Por qué un Markdown limpio da mejor recuperación? Los chunks hechos de texto repetitivo se recuperan mal. Cuando una página se divide con sus menús, el texto de cookies y el pie de página todavía dentro, muchos chunks contienen las mismas palabras de navegación, y la búsqueda vectorial los devuelve para preguntas que no tienen nada que ver. La extracción del contenido principal elimina ese ruido antes de generar los embeddings. Los encabezados importan igual. Un chunk que empieza con `## Refund policy` lleva su tema consigo, así que tanto el embedding como el modelo que lo lea después saben de qué trata. El texto plano pierde esa señal; el HTML en bruto la esconde bajo el marcado. ## ¿Cómo es un pipeline de ingesta? Cinco pasos, sea cual sea el vector store que uses: 1. **Reúne las URL.** Rastrea el sitio o envía como lote la lista que ya tienes. 2. **Léelo como Markdown.** Usa `main_content=true` para artículos y documentación; usa `false` para páginas de listado. 3. **Divide por encabezados.** Separa en `#`, `##` y `###`, y luego corta las secciones largas según tu límite de tamaño con un pequeño solapamiento. 4. **Añade metadatos.** Guarda `url`, `title`, `published_at` y la ruta de encabezados con cada chunk, para que las respuestas puedan citar su fuente. 5. **Actualiza.** Vuelve a leer las páginas cuyo sitemap `lastmod` haya cambiado y elimina los chunks de las páginas que ahora devuelvan un error. *Python: lee páginas y divídelas en chunks con su fuente* ```python import os import re import requests API = "https://webreaderapi.com/api/v1/read" HEADERS = {"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]} URLS = [ "https://docs.example.com/getting-started", "https://docs.example.com/billing", ] def chunks_for(url, max_len=2000): page = requests.get(API, headers=HEADERS, params={"url": url}, timeout=90).json() if "markdown" not in page: return [] out = [] for section in re.split(r"\n(?=#{1,3} )", page["markdown"]): section = section.strip() heading = section.splitlines()[0] if section else "" for start in range(0, len(section), max_len): out.append({ "text": section[start:start + max_len], "url": page.get("final_url", url), "title": page.get("title"), "heading": heading, }) return out all_chunks = [c for u in URLS for c in chunks_for(u)] print(len(all_chunks), "chunks ready to embed") ``` ## ¿Cuánto cuesta crear y actualizar un índice? Crear cuesta un crédito por página, dos en las páginas que necesitan un navegador. Actualizar cuesta solo las páginas que vuelves a leer. Tres ejemplos, con los precios de octubre de 2026: - **El centro de ayuda de un producto** de 800 páginas, actualizado cada mes para las páginas que cambian (alrededor del 10%): 800 créditos una vez y luego unos 80 al mes. 10.000 páginas (3,75 US$) duran años. - **Diez sitios de documentación** de 2.000 páginas cada uno, actualizados cada semana al 5%: 20.000 créditos y luego unos 4.000 al mes. 50.000 páginas (14,25 US$) cubren la creación y siete meses de actualizaciones. - **Un archivo de noticias** de 300.000 artículos que nunca cambian: 300.000 créditos una vez, que caben en 500.000 páginas (50 US$). El embedding y el almacenamiento los facturan tus propios proveedores y no están incluidos. ## ¿Puedo indexar sitios que no quieren ser indexados? No a través de WebReaderAPI. Las páginas que robots.txt no permite para nuestro rastreador, o para todos los robots, se omiten y no se cobran; los sitios que declaran `Content-Signal: ai-input=no` no se leen por ti. Para tus propios sitios o sitios asociados que bloquean a los robots, pide al propietario que permita `WebReaderAPI` en robots.txt; nuestra [página del rastreador](https://webreaderapi.com/es/bot/) muestra las líneas que hay que añadir. Esto también importa a tus usuarios. Un asistente RAG que cita fuentes es más útil cuando esas fuentes aceptaron ser leídas. ## ¿Qué pack encaja en un proyecto RAG? Cuenta las páginas para crear el índice, suma la actualización mensual y elige el pack que cubra unos cuantos meses. Los créditos no caducan. | Plan | Cantidad | Precio | Precio por unidad | | --- | --- | --- | --- | | Prueba | 10.000 páginas | 3,75 US$ | 0,38 US$/1K páginas | | Starter | 50.000 páginas | 14,25 US$ | 0,28 US$/1K páginas | | Build | 100.000 páginas | 21,75 US$ | 0,22 US$/1K páginas | | Scale | 500.000 páginas | 50 US$ | 0,10 US$/1K páginas | En todos los planes: Extracción del contenido principal · Renderizado de JavaScript cuando es necesario · Las páginas fallidas y rechazadas no se cobran · Los créditos nunca caducan **Antes de pagar** - Recarga mínima 25 US$. Recarga una vez con criptomonedas y luego compra cualquier plan con tu saldo. - Tu saldo no tiene fecha de caducidad y puedes comprar créditos de página en cualquier momento. Si un pack cuesta menos que la recarga mínima, el importe que añadiste solo para alcanzar ese mínimo se puede devolver a petición dentro de los 30 días siguientes al pago, en USDT o USDC, siempre que no lo hayas gastado. Cualquier otro saldo no se reembolsa salvo que la ley indique lo contrario. - Se acredita en cuanto comprobamos tu pago en la blockchain. Tiempo habitual de confirmación de la red: BTC ≈ 20 min · USDT TRC-20 ≈ 1 min · USDT ERC-20 ≈ 5 min · USDC ERC-20 ≈ 5 min · ETH ≈ 5 min · SOL ≈ 1 min · LTC ≈ 15 min ## Ingesta para RAG: preguntas frecuentes ### ¿Qué tamaño de chunk debería usar? Divide primero por encabezados y luego corta las secciones de más de unos 500 a 1.000 tokens con un pequeño solapamiento. Los chunks basados en encabezados contienen un solo tema cada uno, lo que suele recuperar mejor que ventanas de tamaño fijo sobre toda la página. ### ¿WebReaderAPI crea embeddings o almacena vectores? No. WebReaderAPI lee páginas y devuelve Markdown con metadatos. Tú generas los embeddings con el modelo que elijas y los almacenas en tu propia base de datos vectorial; la [página de LangChain y LlamaIndex](https://webreaderapi.com/es/docs/langchain/) muestra ambos. ### ¿Cómo mantengo el índice actualizado? Vuelve a leer solo las páginas que hayan cambiado. La mayoría de los sitemaps incluyen una fecha `lastmod` por URL; compárala con tu última lectura y envía como lote las URL que hayan cambiado. Las páginas que ahora fallen deben eliminarse del índice. ### ¿Puedo incluir PDFs del mismo sitio? Sí. Un rastreo lee los enlaces a PDF del mismo dominio con las mismas comprobaciones de robots.txt. Los archivos PDF de hasta 20 MB y 100 páginas se convierten a Markdown, a 1 crédito por cada bloque de 10 páginas iniciado. --- 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. --- # Convierte tu sitio web a Markdown: rastréalo y exporta cada página > Convierte tu sitio web a Markdown: rastrea tu propio sitio y exporta cada página con front matter, para migración, copia de seguridad o tu asistente. Sin KYC. - URL: https://webreaderapi.com/es/use-cases/website-to-markdown/ - Última actualización: 2026-10-22 - Editor: WebReaderAPI (https://webreaderapi.com) Pasar a un generador de sitios estáticos, a una plataforma de documentación o a una base de conocimiento suele empezar con una pregunta: ¿cómo saco mis páginas como Markdown limpio? Un rastreo lo hace en una sola tarea, con títulos, fechas y URL guardados en el front matter. **Respuesta rápida — ¿Cómo convierto todo mi sitio web a Markdown?** Rastrea tu sitio, lee el contenido principal de cada página como Markdown y escribe un archivo `.md` por página con su título, URL y fecha en el front matter. **WebReaderAPI** rastrea hasta 10.000 páginas por tarea, sigue tu sitemap y robots.txt, y cobra un crédito por página desde 0,07 US$/1K páginas a fecha de octubre de 2026. Un script de Python más abajo escribe los archivos. Sin KYC; paga con criptomonedas. ## Exportación del sitio web con WebReaderAPI | Atributo | Valor | | --- | --- | | Endpoint | `POST https://webreaderapi.com/api/v1/crawl`, resultados de `GET https://webreaderapi.com/api/v1/jobs/{job_id}` | | Alcance | Rastrea un sitio web por trabajo, hasta 10.000 páginas, siguiendo su sitemap, su robots.txt y su Crawl-delay | | Por página | Markdown del contenido principal, más título, descripción, autor, fecha e idioma | | Páginas completas | `main_content=false` conserva la navegación y los pies de página cuando los necesitas | | Tu robots.txt | Debe permitir `WebReaderAPI` para las páginas que exportas | | Precio | 3,75 US$ por 10.000 páginas; los créditos no caducan | ## ¿Cuándo es útil una exportación a Markdown? Siempre que el contenido tenga que salir del sistema que lo renderiza. Casos habituales: - **Migraciones.** Pasar de un CMS a un generador de sitios estáticos o a una plataforma de documentación que guarda las páginas como Markdown. - **Copias de seguridad.** Un archivo legible de tus páginas publicadas que no depende de ninguna base de datos ni tema. - **Tu propio asistente.** Alimentar con el texto de tu sitio a un bot de ayuda o a una búsqueda interna, con cada chunk enlazado a su página. - **Auditorías.** Leer todas tus páginas como texto plano para encontrar afirmaciones desactualizadas, redacción defectuosa o contenido duplicado. En cada caso quieres las palabras y la estructura, no el tema que las rodea. *Python: rastrea tu sitio a archivos Markdown con front matter* ```python import os import pathlib import time from urllib.parse import urlparse import requests API = "https://webreaderapi.com/api/v1" HEADERS = {"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]} SITE = "https://www.example.com/" OUT = pathlib.Path("export") def target_path(url): path = urlparse(url).path.strip("/") or "index" return OUT / (path + ".md") def front_matter(page): fields = {"title": page.get("title", ""), "source": page["final_url"], "date": page.get("published_at") or ""} lines = ["---"] + [key + ": " + repr(value) for key, value in fields.items()] + ["---", ""] return "\n".join(lines) job = requests.post(API + "/crawl", headers=HEADERS, json={"url": SITE, "limit": 2000, "max_depth": 5}, timeout=60).json() cursor, delay, written = None, 5, 0 while True: params = {"cursor": cursor} if cursor else {} batch = requests.get(API + "/jobs/" + job["job_id"], headers=HEADERS, params=params, timeout=60).json() for page in batch.get("results", []): if "markdown" not in page: continue dest = target_path(page["final_url"]) dest.parent.mkdir(parents=True, exist_ok=True) dest.write_text(front_matter(page) + page["markdown"] + "\n", encoding="utf-8") written += 1 cursor = batch.get("next_cursor") if batch["status"] == "done" and not cursor: break if not cursor: time.sleep(delay) delay = min(delay * 2, 60) print(written, "files in", OUT) ``` ## ¿Cómo mantengo la estructura de carpetas y las URL? Refleja la ruta de la URL en la ruta del archivo, como hace el script: `/guides/setup/` se convierte en `export/guides/setup.md`. Conserva la URL original en el front matter como `source`, para que puedas configurar redirecciones tras la migración y comprobar que no se perdió nada. Los enlaces dentro del Markdown siguen apuntando a tus URL actuales. Tras el traslado, reemplaza el dominio o el prefijo de ruta en una sola pasada y luego prueba una muestra de páginas. Las tablas y los bloques de código se mantienen como Markdown, así que la mayoría de los generadores estáticos los renderizan sin cambios. ## ¿Y si mi propio robots.txt bloquea a los rastreadores? Permite nuestro token durante la exportación. WebReaderAPI lee solo lo que robots.txt permite para `WebReaderAPI` o para todos los robots, incluido en tu propio sitio. Añade un grupo como `User-agent: WebReaderAPI` con `Allow: /`, ejecuta el rastreo y luego elimínalo si quieres. Nuestra [página del rastreador](https://webreaderapi.com/es/bot/) muestra las líneas exactas y el User-Agent que mostrarán los registros de tu servidor. Las páginas que sigan sin permitirse se omiten y no se cobran. ## ¿Cuánto cuesta una exportación? Un crédito por página, dos en las páginas que necesitan un navegador para mostrar su texto. Un sitio de 2.000 páginas renderizado en el servidor cuesta 2.000 créditos una vez; el mismo sitio como aplicación JavaScript puede costar hasta 4.000. Ambos caben en 10.000 páginas por 3,75 US$, a fecha de octubre de 2026. Un sitio de 50.000 páginas necesita varias tareas, divididas por sección con `include_paths`, y cabe en 100.000 páginas (21,75 US$). Los créditos que queden tras la exportación permanecen en tu cuenta para futuras actualizaciones. ## ¿Qué pack cubre mi exportación? Cuenta tus páginas, duplica el número si el sitio necesita JavaScript para renderizar y elige el pack superior. Los créditos nunca caducan. | Plan | Cantidad | Precio | Precio por unidad | | --- | --- | --- | --- | | Prueba | 10.000 páginas | 3,75 US$ | 0,38 US$/1K páginas | | Starter | 50.000 páginas | 14,25 US$ | 0,28 US$/1K páginas | | Build | 100.000 páginas | 21,75 US$ | 0,22 US$/1K páginas | En todos los planes: Extracción del contenido principal · Renderizado de JavaScript cuando es necesario · Las páginas fallidas y rechazadas no se cobran · Los créditos nunca caducan **Antes de pagar** - Recarga mínima 25 US$. Recarga una vez con criptomonedas y luego compra cualquier plan con tu saldo. - Tu saldo no tiene fecha de caducidad y puedes comprar créditos de página en cualquier momento. Si un pack cuesta menos que la recarga mínima, el importe que añadiste solo para alcanzar ese mínimo se puede devolver a petición dentro de los 30 días siguientes al pago, en USDT o USDC, siempre que no lo hayas gastado. Cualquier otro saldo no se reembolsa salvo que la ley indique lo contrario. - Se acredita en cuanto comprobamos tu pago en la blockchain. Tiempo habitual de confirmación de la red: BTC ≈ 20 min · USDT TRC-20 ≈ 1 min · USDT ERC-20 ≈ 5 min · USDC ERC-20 ≈ 5 min · ETH ≈ 5 min · SOL ≈ 1 min · LTC ≈ 15 min ## Convertir una página web a Markdown: preguntas frecuentes ### ¿Puedo exportar la página completa, incluidos menús y pie de página? Sí. Activa `main_content=false` en las opciones de rastreo y cada archivo contendrá la página completa convertida a Markdown. La mayoría de las migraciones prefieren solo el contenido principal, porque el nuevo tema ya aporta su propia navegación. ### ¿Se descargan las imágenes? No. Con `include_images=true`, los enlaces de las imágenes se quedan en el Markdown con su texto alternativo; descarga los archivos con tu propio script si la migración los necesita. ### ¿Puedo exportar un sitio que no es mío? Solo páginas públicas que permita su robots.txt, y solo para usos que permitan sus términos y la ley. Para una migración o una copia de seguridad, exporta tus propios sitios o sitios cuyo propietario haya dado su consentimiento. ### ¿Qué tamaño de sitio puede manejar un trabajo? Hasta 10 000 páginas por trabajo de rastreo, dentro de un mismo dominio. Divide los sitios más grandes por secciones con `include_paths` y ejecuta varios trabajos. --- 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.