# Webpagina naar Markdown met curl en jq

> Zet webpagina's om naar Markdown met curl en jq: sla een pagina op, toon links, voer een batch uit en controleer credits. Vanaf US$ 0,07/1K pagina's, geen KYC.

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

Alles wat de API doet past in een shell-one-liner. Deze recepten gebruiken curl om de API aan te roepen en jq om velden uit de JSON te halen, met aan het eind een PowerShell-versie voor Windows.

**Kort antwoord — Hoe converteer ik een webpagina naar Markdown vanaf de command line?**

Voer `curl -sG https://webreaderapi.com/api/v1/read --data-urlencode "url=…"` uit met je sleutel in een `Authorization: Bearer` header en pipe het antwoord naar `jq -r .markdown`. **WebReaderAPI** geeft de hoofdinhoud van de pagina terug als Markdown met de metadata. Eén gewone pagina gebruikt 1 credit, vanaf US$ 0,07/1K pagina's per oktober 2026. Zonder KYC; betalen met crypto.

## Hoe stel ik de terminal in?

Installeer curl en jq, die de meeste Linux- en macOS-systemen al hebben, en exporteer je sleutel één keer per sessie. Elk recept hieronder leest hem uit `$WEBREADER_API_KEY`, zodat de sleutel nooit als onderdeel van een commando in je shell-geschiedenis verschijnt.

Gebruik `-G` met `--data-urlencode` voor GET-requests: curl codeert het pagina-adres dan voor je, wat belangrijk is omdat adressen hun eigen `?`, `&` en `=` bevatten.

*Stel de sleutel in en sla één pagina op als een .md-bestand*

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

## Hoe zie ik wat een call heeft teruggegeven en gekost?

Vraag jq om de metadata in plaats van de inhoud. `final_url` laat zien waar redirects naartoe gingen, `rendered` vertelt je of er een browser is gebruikt, en `credits_used` is wat de call kostte. Als het antwoord een fout is, print dezelfde filter `null`-velden; print `.error` om de code en het bericht te lezen.

*Alleen metadata, of de fout als die er is*

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

## Hoe list ik de links van een pagina op?

Voeg `include_links=true` toe en zet de `links`-lijst om in regels gescheiden door tabs. Dat geeft je een snelle kaart van de uitgaande links van een pagina, die je kunt sorteren, filteren met grep of kunt doorgeven aan een batch-job.

*Links als tekst en URL, één per regel*

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

## Hoe lees ik een JavaScript-pagina of een PDF?

Voeg `-d render=true` toe voor een pagina die zijn inhoud met JavaScript opbouwt; die kost dan 2 credits. Een PDF heeft niets speciaals nodig: stuur de URL en de tekst komt terug in `markdown`. PDF-bestanden tot 20 MB en 100 pagina's worden omgezet naar Markdown, voor 1 credit per begonnen blok van 10 pagina's.

*Een gerenderde pagina, dan een 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
```

## Hoe draai ik een batch-job vanuit de shell?

Post een JSON-body met je URL's naar `/batch`, bewaar de `job_id` en lees dan de job. Een kleine loop wacht tot de job `done` is en print de titel of foutcode van elke pagina. Volg voor lange jobs `next_cursor` zoals getoond op de [batch- en crawl-pagina](https://webreaderapi.com/nl/docs/crawl/).

*Batch van drie URL's, dan wachten op het resultaat*

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

## Hoe controleer ik mijn credits?

Roep `/credits` aan; dat is gratis. Het retourneert `credits_remaining`, `credits_used_today` en je `concurrency_limit`. Prepaid credits verlopen nooit: ongebruikte pagina's blijven op je account staan tot je ze gebruikt.

*Resterende credits*

```bash
curl -s "https://webreaderapi.com/api/v1/credits" -H "Authorization: Bearer $WEBREADER_API_KEY" | jq '.credits_remaining'
```

## Wat is de PowerShell-versie op Windows?

`Invoke-RestMethod` parseert de JSON voor je, dus je hebt geen jq nodig. Bouw de query met `[uri]::EscapeDataString` om het pagina-adres te coderen, en geef de sleutel door in een headers-tabel.

*PowerShell: één pagina opslaan*

```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: veelgestelde vragen

### Waarom mislukt mijn URL met & erin?

Omdat de shell of curl hem splitst. Zet het hele `url=…`-argument tussen quotes en geef het door met `--data-urlencode`, zoals in de recepten hierboven; curl codeert dan `&`, `?` en `=` binnen het pagina-adres.

### Hoe zie ik de HTTP-status van een fout?

Voeg `-w '\n%{http_code}\n'` toe om hem na de body te printen, of `-i` om alle headers te zien. De `error.code` van de body is de stabiele waarde om in scripts te testen.

### Wordt een mislukte call gefactureerd?

Nee. 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.

---

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.
