Kurze Antwort
Welche Parameter akzeptiert der SerpCrypto-Suchendpoint?
GET https://serpcrypto.com/api/v1/search nimmt einen erforderlichen Parameter, q, und neun optionale: engine, gl, hl, location, google_domain, device, page, safe und period. SerpCrypto liefert JSON und berechnet 1 Credit pro erfolgreicher Suche auf allen 6 Engines; Fehler sind kostenlos. Packs gibt es ab 7,50 $ für 10.000 Suchanfragen, mit Krypto bezahlt, ohne KYC.
Wie authentifiziere ich mich?
Senden Sie Ihren API-Schlüssel auf einem von zwei Wegen. Der empfohlene Weg ist der Header Authorization: Bearer YOUR_KEY. Der andere ist der Query-Parameter api_key=YOUR_KEY, praktisch für einen schnellen Test in einem Browser-Tab.
Ein fehlender, falscher oder widerrufener Schlüssel führt zu 401 invalid_api_key und kostet nichts. API-Schlüssel, die Sie jederzeit in Ihrem Dashboard erstellen und widerrufen können, sodass Sie jedem Skript oder Server seinen eigenen Schlüssel geben und einen widerrufen können, ohne die anderen anzutasten.
Eine Suche ausführen
GET/api/v1/search
Führt eine Suche auf der gewählten Engine aus und gibt die Ergebnisseite als JSON zurück. Eine erfolgreiche Suche verbraucht 1 Credit, unabhängig von der Engine; ein Fehler verbraucht keinen. Parameter stehen im Query-String, URL-kodiert. Das Beispiel fragt Google nach Coffee Roasters in Austin, Texas; IDs, Anzahlen und Ergebnisse sind illustrativ.
Authentifizierung: API-Schlüssel im Header Authorization: Bearer API_KEY.
Parameter
| Name | In | Typ | Erforderlich | Beschreibung |
|---|---|---|---|---|
q | query | string | Ja | Die Suchanfrage, so wie eine Person sie eintippen würde. Suchoperatoren wie Anführungszeichen oder site: sind Teil der Suchanfrage. |
engine | query | string | Nein | google (Standard), google_news, google_images, google_maps, google_shopping oder bing. |
gl | query | string | Nein | Land der Ergebnisse: ISO 3166-1 alpha-2-Code in Kleinschreibung, etwa us, de oder br. Standard us. |
hl | query | string | Nein | Sprache der Oberfläche, etwa en, de oder pt-BR. Standard en. |
location | query | string | Nein | Ort auf Stadtebene, geschrieben City, Region, Country, etwa Austin, Texas, United States. Siehe Orte. |
google_domain | query | string | Nein | Google-Domain für die Suche, zum Beispiel google.de. Standard: die Domain des Landes gl. Wird ignoriert, wenn engine=bing. |
device | query | string | Nein | desktop (Standard) oder mobile. |
page | query | integer | Nein | Ergebnisseite von 1 (Standard) bis 10. Jede Seite ist eine separate Suchanfrage und verbraucht 1 Credit. |
safe | query | string | Nein | active filtert explizite Ergebnisse heraus; off (Standard) nicht. |
period | query | string | Nein | Nur Ergebnisse der letzten Stunde (h), des letzten Tages (d), der letzten Woche (w), des letzten Monats (m) oder des letzten Jahres (y). |
api_key | query | string | Nein | Ihr API-Schlüssel, wenn Sie den Header Authorization nicht senden. |
Antwort 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
}
}Codebeispiele
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);Welche Engine-Werte gibt es, und was liefert jeder zurück?
Der Frame (search_metadata, search_parameters, search_information) ist auf jeder Engine gleich. Ein Block erscheint nur, wenn die Seite ihn zeigt.
engine | Quelle | Hauptblöcke in der Antwort |
|---|---|---|
google | Google Search | 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, Quelle, Datum, Snippet, Thumbnail |
google_images | Google Images | images_results: Original-URL und Größe, Thumbnail, Quellseite |
google_maps | Google Maps | local_results: Name, Adresse, Telefon, Webseite, Bewertung, Rezensionen, Kategorie, Öffnungszeiten, Koordinaten |
google_shopping | Google Shopping | shopping_results: Titel, Preis, extrahierter Preis, Währung, Händler, Lieferung, Bewertung |
bing | Bing | organic_results, related_searches |
Ihre Credits abrufen
GET/api/v1/credits
Gibt die Credits zurück, die auf Ihrem Konto übrig sind, die seit Mitternacht UTC verbrauchten Credits und die Anzahl der Suchanfragen, die Ihr Konto gleichzeitig ausführen darf. Dieser Aufruf ist kostenlos. Die folgenden Werte sind Beispiele.
Authentifizierung: API-Schlüssel im Header Authorization: Bearer API_KEY.
Antwort 200
{
"credits_remaining": 84210,
"credits_used_today": 1290,
"concurrency_limit": 10
}Codebeispiele
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);Welche Fehler kann die API zurückgeben?
Jeder Fehler hat den Body {"error": {"code": "…", "message": "…"}}. Die Fehlerseite erklärt jeden einzelnen und zeigt den Retry-Code.
| HTTP | code | Wann er auftritt | Wird berechnet |
|---|---|---|---|
| 400 | invalid_parameter | Ein erforderlicher Parameter fehlt oder ein Wert liegt außerhalb der erlaubten Liste | Nein |
| 401 | invalid_api_key | Der Schlüssel fehlt, ist falsch oder wurde widerrufen | Nein |
| 402 | insufficient_credits | Auf Ihrem Konto sind keine Credits mehr übrig | Nein |
| 429 | concurrency_limit | Auf Ihrem Konto laufen zu viele Suchanfragen gleichzeitig | Nein |
| 502 | search_failed | Die Engine oder die Sammlung ist für diese Anfrage fehlgeschlagen; wiederholen Sie sie | Nein |
| 504 | search_timeout | Keine Antwort rechtzeitig; wiederholen Sie die Anfrage | Nein |
Was wird genau berechnet?
- Eine erfolgreiche Suchanfrage = ein Credit, auf jeder Engine, auch bei Google Maps und Google Shopping.
- Jede Ergebnisseite ist eine Suchanfrage. Etwa 10 organische Ergebnisse pro Seite, so wie Google sie liefert, seit num=100 im September 2025 nicht mehr berücksichtigt wird; jede weitere Seite kostet einen weiteren Credit.
- Fehler sind kostenlos: Jede Antwort mit einem HTTP-Status ungleich 200 verbraucht keinen Credit.
- Das Abrufen Ihrer Credits ist kostenlos.
Vorausbezahlte Such-Credits verfallen nie: ungenutzte Suchen bleiben auf Ihrem Konto, bis Sie sie verwenden. Packs reichen von 7,50 $ für 10.000 Suchanfragen bis 0,30 $/1K Suchanfragen beim größten; siehe Preise.
Wie sollte ich die Suchanfrage kodieren?
Senden Sie q URL-kodiert, wie jeden Query-String-Wert: Ein Leerzeichen wird zu %20 oder +, und Buchstaben mit Akzent werden als UTF-8 kodiert. curl macht das mit --data-urlencode, Python requests und httpx machen es mit params=, und Node.js macht es mit URLSearchParams.
Schreiben Sie die Suchanfrage genau so, wie eine Person sie ins Suchfeld eintippen würde. Anführungszeichen, ein Minuszeichen oder site: bleiben innerhalb von q; die Engine entscheidet, wie sie angewendet werden, so wie bei einem Besucher.
Ist die API versioniert?
Ja. Die Version ist Teil des Pfads: /api/v1/. In Antworten der Version 1 können neue Felder oder Blöcke erscheinen, daher sollte Ihr Code Schlüssel ignorieren, die er nicht kennt. Das Entfernen oder Umbenennen eines Feldes würde mit einer neuen Version im Pfad kommen, nicht als Änderung an v1.
Fragen zur API-Referenz
Kann ich eine POST-Anfrage mit einem JSON-Body senden?
In Version 1 nicht: Beide Endpunkte nehmen GET-Anfragen mit Parametern in der Query-String entgegen. So lässt sich jeder Aufruf leicht mit curl oder einem Browser reproduzieren und ohne Body einfach loggen.
Wie viele Ergebnisse liefert eine Suche?
Etwa 10 organische Ergebnisse pro Seite, so wie Google sie liefert, seit num=100 im September 2025 nicht mehr berücksichtigt wird; jede weitere Seite kostet einen weiteren Credit. Um 30 Ergebnisse zu sammeln, fordern Sie page=1, page=2 und page=3 an: drei Suchanfragen, drei Credits.
Was passiert, wenn meine Credits aufgebraucht sind?
Die nächste Suchanfrage gibt 402 insufficient_credits zurück und verbraucht nichts. Kaufen Sie ein weiteres Paket von Ihrem Guthaben auf der Preisseite; Ihr Schlüssel funktioniert weiter, und die Suchanfragen laufen sofort wieder.
Kann ich denselben Schlüssel von mehreren Servern aus verwenden?
Ja. Ein Schlüssel ist nicht an eine IP-Adresse gebunden. Begrenzt ist die Anzahl der gleichzeitig laufenden Suchanfragen auf dem Konto: concurrency_limit in GET /credits nennt die Zahl.