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. |
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
{
"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
}
}Codevoorbeelden
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=desktopimport 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"])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
{
"credits_remaining": 84210,
"credits_used_today": 1290,
"concurrency_limit": 10
}Codevoorbeelden
curl -s "https://serpcrypto.com/api/v1/credits" \
-H "Authorization: Bearer $SERPCRYPTO_API_KEY"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"])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 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.
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; 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.