# Crawl API : transformer un site web entier en fichiers Markdown

> Crawl API qui transforme un site web entier en Markdown pour le RAG : jusqu'à 10 000 pages par job, à partir de 0,07 $US/1K pages.

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

Indiquez une URL de départ et une limite de pages. Le crawler suit le sitemap du site et les liens au sein du même domaine, lit chaque page en Markdown et vous remet les résultats page par page. Un crédit par page.

**Réponse rapide — Comment explorer un site web entier et obtenir chaque page en Markdown ?**

Utilisez une crawl API : vous envoyez une URL de départ et une limite, et elle renvoie chaque page du site en Markdown. **WebReaderAPI** explore jusqu'à 10 000 pages par job au sein d'un même domaine, suit le sitemap, robots.txt et le Crawl-delay, et facture un crédit par page lue, à partir de 0,07 $US/1K pages en octobre 2026. Les pages refusées par robots.txt sont gratuites. Sans KYC ; payer en crypto.

## La crawl API en un coup d'œil

| Attribut | Valeur |
| --- | --- |
| Lancer un crawl | `POST https://webreaderapi.com/api/v1/crawl` avec `url`, `limit`, `max_depth`, `include_paths`, `exclude_paths` |
| Récupérer les résultats | `GET https://webreaderapi.com/api/v1/jobs/{job_id}`, paginés avec un cursor |
| Portée | Crawl d'un seul site web par job, jusqu'à 10 000 pages, en suivant son sitemap, son robots.txt et son Crawl-delay |
| De nombreuses URL distinctes | `POST https://webreaderapi.com/api/v1/batch` : Jusqu'à 100 URLs par job batch |
| 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 |
| Propriétaires de sites | Nous respectons robots.txt : notre crawler s'identifie comme WebReaderAPI, suit les règles écrites pour lui ou pour tous les robots, et ne lit pas une page qu'un site interdit. Les pages refusées ne sont pas facturées |
| Prix | 14,25 $US pour 50 000 pages, 50 $US pour 500 000 pages |

## Comment fonctionne une tâche de crawl ?

Un crawl est une tâche en arrière-plan, car lire des centaines de pages prend plus de temps qu'une seule requête HTTP ne devrait en prendre.

1. **Démarrage :** `POST https://webreaderapi.com/api/v1/crawl` avec l'URL de départ et vos limites. Vous recevez immédiatement un `job_id`.
2. **Découverte :** le crawler lit le robots.txt et le sitemap du site, puis suit les liens au sein du même domaine, en largeur d'abord, jusqu'à `max_depth`.
3. **Lecture :** chaque page autorisée est lue avec les mêmes options que `/read` : Markdown, extraction du contenu principal, rendu si nécessaire.
4. **Collecte :** interrogez `GET https://webreaderapi.com/api/v1/jobs/{job_id}` et parcourez les résultats avec le curseur pendant que la tâche s'exécute, ou une fois qu'elle est `done`.

La tâche s'arrête à votre `limit`, vous ne payez donc jamais pour plus de pages que demandé.

*Python : crawler un site de documentation en fichiers Markdown*

```python
import os
import pathlib
import re
import time

import requests

API = "https://webreaderapi.com/api/v1"
HEADERS = {"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]}

job = requests.post(
    API + "/crawl",
    headers=HEADERS,
    json={"url": "https://docs.example.com/", "limit": 500, "max_depth": 4, "include_paths": ["/guide/*"]},
    timeout=60,
).json()

out = pathlib.Path("docs_md")
out.mkdir(exist_ok=True)
cursor, delay = None, 5
while True:
    params = {"cursor": cursor} if cursor else {}
    page = requests.get(API + "/jobs/" + job["job_id"], headers=HEADERS, params=params, timeout=60).json()
    for item in page.get("results", []):
        if "markdown" in item:
            name = re.sub(r"[^a-z0-9]+", "-", item["url"].lower()).strip("-")[:120]
            (out / (name + ".md")).write_text(item["markdown"], encoding="utf-8")
    cursor = page.get("next_cursor")
    if page["status"] == "done" and not cursor:
        break
    if not cursor:
        time.sleep(delay)
        delay = min(delay * 2, 60)
print("credits used:", page.get("credits_used"))

```

## Quelles pages le crawler visite-t-il, et lesquelles ignore-t-il ?

Il reste dans le domaine de l'URL de départ et ignore tout ce que le site demande aux robots de laisser tranquille. En détail :

- **Même domaine uniquement.** Les liens vers d'autres domaines sont listés dans les résultats mais pas lus.
- **robots.txt d'abord.** Les pages interdites pour `WebReaderAPI` ou pour tous les robots sont ignorées et non facturées.
- **Crawl-delay respecté.** Si le site en définit un, le crawler attend ce délai entre deux pages, un grand site peut donc prendre plus de temps.
- **Vos filtres.** `include_paths` et `exclude_paths` acceptent des motifs simples comme `/blog/*` ; utilisez-les pour éviter les pages de tags, les pages de recherche et les archives.
- **Doublons supprimés.** Une même page atteinte par deux URL, par exemple avec des paramètres de suivi, est lue une seule fois lorsque le site déclare une URL canonique.

## Dois-je utiliser un crawl ou un batch ?

Utilisez un crawl quand vous connaissez le site mais pas les pages ; utilisez un batch quand vous avez déjà la liste des URL. Un crawl découvre les pages à partir du sitemap et des liens. Un batch lit exactement les URL que vous envoyez, jusqu'à 100 par tâche, sur n'importe quel nombre de sites.

Pour une actualisation hebdomadaire d'une base de connaissances, un schéma courant consiste en un crawl pour construire l'index, puis des batchs des pages dont le `lastmod` a changé dans le sitemap. Le coût hebdomadaire se limite ainsi aux pages qui ont réellement bougé.

## Combien coûte le crawl d'un site ?

Un crédit par page lue, deux pour les pages ayant nécessité un navigateur. Un site de documentation de 1 500 pages qui est rendu côté serveur coûte 1 500 crédits ; le même site construit en single-page app peut coûter jusqu'à 3 000.

Trois tâches typiques, en octobre 2026 : un manuel produit de 300 pages tient dans le pack 10 000 pages (3,75 $US) ; dix sites de documentation de 2 000 pages chacun tiennent dans 50 000 pages (14,25 $US) ; une archive de 400 000 pages tient dans 500 000 pages (50 $US). Les pages ignorées et en échec sont gratuites.

## Quel pack convient à un crawl ?

Dimensionnez le pack sur le nombre de pages, puis ajoutez une marge pour les pages qui nécessitent un navigateur. Les crédits n'expirent jamais, le reste sert donc au crawl suivant.

| Offre | Quantité | Prix | Prix par unité |
| --- | --- | --- | --- |
| Test | 10 000 pages | 3,75 $US | 0,38 $US/1K pages |
| Starter | 50 000 pages | 14,25 $US | 0,28 $US/1K pages |
| Build | 100 000 pages | 21,75 $US | 0,22 $US/1K pages |
| Scale | 500 000 pages | 50 $US | 0,10 $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

**Avant de payer**

- Recharge minimum 25 $US. Rechargez une fois en crypto, puis achetez n'importe quelle offre depuis votre solde.
- Votre solde n'a pas de date d'expiration et peut acheter des crédits de page à tout moment. Si un pack coûte moins que le dépôt minimum, le montant que vous avez ajouté uniquement pour atteindre ce minimum peut être renvoyé sur demande dans les 30 jours suivant le paiement, en USDT ou USDC, tant que vous ne l'avez pas dépensé. Tout autre solde n'est pas remboursé, sauf si la loi en dispose autrement.
- Crédité dès que votre paiement a été vérifié sur la blockchain. Délai habituel de confirmation du réseau : BTC ≈ 20 min · USDT TRC-20 ≈ 1 min · USDT ERC-20 ≈ 5 min · USDC ERC-20 ≈ 5 min · ETH ≈ 5 min · SOL ≈ 1 min · LTC ≈ 15 min

## API de crawl : questions fréquentes

### Combien de pages un crawl peut-il lire ?

Jusqu'à 10 000 pages par tâche, au sein du domaine de l'URL de départ. Pour un site plus grand, découpez-le en plusieurs tâches avec `include_paths`, par exemple une par section.

### Le crawler utilise-t-il le sitemap ?

Oui. Il lit le sitemap indiqué dans robots.txt ou à l'emplacement habituel, puis suit les liens des pages qu'il lit. Les pages listées uniquement dans le sitemap sont tout de même lues si robots.txt les autorise.

### Puis-je crawler un site qui bloque les crawlers d'IA ?

Non, pas avec WebReaderAPI. Si robots.txt interdit notre crawler ou tous les robots, ces pages sont ignorées et non facturées. Si le site déclare `Content-Signal: ai-input=no`, nous ne le lisons pas pour vous. Nous ne cherchons jamais à contourner ces choix.

### Puis-je obtenir les résultats pendant que le crawl s'exécute encore ?

Oui. `GET https://webreaderapi.com/api/v1/jobs/{job_id}` renvoie les pages lues jusqu'ici avec un curseur ; continuez à paginer jusqu'à ce que la tâche soit `done` et qu'il ne reste plus de curseur.

### Un crawl peut-il lire plus de pages que ma limite ?

Non. Les crédits sont comptés page par page, et la tâche s'arrête lorsqu'elle atteint la `limit` que vous avez définie. Les pages ignorées à cause de robots.txt et les pages en échec ne consomment aucun crédit.

---

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.
