Test
10.000 pagine
3,75 USD
0,38 USD/1K pagine
- Provalo sui tuoi URL reali
- La stessa API del pack più grande
- I crediti non scadono mai
Caso d'uso · agenti AI · nome del tool read_url
Un agente che può cercare ma non leggere risponde con gli snippet. Dagli un tool che trasforma qualsiasi URL pubblico in un Markdown breve e pulito, e potrà leggere la fonte, citarla e referenziarla, entro un budget che decidi tu.
Risposta rapida
Qual è il modo migliore per dare a un agente AI un web fetch tool?
Avvolgi un'API per la lettura di pagine web in un tool che prende un URL e restituisce il contenuto principale della pagina come Markdown, tagliato a una lunghezza stabilita. WebReaderAPI fa la lettura, esegue il rendering JavaScript quando serve, rispetta robots.txt e addebita un credito per pagina da 0,07 USD/1K pagine a ottobre 2026. Il codice del tool è pronto per MCP, OpenAI function calling, LangChain, n8n e OpenClaw. Senza KYC; cripto.
| Strumento | read_url(url, max_chars) che chiama https://webreaderapi.com/api/v1/read |
|---|---|
| Restituisce | Markdown del contenuto principale, più titolo, autore, data e conteggio parole |
| Limite di lunghezza | max_chars, da 1.000 a 500.000 caratteri per pagina |
| Pagine JavaScript | Rendering JavaScript in un browser headless quando la pagina lo richiede (render=auto), oppure sempre, oppure mai |
| Rifiuti | Restituiti come errori chiari, mai addebitati |
| Integrazioni | MCP, OpenAI, LangChain e LlamaIndex, n8n, OpenClaw |
| Prezzo | 3,75 USD per 10.000 pagine; i crediti non scadono mai |
Perché l'HTML grezzo consuma la finestra di contesto con cose di cui il modello non ha bisogno. Un articolo di notizie o una pagina di documentazione arriva avvolto in navigazione, script, banner di consenso e link correlati. Passato così com'è, occupa spazio nella conversazione e spinge il modello a citare i menu.
Un reader risolve tre problemi insieme. Tiene solo il contenuto principale, esegue il rendering delle pagine che sono vuote finché non gira JavaScript e converte i PDF in testo. L'agente riceve un blocco compatto di Markdown con un titolo e una data che può citare.
Soprattutto perché i siti rifiutano il traffico automatizzato. Dal 1° luglio 2025 Cloudflare blocca per impostazione predefinita i crawler AI per i nuovi domini, e dal 15 settembre 2026 i suoi preset bloccano il traffico "Agent" sulle pagine con pubblicità dei nuovi domini. Gli strumenti integrati negli agenti di coding e negli assistenti incontrano questi rifiuti come qualsiasi altro client.
Altri fallimenti sono tecnici. La documentazione di OpenClaw, letta il 22 ottobre 2026, dice che il suo web_fetch integrato estrae il contenuto con Readability, non esegue JavaScript e limita l'output a 20.000 caratteri. Le pagine costruite nel browser, i documenti lunghi, i server lenti e i rate limit mettono in difficoltà questi strumenti. Un reader che esegue il rendering delle pagine risolve il caso JavaScript; la cache e la pazienza risolvono il resto. I rifiuti sono una decisione del proprietario del sito. La nostra guida agli errori 403 di web fetch spiega ogni caso.
Per evitare un conflitto con strumenti che gli agenti hanno già. Claude Code e OpenClaw includono entrambi uno strumento integrato chiamato web_fetch. Un secondo strumento con lo stesso nome confonde il modello su quale stia chiamando. Chiamare il nostro read_url tiene entrambi disponibili: l'agente può usare il suo fetcher integrato per controlli rapidi e read_url quando ha bisogno di Markdown pulito, PDF o pagine JavaScript.
Le definizioni degli strumenti nelle nostre pagine di documentazione usano tutte questo nome, così puoi passare da un framework all'altro senza modificare i prompt.
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])
Dagli un budget e una regola. Tre abitudini tengono sotto controllo costi e contesto:
max_chars intorno ai 10.000-15.000 caratteri; aumentalo solo quando il word_count mostra che la risposta è probabilmente più in basso.Lo strumento qui sopra restituisce i rifiuti come una semplice frase, così il modello può spiegarli all'utente.
Un credito per pagina, due quando la pagina richiede un browser. Un assistente che risponde a 100 domande al giorno e legge 4 pagine per ciascuna legge circa 12.000 pagine al mese. 50.000 pagine (14,25 USD) le coprono per quattro mesi, a ottobre 2026.
I crediti non scadono mai, quindi un agente indaffarato una settimana e inattivo quella dopo non spreca una quota mensile. Le pagine che falliscono o che robots.txt rifiuta non costano nulla.
Fai il prototipo con 10.000 pagine; passa a 50.000 pagine o 100.000 pagine quando l'agente serve utenti reali. I crediti non scadono mai.
10.000 pagine
3,75 USD
0,38 USD/1K pagine
50.000 pagine
14,25 USD
0,28 USD/1K pagine
100.000 pagine
21,75 USD
0,22 USD/1K pagine
In ogni piano: Estrarre il contenuto principale · JavaScript rendering quando serve · Le pagine non riuscite e rifiutate non vengono addebitate · I crediti non scadono mai
Sì, tramite un piccolo server MCP che espone read_url. La pagina MCP contiene il codice e lo snippet di configurazione; la tua chiave API resta in una variabile d'ambiente.
Sì, come server MCP accanto al web_fetch integrato di OpenClaw. La pagina OpenClaw mostra i comandi dalla documentazione di OpenClaw stessa.
No. Se robots.txt non consente la pagina, l'API restituisce blocked_by_robots; se il sito rifiuta, restituisce target_refused con lo status del sito. Nessuno dei due viene addebitato, e non cerchiamo mai di aggirare il rifiuto.
Imposta max_chars. Il Markdown viene tagliato a quella lunghezza, e word_count dice all'agente quanto era lunga la pagina completa, così può chiedere di più solo quando serve.
No. WebReaderAPI non chiede documenti d'identità, selfie, documenti né carta. Il pagamento è in BTC, USDT, USDC, ETH, SOL, LTC, con una ricarica minima di 25 USD.
Da 0,07 USD/1K pagine · senza KYC
Ottieni una chiave API