Réponse rapide
Comment convertir une URL en Markdown avec une API ?
Envoyez l'URL à GET https://webreaderapi.com/api/v1/read avec votre clé API dans l'en-tête Authorization. WebReaderAPI récupère la page, conserve le contenu principal et le renvoie au format Markdown avec son titre, son auteur, sa date et son nombre de mots. Une page coûte un crédit (deux si un navigateur est nécessaire), à partir de 0,07 $US/1K pages en octobre 2026. Sans KYC ; payez en crypto.
L'API en un tableau
| URL de base | https://webreaderapi.com/api/v1 |
|---|---|
| Lire une page | GET ou POST https://webreaderapi.com/api/v1/read |
| Plusieurs URL ou un site | POST https://webreaderapi.com/api/v1/batch et POST https://webreaderapi.com/api/v1/crawl, résultats depuis GET https://webreaderapi.com/api/v1/jobs/{job_id} |
| Crédits restants | GET https://webreaderapi.com/api/v1/credits (gratuit) |
| Authentification | Envoyez votre clé API dans le header Authorization en tant que Bearer token, ou dans le paramètre de requête api_key |
| Facturation | 1 crédit = 1 page lue sans navigateur ; 2 crédits quand la page nécessite un navigateur pour exécuter JavaScript. Une requête qui échoue, ou qu'un robots.txt de site refuse, n'est pas facturée |
| Notre crawler | WebReaderAPI/1.0 (+https://webreaderapi.com/bot/), jeton robots.txt WebReaderAPI |
| Plus petit pack | 10 000 pages pour 3,75 $US ; les crédits n'expirent jamais |
Comment obtenir une clé API ?
Trois étapes, aucun formulaire à remplir. La plus lente est la confirmation blockchain de votre recharge.
Rechargez en crypto
Envoyez au moins 25 $US en BTC, USDT, USDC, ETH, SOL, LTC. Connexion par numéro de compte ; l'email est facultatif.
Acheter un pack de crédits
10 000 pages pour 3,75 $US suffit pour tester chaque option sur vos propres URL.
Copiez votre clé
Votre clé API est prête dans le dashboard dès que votre recharge crypto est confirmée et que vous avez acheté un pack. Stockez-la dans une variable d'environnement nommée
WEBREADER_API_KEY.
À quoi ressemble la première requête ?
C'est un simple GET HTTPS avec l'adresse de la page dans le paramètre url. Encodez l'adresse, car elle contient ses propres caractères : et / ; curl le fait pour vous avec --data-urlencode. Les réglages par défaut conviennent déjà à la plupart des articles et pages de documentation : sortie Markdown, contenu principal uniquement, et un navigateur seulement quand la page en a besoin.
curl -sG "https://webreaderapi.com/api/v1/read" \
-H "Authorization: Bearer $WEBREADER_API_KEY" \
--data-urlencode "url=https://example.com/blog/first-post"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"])
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));
Que renvoie l'API ?
Un objet JSON avec le Markdown dans le champ markdown et les métadonnées de la page à côté : title, description, author, published_at, language, site_name et word_count. Deux champs vous aident à vérifier ce qui s'est passé : final_url est l'adresse après les redirections, et rendered vous indique si un navigateur a été nécessaire.
credits_used indique le coût de l'appel : 1 pour une page simple, 2 quand rendered vaut true, un de plus si vous avez choisi un country. La page format de réponse liste chaque champ avec un exemple.
Quelles options vais-je utiliser le plus ?
Cinq paramètres couvrent la plupart des besoins. Tous sont facultatifs.
| Paramètre | À utiliser pour |
|---|---|
format | Obtenir du text ou du html nettoyé au lieu de markdown |
main_content | Définir false pour convertir toute la page, menus compris |
render | Forcer (true) ou interdire (false) le navigateur ; auto décide |
include_links | Obtenir les liens de la page sous forme de liste séparée |
max_chars | Tronquer les pages longues pour tenir dans le budget de contexte d'un modèle |
La référence read décrit chaque paramètre, notamment country, include_images et timeout.
Comment vérifier mes crédits restants ?
Appelez GET https://webreaderapi.com/api/v1/credits avec la même clé. Cela renvoie credits_remaining, credits_used_today et votre concurrency_limit, et ne coûte rien. Lancez-le au début d'une tâche longue pour qu'elle s'arrête proprement au lieu d'échouer en cours de route sur 402 insufficient_credits.
Les crédits prépayés n'expirent jamais : les pages non utilisées restent sur votre compte jusqu'à ce que vous les utilisiez, donc un pack acheté pour un projet garde sa valeur pour le suivant.
Que se passe-t-il si un site n'autorise pas les robots ?
Nous ne lisons pas la page, et vous n'êtes pas facturé. Notre crawler s'annonce comme WebReaderAPI/1.0 (+https://webreaderapi.com/bot/) et respecte le robots.txt du site. Une page non autorisée renvoie 403 blocked_by_robots ; un site qui refuse la requête d'une autre manière renvoie 502 target_refused avec le propre code de statut du site.
Si un site refuse notre requête, nous renvoyons sa réponse : nous ne résolvons jamais de CAPTCHA, ne nous connectons pas à des comptes et ne cherchons pas à contourner un blocage ou un paywall. La page des erreurs explique quelles erreurs méritent une nouvelle tentative et lesquelles sont définitives.
Où aller ensuite ?
- Lire la référence de l'endpoint Chaque paramètre de /read, avec des exemples
- Batch et crawl Jusqu'à 100 URL par lot, ou un site entier
- Format de réponse Chaque champ de la réponse
- Erreurs et robots.txt Codes, causes et règles de nouvelle tentative
- Python requests, httpx async, découpage RAG
- Node.js fetch, un petit pool, polling du crawl
- curl et jq Recettes pour le terminal
- Serveur MCP Un outil read_url pour Claude et Cursor
- LangChain et LlamaIndex Loaders et outils pour le RAG
- OpenAI function calling Un schéma et une boucle d'outil read_url
- n8n Outil HTTP Request pour un agent IA
- OpenClaw Ajouter le serveur MCP à côté de web_fetch
Démarrage rapide : questions courantes
Y a-t-il un SDK à installer ?
Non. WebReaderAPI est une API HTTPS simple, donc n'importe quel client HTTP fonctionne. La documentation fournit du code à copier-coller pour Python, Node.js et curl, ainsi que des définitions d'outils pour MCP, LangChain, LlamaIndex et le function calling d'OpenAI. Rien n'est publié sous forme de package.
Puis-je envoyer la clé dans l'URL au lieu d'un header ?
Oui, via le paramètre de requête api_key. Le header Authorization: Bearer est plus sûr, car les URL finissent souvent dans les logs et l'historique du navigateur. Créez plusieurs clés API, par exemple une par agent ou par projet, et révoquez n'importe laquelle depuis votre dashboard.
Une page en échec consomme-t-elle un crédit ?
Non. 1 crédit = 1 page lue sans navigateur ; 2 crédits quand la page nécessite un navigateur pour exécuter JavaScript. Une requête qui échoue, ou qu'un robots.txt de site refuse, n'est pas facturée. Seule une page qui revient avec du contenu est facturée.
Puis-je l'essayer avant d'acheter ?
Il n'existe pas d'offre gratuite. Il n'y a pas d'offre gratuite : le plus petit pack est le moyen de tester, payé à partir de la recharge minimale, et le montant ajouté uniquement pour atteindre ce minimum peut être renvoyé sur demande sous 30 jours, en USDT ou USDC, tant qu'il n'est pas dépensé.