# Page web en Markdown avec curl et jq

> Convertissez des pages web en Markdown avec curl et jq : enregistrez, listez les liens et lancez un batch. Dès 0,07 $US/1K pages, sans KYC.

- URL: https://webreaderapi.com/fr/docs/curl/
- Dernière mise à jour: 2026-10-22
- Éditeur: WebReaderAPI (https://webreaderapi.com)

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.

**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*

```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
```

## 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*

```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}'
```

## 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*

```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
```

## 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*

```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
```

## 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](https://webreaderapi.com/fr/docs/crawl/).

*Lot de trois URLs, puis attente du résultat*

```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)"'
```

## 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*

```bash
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*

```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 : 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.

---

WebReaderAPI: WebReaderAPI est une API de lecture de pages web pour agents IA qui transforme toute page web publique en Markdown propre, payable en crypto sans envoi de pièce d'identité. Les crédits prépayés à partir de 0,07 $US/1K pages n'expirent jamais, et robots.txt est respecté. Sans KYC — pas de pièce d'identité, pas de selfie, pas de documents. Payez en crypto.
