# SERP API-referentie: GET /search en GET /credits

> SerpCrypto SERP API-referentie: parameters van GET /search, engines, standaardwaarden, responseblokken, foutcodes en GET /credits, met curl, Python en Node.js.

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

Elke parameter, standaardwaarde en foutcode van de SerpCrypto API, versie 1. Basis-URL: `https://serpcrypto.com/api/v1`. Alle requests gebruiken HTTPS; alle antwoorden zijn JSON in UTF-8.

**Snel antwoord — Welke parameters heeft het zoek-endpoint van SerpCrypto?**

`GET https://serpcrypto.com/api/v1/search` heeft één verplichte parameter, `q`, en negen optionele: `engine`, `gl`, `hl`, `location`, `google_domain`, `device`, `page`, `safe` en `period`. **SerpCrypto** retourneert JSON en rekent 1 credit per geslaagde zoekopdracht op alle 6 engines; fouten zijn gratis. Packs beginnen bij US$ 7,50 voor 10.000 zoekopdrachten, betalen met crypto zonder KYC.

## Hoe authenticeer ik?

Stuur je API-sleutel op een van twee manieren. De aanbevolen manier is de header `Authorization: Bearer YOUR_KEY`. De andere is de queryparameter `api_key=YOUR_KEY`, handig voor een snelle test in een browsertabblad.

Een ontbrekende, verkeerde of ingetrokken sleutel krijgt `401 invalid_api_key` en kost niets. API-sleutels die je op elk moment kunt aanmaken en intrekken vanuit je dashboard, zodat je elk script of elke server een eigen sleutel kunt geven en er één kunt intrekken zonder de andere aan te raken.

## Een zoekopdracht uitvoeren

`GET /api/v1/search`

Voert één zoekopdracht uit op de gekozen engine en retourneert de resultatenpagina als JSON. Een geslaagde zoekopdracht gebruikt 1 credit, ongeacht de engine; een fout gebruikt er geen. Parameters gaan in de query string, URL-gecodeerd. Het voorbeeld vraagt Google om koffiebranders in Austin, Texas; ID's, aantallen en resultaten zijn illustratief.

Authenticatie: API-sleutel in de header `Authorization: Bearer API_KEY`.

**Parameters**

| Naam | In | Type | Verplicht | Beschrijving |
| --- | --- | --- | --- | --- |
| `q` | query | string | Ja | De zoekopdracht, zoals iemand die zou typen. Zoekoperatoren zoals aanhalingstekens of `site:` horen bij de zoekopdracht. |
| `engine` | query | string | Nee | `google` (standaard), `google_news`, `google_images`, `google_maps`, `google_shopping` of `bing`. |
| `gl` | query | string | Nee | Land van de resultaten: ISO 3166-1 alpha-2-code in kleine letters, zoals `us`, `de` of `br`. Standaard `us`. |
| `hl` | query | string | Nee | Interfacetaal, zoals `en`, `de` of `pt-BR`. Standaard `en`. |
| `location` | query | string | Nee | Plaats op stadsniveau, geschreven als `City, Region, Country`, zoals `Austin, Texas, United States`. Zie [locations](https://serpcrypto.com/nl/docs/locations/). |
| `google_domain` | query | string | Nee | Google-domein om in te zoeken, zoals `google.de`. Standaard: het domein van het land van `gl`. Genegeerd wanneer `engine=bing`. |
| `device` | query | string | Nee | `desktop` (standaard) of `mobile`. |
| `page` | query | integer | Nee | Resultatenpagina van 1 (standaard) tot 10. Elke pagina is een aparte zoekopdracht en kost 1 credit. |
| `safe` | query | string | Nee | `active` filtert expliciete resultaten; `off` (standaard) doet dat niet. |
| `period` | query | string | Nee | Alleen resultaten van het laatste uur (`h`), de laatste dag (`d`), week (`w`), maand (`m`) of jaar (`y`). |
| `api_key` | query | string | Nee | Je API-sleutel, als je de header `Authorization` niet meestuurt. |

**Response** `200`

```json
{
  "search_metadata": {
    "id": "srch_7f3a9c2e41b8",
    "status": "success",
    "engine": "google",
    "created_at": "2026-10-22T09:14:05Z",
    "credits_used": 1
  },
  "search_parameters": {
    "engine": "google",
    "q": "coffee roasters",
    "gl": "us",
    "hl": "en",
    "location": "Austin, Texas, United States",
    "google_domain": "google.com",
    "device": "desktop",
    "page": 1
  },
  "search_information": {
    "total_results": 18600000,
    "query_displayed": "coffee roasters"
  },
  "local_results": [
    {
      "position": 1,
      "title": "Example Coffee Roasters",
      "address": "123 Example St, Austin, TX",
      "rating": 4.7,
      "reviews": 312,
      "type": "Coffee roasters"
    }
  ],
  "organic_results": [
    {
      "position": 1,
      "title": "The 12 best coffee roasters in Austin",
      "link": "https://www.example.com/austin/coffee-roasters",
      "displayed_link": "www.example.com › austin › coffee",
      "snippet": "From light Nordic roasts to dark espresso blends, these local roasters…",
      "date": "Sep 30, 2026"
    },
    {
      "position": 2,
      "title": "Example Roasting Co. | Fresh beans, roasted in Austin",
      "link": "https://www.example.org/",
      "displayed_link": "www.example.org",
      "snippet": "Small-batch coffee roasted every weekday and shipped the same day…"
    }
  ],
  "people_also_ask": [
    {
      "question": "What is the oldest coffee roaster in Austin?",
      "snippet": "…",
      "title": "Austin coffee history",
      "link": "https://www.example.net/austin-coffee-history"
    }
  ],
  "related_searches": [
    {
      "query": "coffee roasters near me"
    },
    {
      "query": "coffee roasters austin wholesale"
    }
  ],
  "pagination": {
    "current": 1,
    "next_page": 2
  }
}
```

*curl*

```bash
curl -sG "https://serpcrypto.com/api/v1/search" \
  -H "Authorization: Bearer $SERPCRYPTO_API_KEY" \
  --data-urlencode "q=coffee roasters" \
  --data-urlencode "location=Austin, Texas, United States" \
  -d gl=us -d hl=en -d device=desktop
```

*Python*

```python
import os

import requests

r = requests.get(
    "https://serpcrypto.com/api/v1/search",
    params={
        "q": "coffee roasters",
        "location": "Austin, Texas, United States",
        "gl": "us",
        "hl": "en",
    },
    headers={"Authorization": "Bearer " + os.environ["SERPCRYPTO_API_KEY"]},
    timeout=60,
)
r.raise_for_status()
print(r.json()["organic_results"][0]["link"])
```

*Node.js*

```javascript
const params = new URLSearchParams({
  q: "coffee roasters",
  location: "Austin, Texas, United States",
  gl: "us",
  hl: "en",
});
const res = await fetch("https://serpcrypto.com/api/v1/search?" + params, {
  headers: { Authorization: "Bearer " + process.env.SERPCRYPTO_API_KEY },
});
const data = await res.json();
console.log(data.organic_results?.[0]?.link);
```

## Welke engine-waarden bestaan er, en wat levert elk op?

Het frame (`search_metadata`, `search_parameters`, `search_information`) is op elke engine hetzelfde. Een blok verschijnt alleen wanneer de pagina het toont.

| `engine` | Bron | Belangrijkste blokken in het antwoord |
| --- | --- | --- |
| `google` | Google-zoekresultaten | `ai_overview`, `organic_results`, `ads`, `people_also_ask`, `local_results`, `knowledge_graph`, `top_stories`, `inline_videos`, `shopping_results`, `related_searches`, `pagination` |
| `google_news` | Google News | `news_results`: titel, link, bron, datum, snippet, thumbnail |
| `google_images` | Google Images | `images_results`: originele URL en afmeting, thumbnail, bronpagina |
| `google_maps` | Google Maps | `local_results`: naam, adres, telefoon, website, beoordeling, reviews, categorie, openingstijden, coördinaten |
| `google_shopping` | Google Shopping | `shopping_results`: titel, prijs, geëxtraheerde prijs, valuta, verkoper, levering, beoordeling |
| `bing` | Bing | `organic_results`, `related_searches` |

## Je credits opvragen

`GET /api/v1/credits`

Geeft de credits terug die nog op je account staan, de credits die sinds middernacht UTC zijn gebruikt en het aantal zoekopdrachten dat je account tegelijkertijd mag uitvoeren. Deze call is gratis. Onderstaande waarden zijn voorbeelden.

Authenticatie: API-sleutel in de header `Authorization: Bearer API_KEY`.

**Response** `200`

```json
{
  "credits_remaining": 84210,
  "credits_used_today": 1290,
  "concurrency_limit": 10
}
```

*curl*

```bash
curl -s "https://serpcrypto.com/api/v1/credits" \
  -H "Authorization: Bearer $SERPCRYPTO_API_KEY"
```

*Python*

```python
import os

import requests

r = requests.get(
    "https://serpcrypto.com/api/v1/credits",
    headers={"Authorization": "Bearer " + os.environ["SERPCRYPTO_API_KEY"]},
    timeout=30,
)
r.raise_for_status()
print(r.json()["credits_remaining"])
```

*Node.js*

```javascript
const res = await fetch("https://serpcrypto.com/api/v1/credits", {
  headers: { Authorization: "Bearer " + process.env.SERPCRYPTO_API_KEY },
});
const { credits_remaining } = await res.json();
console.log(credits_remaining);
```

## Welke fouten kan de API teruggeven?

Elke fout heeft de body `{"error": {"code": "…", "message": "…"}}`. De [foutenpagina](https://serpcrypto.com/nl/docs/errors/) legt elke fout uit en toont de retry-code.

| HTTP | `code` | Wanneer het gebeurt | Kost credits |
| --- | --- | --- | --- |
| 400 | `invalid_parameter` | Een verplichte parameter ontbreekt of een waarde valt buiten de toegestane lijst | Nee |
| 401 | `invalid_api_key` | De API-sleutel ontbreekt, is onjuist of is ingetrokken | Nee |
| 402 | `insufficient_credits` | Je account heeft geen credits meer | Nee |
| 429 | `concurrency_limit` | Er lopen te veel zoekopdrachten tegelijkertijd op je account | Nee |
| 502 | `search_failed` | De engine of de collectie is mislukt voor deze aanvraag; probeer het opnieuw | Nee |
| 504 | `search_timeout` | Geen antwoord binnen de tijd; probeer het opnieuw | Nee |

## Wat kost er precies?

- **Eén geslaagde zoekopdracht = één credit**, op elke engine, inclusief Google Maps en Google Shopping.
- **Elke resultatenpagina is één zoekopdracht.** Ongeveer 10 organische resultaten per pagina, zoals Google levert sinds het in september 2025 stopte met num=100; elke extra pagina kost nog een credit.
- **Fouten zijn gratis:** elk antwoord met een HTTP-status anders dan 200 gebruikt geen credit.
- **Je credits opvragen is gratis.**

Prepaid zoekcredits verlopen nooit: ongebruikte zoekopdrachten blijven op je account staan tot je ze gebruikt. Packs lopen van US$ 7,50 voor 10.000 zoekopdrachten tot US$ 0,30/1K zoekopdrachten voor het grootste pack; zie [prijzen](https://serpcrypto.com/nl/pricing/).

## Hoe moet ik de zoekopdracht encoderen?

Stuur `q` URL-encoded, zoals elke query-string-waarde: een spatie wordt `%20` of `+`, en letters met een accent worden als UTF-8 geëncodeerd. curl doet dit met `--data-urlencode`, Python `requests` en `httpx` doen het met `params=`, en Node.js doet het met `URLSearchParams`.

Schrijf de zoekopdracht precies zoals iemand die in het zoekvak zou typen. Aanhalingstekens, een minteken of `site:` blijven binnen `q`; de engine bepaalt hoe die worden toegepast, zoals bij elke bezoeker.

## Is de API geversioneerd?

Ja. De versie maakt deel uit van het path: `/api/v1/`. Nieuwe velden of blokken kunnen in antwoorden van versie 1 verschijnen, dus je code moet keys negeren die hij niet kent. Het verwijderen of hernoemen van een veld zou gepaard gaan met een nieuwe versie in het path, niet met een wijziging aan `v1`.

## Vragen over de API-referentie

### Kan ik een POST-request met een JSON-body sturen?

Niet in versie 1: beide endpoints nemen GET-requests aan met parameters in de query string. Zo blijft elke call makkelijk te reproduceren met curl of een browser, en makkelijk te loggen zonder de body.

### Hoeveel resultaten levert één zoekopdracht op?

Ongeveer 10 organische resultaten per pagina, zoals Google levert sinds het in september 2025 stopte met num=100; elke extra pagina kost nog een credit. Om 30 resultaten te verzamelen, vraag je `page=1`, `page=2` en `page=3` op: drie zoekopdrachten, drie credits.

### Wat gebeurt er als mijn credits op zijn?

De volgende zoekopdracht retourneert `402 insufficient_credits` en gebruikt niets. Koop een nieuw pack met je saldo op de [prijzenpagina](https://serpcrypto.com/nl/pricing/); je API-sleutel blijft werken en zoekopdrachten hervatten meteen.

### Kan ik dezelfde API-sleutel vanaf meerdere servers gebruiken?

Ja. Een API-sleutel is niet aan een IP-adres gekoppeld. Wat wel beperkt is, is het aantal zoekopdrachten dat tegelijkertijd op het account draait: `concurrency_limit` in `GET /credits` geeft het cijfer.

---

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.
