Test
10 000 pages
3,75 $US
0,38 $US/1K pages
- Testez-le sur vos vraies URL
- Même API que le pack le plus grand
- Les crédits n'expirent jamais
Cas d'usage · agents IA · nom de l'outil read_url
Un agent qui sait chercher mais pas lire répond à partir de snippets. Donnez-lui un outil qui transforme n'importe quelle URL publique en Markdown court et propre, et il peut lire la source, la citer et la référencer, dans la limite d'un budget que vous fixez.
Réponse rapide
Quelle est la meilleure façon de donner un outil de récupération web à un agent IA ?
Enveloppez une API de lecture de pages web dans un outil qui prend une URL et renvoie le contenu principal de la page en Markdown, coupé à une longueur définie. WebReaderAPI fait la lecture, rend le JavaScript quand nécessaire, respecte robots.txt et facture un crédit par page à partir de 0,07 $US/1K pages à la date d'octobre 2026. Du code d'outil prêt à l'emploi couvre MCP, OpenAI function calling, LangChain, n8n et OpenClaw. Sans KYC ; crypto.
| Outil | read_url(url, max_chars) appelant https://webreaderapi.com/api/v1/read |
|---|---|
| Renvoie | Le Markdown du contenu principal, plus le titre, l'auteur, la date et le nombre de mots |
| Limite de longueur | max_chars, de 1 000 à 500 000 caractères par page |
| Pages JavaScript | Rendu JavaScript dans un navigateur headless quand la page en a besoin (render=auto), ou toujours, ou jamais |
| Refus | Renvoyés sous forme d'erreurs claires, jamais facturés |
| Intégrations | MCP, OpenAI, LangChain et LlamaIndex, n8n, OpenClaw |
| Prix | 3,75 $US pour 10 000 pages ; les crédits n'expirent jamais |
Parce que le HTML brut consomme la fenêtre de contexte avec des éléments dont le modèle n'a pas besoin. Un article de presse ou une page de documentation arrive entouré de navigation, de scripts, de bannières de consentement et de liens connexes. Transmis tel quel, il sature la conversation et pousse le modèle à citer des menus.
Un reader résout trois problèmes d'un coup. Il ne conserve que le contenu principal, il rend les pages qui restent vides tant que JavaScript ne s'exécute pas, et il convertit les PDF en texte. L'agent reçoit un bloc compact de Markdown avec un titre et une date qu'il peut citer.
Surtout parce que les sites refusent le trafic automatisé. Depuis le 1er juillet 2025, Cloudflare bloque par défaut les crawlers IA pour les nouveaux domaines, et à partir du 15 septembre 2026, ses presets bloquent le trafic « Agent » sur les pages financées par la publicité des nouveaux domaines. Les outils intégrés des agents de code et des assistants rencontrent ces refus comme n'importe quel autre client.
D'autres échecs sont techniques. La documentation d'OpenClaw, consultée le 22 octobre 2026, indique que son outil web_fetch intégré extrait le contenu avec Readability, n'exécute pas JavaScript et limite la sortie à 20 000 caractères. Les pages construites dans le navigateur, les documents longs, les serveurs lents et les rate limits font échouer ces outils. Un reader qui rend les pages règle le cas JavaScript ; le cache et la patience règlent le reste. Les refus relèvent du propriétaire du site. Notre guide des erreurs 403 de web fetch explique chaque cas.
Pour éviter un conflit avec les outils que les agents ont déjà. Claude Code et OpenClaw embarquent tous deux un outil intégré nommé web_fetch. Un second outil portant le même nom désoriente le modèle sur celui qu'il appelle. Nommer le nôtre read_url laisse les deux disponibles : l'agent peut utiliser son fetcher intégré pour des vérifications rapides et read_url lorsqu'il a besoin de Markdown propre, de PDF ou de pages JavaScript.
Les définitions d'outils de nos pages de documentation utilisent toutes ce nom, vous pouvez donc passer d'un framework à l'autre sans modifier vos prompts.
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])
Donnez-lui un budget et une règle. Trois habitudes maîtrisent les coûts et le contexte :
max_chars autour de 10 000 à 15 000 caractères ; augmentez-le seulement quand le word_count montre que la réponse se trouve probablement plus bas.L'outil ci-dessus renvoie les refus sous forme d'une phrase simple, pour que le modèle puisse les expliquer à l'utilisateur.
Un crédit par page, deux lorsque la page nécessite un navigateur. Un assistant qui répond à 100 questions par jour et lit 4 pages pour chacune lit environ 12 000 pages par mois. 50 000 pages (14,25 $US) couvrent cela pendant quatre mois, en octobre 2026.
Les crédits n'expirent jamais, un agent très sollicité une semaine et inactif la suivante ne gaspille donc pas de quota mensuel. Les pages qui échouent ou que robots.txt refuse ne coûtent rien.
Prototypez sur 10 000 pages ; passez à 50 000 pages ou 100 000 pages quand l'agent sert de vrais utilisateurs. Les crédits n'expirent jamais.
10 000 pages
3,75 $US
0,38 $US/1K pages
50 000 pages
14,25 $US
0,28 $US/1K pages
100 000 pages
21,75 $US
0,22 $US/1K pages
Dans chaque offre: Extraction du contenu principal · Rendu JavaScript si nécessaire · Pages en échec et refusées non facturées · Les crédits n'expirent jamais
Oui, via un petit serveur MCP qui expose read_url. La page MCP contient le code et l'extrait de configuration ; votre clé API reste dans une variable d'environnement.
Oui, en tant que serveur MCP à côté du web_fetch intégré d'OpenClaw. La page OpenClaw montre les commandes issues de la documentation d'OpenClaw elle-même.
Non. Si robots.txt interdit la page, l'API renvoie blocked_by_robots ; si le site refuse, elle renvoie target_refused avec le statut du site. Aucun des deux n'est facturé, et nous ne cherchons jamais à contourner le refus.
Définissez max_chars. Le Markdown est coupé à cette longueur, et word_count indique à l'agent la longueur de la page complète, pour qu'il puisse en demander davantage seulement si nécessaire.
Non. WebReaderAPI ne demande ni pièce d'identité, ni selfie, ni documents, ni carte. Le paiement se fait en BTC, USDT, USDC, ETH, SOL, LTC, avec un dépôt minimum de 25 $US.
À partir de 0,07 $US/1K pages · sans KYC
Obtenir une clé API