Sans KYC — pas de pièce d'identité, pas de selfie, pas de documents. Payez en crypto : BTC, USDT, USDC, ETH, SOL, LTC
Langue: Français
Obtenir une clé API

Docs · curl

Page web en Markdown avec curl et jq

Tout ce que fait l'API tient en une ligne de shell. Ces recettes utilisent curl pour appeler l'API et jq pour extraire des champs du JSON, avec une version PowerShell pour Windows à la fin.

Dernière mise à jour: · 4 min de lecture

Réponse rapide

Comment convertir une page web en Markdown depuis la ligne de commande ?

Lancez curl -sG https://webreaderapi.com/api/v1/read --data-urlencode "url=…" avec votre clé dans un header Authorization: Bearer, puis passez la réponse à jq -r .markdown. WebReaderAPI renvoie l'extraction du contenu principal de la page en Markdown avec ses métadonnées. Une page simple utilise 1 crédit, à partir de 0,07 $US/1K pages depuis octobre 2026. Sans KYC ; payez en crypto.

Comment configurer le terminal ?

Installez curl et jq, que la plupart des systèmes Linux et macOS possèdent déjà, et exportez votre clé une fois par session. Chaque recette ci-dessous la lit depuis $WEBREADER_API_KEY, ainsi la clé n'apparaît jamais dans l'historique de votre shell au sein d'une commande.

Utilisez -G avec --data-urlencode pour les requêtes GET : curl encode alors l'adresse de la page pour vous, ce qui compte car les adresses contiennent leurs propres ?, & et =.

Définir la clé et enregistrer une page dans un fichier .md
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

Comment voir ce qu'un appel a renvoyé et ce qu'il a coûté ?

Demandez les métadonnées à jq plutôt que le contenu. final_url indique où les redirections ont mené, rendered vous dit si un navigateur headless a été utilisé, et credits_used correspond au coût de l'appel. Si la réponse est une erreur, le même filtre affiche les champs null ; affichez .error pour lire le code et le message.

Métadonnées seules, ou l'erreur s'il y en a une
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}'

Comment lister les liens d'une page ?

Ajoutez include_links=true et transformez la liste links en lignes séparées par des tabulations. Vous obtenez une carte rapide des liens sortants d'une page, que vous pouvez trier, filtrer avec grep ou envoyer à un job par lots.

Liens sous forme de texte et d'URL, un par ligne
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

Comment lire une page JavaScript ou un PDF ?

Ajoutez -d render=true pour une page qui construit son contenu avec JavaScript ; elle coûte alors 2 crédits. Un PDF n'a besoin de rien de particulier : envoyez son URL et le texte revient en markdown. Les fichiers PDF jusqu'à 20 MB et 100 pages sont convertis en Markdown, à 1 crédit par bloc de 10 pages entamé.

Une page rendue, puis un PDF
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

Comment lancer un job par lots depuis le shell ?

Envoyez un corps JSON avec vos URLs à /batch, conservez le job_id, puis lisez le job. Une petite boucle attend que le job soit done et affiche le titre ou le code d'erreur de chaque page. Pour les jobs longs, suivez next_cursor comme indiqué sur la page batch et crawl.

Lot de trois URLs, puis attente du résultat
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)"'

Comment vérifier mes crédits ?

Appelez /credits ; c'est gratuit. La réponse contient credits_remaining, credits_used_today et votre concurrency_limit. Les crédits prépayés n'expirent jamais : les pages non utilisées restent sur votre compte jusqu'à ce que vous les utilisiez.

Crédits restants
curl -s "https://webreaderapi.com/api/v1/credits" -H "Authorization: Bearer $WEBREADER_API_KEY" | jq '.credits_remaining'

Quelle est la version PowerShell sous Windows ?

Invoke-RestMethod analyse le JSON pour vous, donc jq n'est pas nécessaire. Construisez la requête avec [uri]::EscapeDataString pour encoder l'adresse de la page, et passez la clé dans une table headers.

PowerShell : enregistrer une page
$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 : questions fréquentes

Pourquoi mon URL contenant & échoue-t-elle ?

Parce que le shell ou curl la découpe. Mettez l'argument url=… entier entre guillemets et passez-le avec --data-urlencode, comme dans les recettes ci-dessus ; curl encode alors &, ? et = à l'intérieur de l'adresse de la page.

Comment voir le statut HTTP d'une erreur ?

Ajoutez -w '\n%{http_code}\n' pour l'afficher après le corps, ou -i pour voir tous les headers. Le error.code du corps est la valeur stable à tester dans les scripts.

Un appel échoué est-il facturé ?

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.

À partir de 0,07 $US/1K pages · sans KYC

Obtenir une clé API