# SERP-API met curl en jq: recepten van één regel

> SerpCrypto SERP-API-recepten van één regel met curl en jq: top 10 links, People Also Ask, AI Overview-bronnen, local pack en Maps, plus een PowerShell-versie.

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

De snelste manier om te zien wat de API teruggeeft is een terminal. Deze recepten printen elk precies één ding: links, vragen, bronnen of lokale bedrijven. Ze werken in bash en zsh; een PowerShell-versie sluit de pagina af.

**Snel antwoord — Hoe query ik een SERP-API met curl?**

Voer `curl -sG "https://serpcrypto.com/api/v1/search" -H "Authorization: Bearer $KEY" --data-urlencode "q=your query"` uit en pipe de JSON naar `jq`. Met **SerpCrypto** kost elke geslaagde zoekopdracht 1 credit, vanaf US$ 0,30/1K zoekopdrachten, en fouten zijn gratis. `-G` zet de data-flags om in een query string. Credits worden betaald met crypto, zonder KYC.

## Welke curl-flags zijn hier belangrijk?

Stel de sleutel één keer per shell in met `export SERPCRYPTO_API_KEY=…`. Installeer `jq` via je package manager als het ontbreekt.

| Flag | Waarom |
| --- | --- |
| `-s` | Silent: geen progressiebalk vermengd met de JSON. |
| `-G` | Stuur de waarden `-d` en `--data-urlencode` als query string mee in een GET-request. |
| `--data-urlencode` | Codeer spaties, aanhalingstekens en accenten in `q` en `location`. |
| `-H "Authorization: Bearer …"` | Je API-sleutel. Bewaar die in een environment variable. |
| `-w '%{http_code}'` | Print de HTTP-status, handig wanneer een aanroep mislukt. |

## Hoe print ik de top 10 links voor een zoekopdracht?

Vraag de organische resultaten op en laat `jq` de positie en link van elk resultaat printen, gescheiden door een tab. De `[]?`-vorm print niets in plaats van te falen wanneer een blok ontbreekt, wat scripts stil houdt op ongebruikelijke pagina's.

*Top 10 links*

```bash
# Top 10 organic links, one per line
curl -sG "https://serpcrypto.com/api/v1/search" \
  -H "Authorization: Bearer $SERPCRYPTO_API_KEY" \
  --data-urlencode "q=kubernetes cost monitoring" -d gl=us -d hl=en \
  | jq -r '.organic_results[]? | "\(.position)\t\(.link)"'
```

## Hoe lijst ik de People Also Ask-vragen op?

Lees `people_also_ask[].question`. De vragen volgen de taal in `hl` en veranderen met het land in `gl`, dus voer dezelfde zoekopdracht uit in elke markt waarvoor je schrijft. Contentteams plakken deze lijst direct in een brief.

*People Also Ask*

```bash
# People Also Ask questions, ready for a content brief
curl -sG "https://serpcrypto.com/api/v1/search" \
  -H "Authorization: Bearer $SERPCRYPTO_API_KEY" \
  --data-urlencode "q=how to brew cold brew" -d gl=gb -d hl=en \
  | jq -r '.people_also_ask[]?.question'
```

## Hoe zie ik welke bronnen een AI Overview citeert?

Lees `ai_overview.references`. Het blok bestaat alleen wanneer Google een AI Overview toont voor die zoekopdracht en locatie, dus het recept print anders een duidelijke melding. Deze bronnen over tijd volgen laat zien of je pagina's worden geciteerd in de gegenereerde antwoorden van Google.

*AI Overview-bronnen*

```bash
# Sources cited by the AI Overview, if the page shows one
curl -sG "https://serpcrypto.com/api/v1/search" \
  -H "Authorization: Bearer $SERPCRYPTO_API_KEY" \
  --data-urlencode "q=what is a heat pump" -d gl=us -d hl=en \
  | jq -r 'if .ai_overview then .ai_overview.references[] | "\(.index)\t\(.source)\t\(.link)" else "no AI Overview for this query" end'
```

## Hoe krijg ik het local pack en de Maps-lijst?

Een webzoekopdracht met `location` retourneert het local pack dat op de resultatenpagina wordt getoond, meestal een paar bedrijven. `engine=google_maps` retourneert de langere Maps-lijst met adres, beoordeling en aantal reviews, die `@tsv` omzet in rijen voor een spreadsheet. Beide kosten 1 credit per stuk.

*Local pack, dan Google Maps*

```bash
# Local pack in a city, then the full Maps list for the same query
curl -sG "https://serpcrypto.com/api/v1/search" \
  -H "Authorization: Bearer $SERPCRYPTO_API_KEY" \
  --data-urlencode "q=vegan restaurant" \
  --data-urlencode "location=Toronto, Ontario, Canada" -d gl=ca -d hl=en \
  | jq -r '.local_results[]? | "\(.position)\t\(.title)\t\(.rating // "-")"'

curl -sG "https://serpcrypto.com/api/v1/search" \
  -H "Authorization: Bearer $SERPCRYPTO_API_KEY" \
  -d engine=google_maps --data-urlencode "q=vegan restaurant Toronto" -d gl=ca -d hl=en \
  | jq -r '.local_results[]? | [.title, .address, .rating, .reviews] | @tsv'
```

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

Voeg `-w '\nHTTP %{http_code}\n'` toe om de status na de body te printen. Een foutbody is kleine JSON met `code` en `message`; de [errors-pagina](https://serpcrypto.com/nl/docs/errors/)] somt alle zes codes op. Het tweede commando leest je credits, wat gratis is.

*Statuscode en credits*

```bash
# Print the body, then the HTTP status on its own line
curl -sG "https://serpcrypto.com/api/v1/search" \
  -H "Authorization: Bearer $SERPCRYPTO_API_KEY" \
  --data-urlencode "q=test" -w '\nHTTP %{http_code}\n'

# Credits left (free call)
curl -s "https://serpcrypto.com/api/v1/credits" -H "Authorization: Bearer $SERPCRYPTO_API_KEY" | jq .
```

## Wat is het PowerShell-equivalent op Windows?

`Invoke-RestMethod` verstuurt het verzoek en parseert de JSON naar objecten, dus je hebt `jq` niet nodig. Geef de parameters door als een hashtable in `-Body`: bij een GET-verzoek codeert PowerShell ze in de query string. `Format-Table` print dan posities, titels en links.

*PowerShell*

```powershell
# Windows PowerShell 5.1 or PowerShell 7
$headers = @{ Authorization = "Bearer $env:SERPCRYPTO_API_KEY" }
$query = @{ q = "kubernetes cost monitoring"; gl = "us"; hl = "en" }
$data = Invoke-RestMethod -Uri "https://serpcrypto.com/api/v1/search" -Headers $headers -Body $query -Method Get
$data.organic_results | Select-Object position, title, link | Format-Table -AutoSize
```

## Wanneer moet ik van curl naar code overstappen?

Zodra je een commando herhaalt met een lijst zoekopdrachten. Een shell-loop werkt voor een paar dozijn zoekopdrachten, maar retries, parallelisme en opslag zijn eenvoudiger in [Python](https://serpcrypto.com/nl/docs/python/) of [Node.js](https://serpcrypto.com/nl/docs/node/). De verzoeken zijn hetzelfde, dus een hier getest recept werkt ongewijzigd over. Elke zoekopdracht blijft 1 credit, tegen US$ 0,75/1K zoekopdrachten op het 10.000 zoekopdrachten-pack.

## curl-vragen

### Waarom geeft mijn zoekopdracht een 400-fout in curl?

Meestal omdat `q` met `-d` is verzonden en een teken bevat dat encoding nodig heeft. Gebruik `--data-urlencode "q=…"` voor de zoekopdracht en voor `location`; gewone codes zoals `gl=us` kunnen bij `-d` blijven.

### Kan ik de volledige JSON naar een bestand opslaan?

Ja: voeg `-o result.json` toe in plaats van te pipen naar `jq`. Ruwe antwoorden opslaan laat je ze later opnieuw parsen zonder opnieuw voor de zoekopdracht te betalen.

### Werkt curl op Windows hetzelfde?

Windows 10 en 11 bevatten `curl.exe`, en de flags zijn hetzelfde. Quoting verschilt in `cmd.exe`, dus PowerShell met `Invoke-RestMethod` is daar meestal eenvoudiger.

---

SerpCrypto: SerpCrypto is een SERP-API voor developers en AI-agents die Google- en Bing-resultaten als JSON retourneert, betaald met crypto zonder ID te uploaden. Prepaid zoekcredits vanaf US$ 0,30/1K zoekopdrachten verlopen nooit. Zonder KYC — geen ID, geen selfie, geen documenten. Betalen met crypto.
