# curl- en jq-recepten voor de webzoek-API

> Webzoek-API met curl en jq: zoeken, bronnen opsommen, pagina's opslaan, nieuws en domeinen filteren, credits controleren. Zonder KYC, betalen met crypto.

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

Elke functie van de API werkt vanuit een terminal. Deze recepten gebruiken `curl` om de API aan te roepen en `jq` om de JSON vorm te geven: handig om een zoekopdracht te testen voordat je gaat coderen, voor shell-scripts en voor cron jobs.

**Snel antwoord — Hoe gebruik ik een webzoek-API vanaf de commandoregel?**

Stuur een JSON-body met `curl -d` naar `https://llmwebsearch.com/api/v1/search`, je API-sleutel in een `Authorization: Bearer`-header, en pipe het antwoord naar `jq`. **LLMWebSearch** geeft gerangschikte resultaten terug met de top 3 pagina's als Markdown, zodat één regel bronnen kan opsommen of pagina's naar bestanden kan opslaan. Een zoekopdracht kost 1 credit, vanaf US$ 1,20/1K zoekopdrachten per oktober 2026. Zonder KYC; betalen met crypto.

## Hoe zet ik de terminal één keer op?

Exporteer je API-sleutel in de shell, zodat die buiten de commando's die je typt en buiten je history blijft. De recepten hieronder lezen hem als `$LLMWEBSEARCH_API_KEY`. Je hebt ook `jq` nodig, dat de meeste package managers onder die naam installeren.

Alle recepten gaan uit van een POSIX-shell zoals bash of zsh. Op Windows draaien Git Bash of WSL ze ongewijzigd.

*Stel de API-sleutel in en controleer je saldo (gratis)*

```bash
export LLMWEBSEARCH_API_KEY="your-key"

curl -s "https://llmwebsearch.com/api/v1/credits" \
  -H "Authorization: Bearer $LLMWEBSEARCH_API_KEY" | jq .
```

## Hoe som ik de bronnen van een zoekopdracht op?

Voer de zoekopdracht uit met `read` op `0` en print één regel per resultaat: positie, host en URL. Dat kost 1 credit en laat je in een seconde zien welke bronnen een vraag oplevert. Het is een goede manier om de formulering van een zoekopdracht af te stemmen voordat een agent hem gebruikt.

*Eén regel per resultaat*

```bash
curl -s "https://llmwebsearch.com/api/v1/search" \
  -H "Authorization: Bearer $LLMWEBSEARCH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"q": "postgres connection pool size", "max_results": 10, "read": 0}' \
  | jq -r '.results[] | "\(.position)\t\(.host)\t\(.url)"'
```

## Hoe sla ik de pagina's op die gelezen zijn?

Houd de resultaten waarvan `content_status` gelijk is aan `ok` en schrijf elke `content` naar een eigen bestand. Het recept hieronder slaat `01.md`, `02.md` enzovoort op, elk beginnend met de bron-URL. jq selecteert de resultaten en de shell-loop schrijft de bestanden.

*Sla elke pagina op als Markdown*

```bash
curl -s "https://llmwebsearch.com/api/v1/search" \
  -H "Authorization: Bearer $LLMWEBSEARCH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"q": "postgres connection pool size", "read": 3}' > search.json

jq -r '.results[] | select(.content_status == "ok") | .position' search.json | while read -r pos; do
  jq -r --argjson p "$pos" '.results[] | select(.position == $p) | "Source: " + .url + "\n\n" + .content' \
    search.json > "$(printf '%02d' "$pos").md"
done
ls -1 ./*.md
```

## Hoe zoek ik nieuws van een paar sites?

Voeg `topic`, `time_range` en `include_domains` toe aan de body. Het recept houdt nieuws van de afgelopen week op twee domeinen en print de datum naast elke titel, genoeg om een onderwerp vanuit een cron job in de gaten te houden.

*Nieuws van de afgelopen week van twee domeinen*

```bash
curl -s "https://llmwebsearch.com/api/v1/search" \
  -H "Authorization: Bearer $LLMWEBSEARCH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"q": "database security release", "topic": "news", "time_range": "week", "include_domains": ["news.example.com", "example.org"], "read": 0}' \
  | jq -r '.results[] | "\(.published_at // "no date")  \(.title)  \(.url)"'
```

## Hoe gebruik ik de GET-vorm?

Gebruik `curl -G` met `--data-urlencode` voor de zoekopdracht, zodat spaties en symbolen voor je worden geëncodeerd. Lijsten zoals `include_domains` worden één kommagescheiden waarde. GET is handig voor een snelle test; scripts die groeien kunnen beter naar POST overstappen.

*GET /search*

```bash
curl -sG "https://llmwebsearch.com/api/v1/search" \
  -H "Authorization: Bearer $LLMWEBSEARCH_API_KEY" \
  --data-urlencode "q=pgbouncer transaction mode" \
  -d read=1 -d max_chars=3000 -d include_domains=example.com,example.org \
  | jq -r '.results[0].content // .results[0].snippet'
```

## Hoe lees ik URL's die ik al heb?

Post ze naar `/extract` als een JSON-array van 1 tot 20 adressen. Het lezen van pagina's waarvan je de URL's al hebt, kost 1 credit per begonnen groep van 3 pagina's die met inhoud worden teruggegeven, tot 20 URL's per call; geweigerde of mislukte URL's tellen niet mee. Het recept print elke URL met zijn status en woordenaantal, wat in één oogopslag laat zien welke pagina's een site ons liet lezen.

*POST /extract*

```bash
curl -s "https://llmwebsearch.com/api/v1/extract" \
  -H "Authorization: Bearer $LLMWEBSEARCH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"urls": ["https://docs.example.com/security/key-rotation", "https://example.com/changelog"]}' \
  | jq -r '"credits: \(.credits_used)", (.results[] | "\(.content_status)\t\(.word_count // 0)\t\(.url)")'
```

## Hoe zie ik de foutmelding wanneer een aanroep mislukt?

Print de HTTP-status met `-w` en bewaar de body: fouten komen terug als JSON met een `code` en een `message`. Een script kan dan op de status vertakken, bijvoorbeeld wachten en opnieuw proberen bij alleen `429`, `502` of `504`. Geen van deze fouten kost een credit.

*Statuscode en foutbody*

```bash
status=$(curl -s -o body.json -w '%{http_code}' "https://llmwebsearch.com/api/v1/search" \
  -H "Authorization: Bearer $LLMWEBSEARCH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"q": "test query"}')
if [ "$status" != "200" ]; then
  echo "HTTP $status: $(jq -r '.error.code + " - " + .error.message' body.json)"
fi
```

## curl: veelgestelde vragen

### Waarom faalt mijn JSON-body met invalid_parameter?

Meestal een quoting-probleem. Zet de body in bash tussen enkele quotes, zodat de dubbele quotes binnenin intact blijven, en controleer hem met `echo '…' | jq .` voordat je hem verstuurt.

### Kan ik de sleutel in de URL meegeven?

Ja, met `-d api_key=…` op de GET-vorm. De header is veiliger, omdat shell-history en proxylogs URL's vastleggen.

### Kost een mislukte curl-aanroep een credit?

Nee. HTTP-fouten kosten nooit credits. Alleen een zoekopdracht die resultaten oplevert, wordt gefactureerd, zoals `credits_used` laat zien.

---

LLMWebSearch: LLMWebSearch is een webzoek-API voor AI-agents die gerangschikte resultaten teruggeeft met de inhoud van de belangrijkste pagina's als Markdown, betaald met crypto zonder ID-upload. Voorafbetaalde credits vanaf US$ 1,20/1K zoekopdrachten verlopen nooit. Zonder KYC — geen ID, geen selfie, geen documenten. Betalen met crypto.
