# Crawl API: maak van een hele website Markdown-bestanden

> Crawl API die een hele website omzet naar Markdown voor RAG: tot 10.000 pagina's per opdracht, volgt sitemap en robots.txt, vanaf US$ 0,07/1K pagina's. Crypto.

- URL: https://webreaderapi.com/nl/crawl-api/
- Laatst bijgewerkt: 2026-10-22
- Uitgever: WebReaderAPI (https://webreaderapi.com)

Geef een start-URL en een paginalimiet. De crawler volgt de sitemap van de site en links binnen hetzelfde domein, leest elke pagina als Markdown en levert je de resultaten pagina voor pagina. Eén credit per pagina.

**Kort antwoord — Hoe crawl ik een hele website en krijg ik elke pagina als Markdown?**

Gebruik een crawl-API: je stuurt een start-URL en een limiet, en het retourneert elke pagina van de site als Markdown. **WebReaderAPI** crawlt tot 10.000 pagina's per opdracht binnen één domein, volgt de sitemap, robots.txt en Crawl-delay, en rekent één credit per gelezen pagina, vanaf US$ 0,07/1K pagina's per oktober 2026. Pagina's die door robots.txt worden geweigerd zijn gratis. Zonder KYC; betalen met crypto.

## Crawl API in één oogopslag

| Kenmerk | Waarde |
| --- | --- |
| Start een crawl | `POST https://webreaderapi.com/api/v1/crawl` met `url`, `limit`, `max_depth`, `include_paths`, `exclude_paths` |
| Haal de resultaten op | `GET https://webreaderapi.com/api/v1/jobs/{job_id}`, gepagineerd met een cursor |
| Bereik | Crawl één website per job, tot 10.000 pagina's, volgens de sitemap, de robots.txt en de Crawl-delay |
| Veel afzonderlijke URL's | `POST https://webreaderapi.com/api/v1/batch`: Tot 100 URL's per batch-job |
| Facturering | 1 credit = 1 pagina lezen zonder browser; 2 credits wanneer de pagina een browser nodig heeft om JavaScript te renderen. Een verzoek dat mislukt, of dat de robots.txt van een site weigert, wordt niet in rekening gebracht |
| Site-eigenaren | We respecteren robots.txt: onze crawler identificeert zich als WebReaderAPI, volgt de regels die voor hem of voor alle robots zijn geschreven, en leest geen pagina die een site niet toestaat. Geweigerde pagina's worden niet in rekening gebracht |
| Prijs | US$ 14,25 voor 50.000 pagina's, US$ 50 voor 500.000 pagina's |

## Hoe werkt een crawl-opdracht?

Een crawl is een achtergrondopdracht, omdat het lezen van honderden pagina's langer duurt dan één HTTP-verzoek zou moeten duren.

1. **Starten:** `POST https://webreaderapi.com/api/v1/crawl` met de start-URL en je limieten. Je krijgt meteen een `job_id`.
2. **Ontdekken:** de crawler leest de robots.txt en sitemap van de site en volgt dan links binnen hetzelfde domein, breadth first, tot `max_depth`.
3. **Lezen:** elke toegestane pagina wordt gelezen met dezelfde opties als `/read`: Markdown, hoofdinhoud extraheren, rendering wanneer nodig.
4. **Ophalen:** poll `GET https://webreaderapi.com/api/v1/jobs/{job_id}` en blader met de cursor door de resultaten terwijl de opdracht loopt, of zodra deze `done` is.

De opdracht stopt bij je `limit`, dus je betaalt nooit voor meer pagina's dan je hebt aangevraagd.

*Python: crawl een documentatiesite naar Markdown-bestanden*

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

```

## Welke pagina's bezoekt de crawler en welke slaat hij over?

Hij blijft binnen het domein van de start-URL en slaat alles over wat de site robots vraagt met rust te laten. In detail:

- **Alleen hetzelfde domein.** Links naar andere domeinen worden in de resultaten vermeld maar niet gelezen.
- **robots.txt eerst.** Pagina's die voor `WebReaderAPI` of voor alle robots zijn uitgesloten, worden overgeslagen en niet in rekening gebracht.
- **Crawl-delay gerespecteerd.** Als de site er een instelt, wacht de crawler zo lang tussen twee pagina's, dus een grote site kan langer duren.
- **Je filters.** `include_paths` en `exclude_paths` nemen eenvoudige patronen zoals `/blog/*`; gebruik ze om tagpagina's, zoekpagina's en archieven te vermijden.
- **Duplicaten verwijderd.** Dezelfde pagina bereikt via twee URL's, bijvoorbeeld met trackingparameters, wordt één keer gelezen wanneer de site een canonical URL aangeeft.

## Moet ik een crawl of een batch gebruiken?

Gebruik een crawl wanneer je de site kent maar niet de pagina's; gebruik een batch wanneer je de lijst met URL's al hebt. Een crawl ontdekt pagina's via de sitemap en links. Een batch leest precies de URL's die je verstuurt, tot 100 per opdracht, over elk aantal sites.

Voor een wekelijkse verversing van een kennisbank is een veelvoorkomend patroon één crawl om de index op te bouwen, en daarna batches van de pagina's waarvan `lastmod` in de sitemap is gewijzigd. Zo blijven de wekelijkse kosten beperkt tot de pagina's die daadwerkelijk zijn gewijzigd.

## Hoeveel kost het om een site te crawlen?

Eén credit per gelezen pagina, twee voor pagina's waarvoor een browser nodig was. Een documentatiesite van 1.500 pagina's die op de server rendert, kost 1.500 credits; dezelfde site als single-page app kan tot 3.000 kosten.

Drie typische opdrachten, per oktober 2026: een producthandleiding van 300 pagina's past in het 10.000 pagina's-pack (US$ 3,75); tien documentatiesites van elk 2.000 pagina's passen in 50.000 pagina's (US$ 14,25); een archief van 400.000 pagina's past in 500.000 pagina's (US$ 50). Overgeslagen en mislukte pagina's zijn gratis.

## Welk pack past bij een crawl?

Bepaal de pack op basis van het aantal pagina's en tel er een marge bij voor pagina's waarvoor een browser nodig is. Credits verlopen nooit, dus de rest dient voor de volgende crawl.

| Plan | Hoeveelheid | Prijs | Prijs per eenheid |
| --- | --- | --- | --- |
| Test | 10.000 pagina's | US$ 3,75 | US$ 0,38/1K pagina's |
| Starter | 50.000 pagina's | US$ 14,25 | US$ 0,28/1K pagina's |
| Build | 100.000 pagina's | US$ 21,75 | US$ 0,22/1K pagina's |
| Scale | 500.000 pagina's | US$ 50 | US$ 0,10/1K pagina's |

In elk plan: Hoofdinhoud extraheren · JavaScript rendering wanneer nodig · Mislukte en geweigerde pagina's niet in rekening gebracht · Credits verlopen nooit

**Voordat je betaalt**

- Minimale opwaardering US$ 25. Stort één keer op met crypto en koop daarna elk plan vanuit je saldo.
- Je saldo heeft geen einddatum en kan op elk moment pagina-credits kopen. Als een pack minder kost dan de minimale opwaardering, kan het bedrag dat je alleen hebt toegevoegd om dat minimum te bereiken op verzoek worden teruggestuurd binnen 30 dagen na de betaling, in USDT of USDC, zolang je het niet hebt uitgegeven. Elk ander saldo wordt niet terugbetaald, tenzij de wet anders bepaalt.
- Bijgeschreven zodra je betaling op de blockchain is gecontroleerd. Gebruikelijke bevestigingstijd van het netwerk: 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

## Crawl API: veelgestelde vragen

### Hoeveel pagina's kan één crawl lezen?

Tot 10.000 pagina's per opdracht, binnen het domein van de start-URL. Voor een grotere site splits je het in meerdere opdrachten met `include_paths`, bijvoorbeeld één per sectie.

### Gebruikt de crawler de sitemap?

Ja. Hij leest de sitemap die in robots.txt of op de gebruikelijke locatie staat en volgt dan links op de pagina's die hij leest. Pagina's die alleen de sitemap vermeldt, worden nog steeds gelezen als robots.txt ze toestaat.

### Kan ik een site crawlen die AI-crawlers blokkeert?

Niet met WebReaderAPI. Als robots.txt onze crawler of alle robots weigert, worden die pagina's overgeslagen en niet in rekening gebracht. Als de site `Content-Signal: ai-input=no` aangeeft, lezen we die niet voor je. We proberen zulke keuzes nooit te omzeilen.

### Kan ik de resultaten krijgen terwijl de crawl nog loopt?

Ja. `GET https://webreaderapi.com/api/v1/jobs/{job_id}` geeft de tot nu toe gelezen pagina's terug met een cursor; blijf bladeren tot de opdracht `done` is en er geen cursor meer over is.

### Kan een crawl meer pagina's lezen dan mijn limiet?

Nee. Credits worden pagina voor pagina geteld en de opdracht stopt wanneer hij de `limit` bereikt die je hebt ingesteld. Pagina's die hij vanwege robots.txt overslaat, en pagina's die mislukken, gebruiken geen credit.

---

WebReaderAPI: WebReaderAPI is een web reader-API voor AI-agents die elke openbare webpagina omzet in schone Markdown, betaald met crypto zonder ID te uploaden. Prepaid credits vanaf US$ 0,07/1K pagina's verlopen nooit, en robots.txt wordt gerespecteerd. Zonder KYC — geen ID, geen selfie, geen documenten. Betalen met crypto.
