• Erste Schritte
  • Schnellstart
  • Informationen
  • Anrufbegrenzung
  • Google-Versionen
  • Liste der Versionen
  • SERPS
  • Google-Suchanfragen
  • Google Maps-Anfragen
  • IDs der Anfragen
  • SERPs abrufen
  • URL-Callback
  • Status der SERPs-Bearbeitung
  • Anfrageverlauf
  • Rechnungsstellung
  • Verbleibender Kredit
  • Zahlungsmittel

Dokumentation der Semscraper API

Schnellstart

In drei Schritten zu Ihrer ersten Google-SERP als JSON.

  1. Erstellen Sie Ihr Konto: 1.000 SERPs sind kostenlos, ohne Kreditkarte. Kopieren Sie dann Ihren Schlüssel im Menü API-Schlüssel Ihres Kontos. Er wird bei jedem Aufruf im Header Authorization: Bearer gesendet. Kostenloses Konto erstellen
  2. Senden Sie Ihre Keywords mit POST /v1/serp, bis zu 1.000 pro Aufruf. Die Antwort enthält die ID und die Kosten jeder SERP: Nur in diesem Moment wird abgerechnet.
    Ein Keyword senden
    curl -X POST https://api.semscraper.com/v1/serp \
      -H "Authorization: Bearer IHR_API_SCHLUESSEL" \
      -H "Content-Type: application/json" \
      -d '[{"search_engine": "google_search", "keyword": "pfannkuchen rezept", "device": "desktop", "location": "de", "language": "de", "depth": 1}]'
  3. Rufen Sie das Ergebnis mit GET /v1/serp und der erhaltenen ID ab: Ersetzen Sie SERP_ID durch den Wert des Felds data[0].id aus dem vorherigen Schritt.Die Erfassung ist asynchron: Solange der Status pending oder processing ist, versuchen Sie es etwas später erneut. Der Abruf wird nie berechnet.
    Die SERP abrufen
    curl "https://api.semscraper.com/v1/serp?ids=SERP_ID&output=json" \
      -H "Authorization: Bearer IHR_API_SCHLUESSEL"

Um benachrichtigt zu werden, ohne die API abzufragen, fügen Sie Ihren Anfragen eine callback_url hinzu. Für Hunderttausende Keywords nutzen Sie die Bulk SERP API.

Informationen

Anrufbegrenzung

Begrenzung der Anzahl der API-Aufrufe
GET : 500 Aufrufe pro Minute
POST : 500 Aufrufe pro Minute

Google-Versionen

Liste der Versionen

Ermöglicht das Abrufen der Parameter location und language, die zum Abrufen von Google SERPs erforderlich sind.
get
https://api.semscraper.com/v1/serp/google/location
Berechtigungen : Bearer {api_key}
  • Abfrage
  • Erfolgreiche Antwort
Status: 200 OK
{
    "status": "success",
    "request_ms": 17,
    "count": 372,
    "data": [
        {
            "location": "en",
            "language": "en",
            "host": "google.com",
            "name": "World Wide Web"
        },
        {
            "location": "fr",
            "language": "fr",
            "host": "google.fr",
            "name": "France"
        }
}

SERPs

Google-Suchanfragen

Erstellen von SERPs Google-Suchanfragen
Die Daten müssen in einem JSON-Array gesendet werden. Jedes Element muss die folgenden Felder enthalten.
Grenze
Das JSON-Array kann 1000 Elemente enthalten, sodass Sie mit einem einzigen Aufruf 1000 SERP-Scraps erstellen können.
post
https://api.semscraper.com/v1/serp
Berechtigungen : Bearer {api_key}
Einstellungen
search_engine
Erforderlich
string
Auswahl der Suchmaschine :
Google Suche (Wert: google_search)
keyword
Erforderlich
string
Schlüsselwörter, nach denen in der Suchmaschine gesucht werden soll
device
Erforderlich
string
Gerät:
Computer (Wert: Desktop)
Mobil (Wert: mobil)
depth
Erforderlich
integer
Seitentiefe, wir holen uns die Google SERPs mit Paginierung. Diese Einstellung muss zwischen 1 (ca. 10 Ergebnisse) und 10 (ca. 100 Ergebnisse) liegen.
location
Erforderlich
string
Lokalisierungscode der Suchmaschine
language
Erforderlich
string
Sprache der Suchmaschine
geolocation
string
Geolokalisiert eine Google-SERP. Geben Sie Stadt, Region und Land durch Kommas getrennt an (z. B. Nice, Alpes-Maritimes, France) oder eine GPS-Position als Breitengrad,Längengrad in Dezimalgrad (z. B. 43.7102,7.2620).
priority
integer
Ermöglicht die Priorisierung Ihrer Anfragen, sie werden mit abnehmender Priorität bearbeitet. Wert zwischen 1 (low) und 10 (high).
callback_url
string
Hiermit können Sie eine URL angeben, an die wir Ihnen die Ergebnisse des Suchbegriffs senden, sobald dieser bearbeitet wurde.
Typen der Ergebnisblöcke
Mögliche Werte des Feldes type. Ein Block ist nur dann in der Antwort enthalten, wenn Google ihn für das angefragte Keyword anzeigt.
Ergebnisse und Anzeigen
organic
Organisches Ergebnis
Klassisches organisches Suchergebnis.
sitelinks
Sitelinks
Untergeordneter Link, der zu einem organischen Ergebnis gehört.
paid_top
Anzeige oben
Bezahlte Anzeige über den organischen Ergebnissen.
paid_bottom
Anzeige unten
Bezahlte Anzeige unter den organischen Ergebnissen.
Erweiterte Blöcke
featured_snippet
Featured Snippet
Hervorgehobenes Snippet über den organischen Ergebnissen.
knowledge_graph
Knowledge Panel
Element aus dem rechts in der SERP angezeigten Panel.
images
Bilder
Vorschaubild aus dem Bilderblock.
videos
Videos
Video aus dem Videoblock.
top_stories
Top-Meldungen
Artikel aus dem Block „Top-Meldungen“.
shopping
Shopping
Produkt aus dem Google-Shopping-Karussell.
recipes
Rezepte
Rezept aus dem Rezeptblock.
local_pack
Local Pack
Unternehmen aus dem Local Pack, stammt aus Google Maps.
visual_digest
Visuelle Übersicht
Element aus der von Google generierten visuellen Übersicht.
Vorschläge und weiterführende Suchen
people_also_ask
Ähnliche Fragen
Frage aus dem Block „Ähnliche Fragen“.
related_searches
Ähnliche Suchanfragen
Ähnliche Suchanfrage, die unten auf der Seite vorgeschlagen wird.
find_results_on
Ergebnisse finden auf
Link aus dem Block „Ergebnisse finden auf“.
location_sites
Standortbezogene Websites
Website, die in einem standortbezogenen Block aufgeführt ist.
AI Overview
ai_overview_citation
Zitat
Im KI-generierten Text zitierte Marke.
ai_overview_citation_source
Zitatquelle
Quelle eines Zitats, sichtbar beim Überfahren des Zitats mit der Maus.
ai_overview_panel
Quellenbereich
Website, die im seitlichen Quellenbereich aufgeführt ist.
  • Abfrage
  • Erfolgreiche Antwort
  • Fehlerantwort
Status: 200 OK
{
    "status": "success",
    "request_ms": 40,
    "count": 1,
    "currency": "EUR",
    "total_cost": 0.0003,
    "data": [
        {
            "id": "SERP_ID",
            "status": "pending",
            "keyword": "example keyword",
            "device": "mobile",
            "location": "fr",
            "language": "fr",
            "depth": 1,
            "geolocation": false,
            "priority": 1,
            "callback_url": null,
            "cost": 0.0003,
            "_links": {
                "json": {
                    "href": "/serp?ids=SERP_ID&output=json",
                    "method": "GET",
                    "type": "application/json"
                },
                "html": {
                    "href": "/serp?ids=SERP_ID&output=html",
                    "method": "GET",
                    "type": "application/json"
                }
            }
        }
    ]
}
Status: 400 Bad Request
{
    "error": "Bad Request",
    "message": "DESCRIPTION_OF_ERROR",
    "code": 400
}

Google Maps-Anfragen

Erstellen von Google Maps SERP-Abfragen
Die Daten müssen in einem JSON-Array gesendet werden. Jedes Element muss die folgenden Felder enthalten.
Grenze
Das JSON-Array kann 1000 Elemente enthalten, sodass Sie mit einem einzigen Aufruf 1000 SERP-Scraps erstellen können.
post
https://api.semscraper.com/v1/serp
Berechtigungen : Bearer {api_key}
Einstellungen
search_engine
Erforderlich
string
Auswahl der Suchmaschine :
Google Maps (Wert: google_maps)
keyword
Erforderlich
string
Schlüsselwörter, nach denen in der Suchmaschine gesucht werden soll
depth
Erforderlich
integer
Seitentiefe, wir holen uns die Google SERPs mit Paginierung. Diese Einstellung muss zwischen 1 (ca. 10 Ergebnisse) und 10 (ca. 100 Ergebnisse) liegen.
location
Erforderlich
string
Lokalisierungscode der Suchmaschine
language
Erforderlich
string
Sprache der Suchmaschine
geolocation
string
Geolokalisiert eine Google-SERP. Geben Sie Stadt, Region und Land durch Kommas getrennt an (z. B. Nice, Alpes-Maritimes, France) oder eine GPS-Position als Breitengrad,Längengrad in Dezimalgrad (z. B. 43.7102,7.2620). Bei einer GPS-Position können Sie optional eine Zoomstufe angeben (z. B. 43.7102,7.2620,16z).
priority
integer
Ermöglicht die Priorisierung Ihrer Anfragen, sie werden mit abnehmender Priorität bearbeitet. Wert zwischen 1 (low) und 10 (high).
callback_url
string
Hiermit können Sie eine URL angeben, an die wir Ihnen die Ergebnisse des Suchbegriffs senden, sobald dieser bearbeitet wurde.
  • Abfrage
  • Erfolgreiche Antwort
  • Fehlerantwort
Status: 200 OK
{
    "status": "success",
    "request_ms": 40,
    "count": 1,
    "currency": "EUR",
    "total_cost": 0.0003,
    "data": [
        {
            "id": "SERP_ID",
            "status": "pending",
            "keyword": "example keyword",
            "device": "mobile",
            "location": "fr",
            "language": "fr",
            "depth": 1,
            "geolocation": false,
            "priority": 1,
            "callback_url": null,
            "cost": 0.0003,
            "_links": {
                "json": {
                    "href": "/serp?ids=SERP_ID&output=json",
                    "method": "GET",
                    "type": "application/json"
                },
                "html": {
                    "href": "/serp?ids=SERP_ID&output=html",
                    "method": "GET",
                    "type": "application/json"
                }
            }
        }
    ]
}
Status: 400 Bad Request
{
    "error": "Bad Request",
    "message": "DESCRIPTION_OF_ERROR",
    "code": 400
}

IDs der Anfragen

Liste der Identifikatoren (IDs) von abgeschlossenen SERPs, die Sie noch nicht abgerufen haben.
Mit dieser Methode erhalten Sie die IDs aller SERPs, die bereits verarbeitet, aber noch nie abgerufen wurden. Anschließend können Sie mithilfe dieser IDs die Methode zum Abrufen der SERPs aufrufen.
get
https://api.semscraper.com/v1/serp
Berechtigungen : Bearer {api_key}
  • Abfrage
  • Erfolgreiche Antwort
Status: 200 OK
{
    "status": "success",
    "request_ms": 40,
    "count": 2,
    "data": [
        {
            "id": "SERP_ID",
            "status": "done",
            "keyword": "example keyword",
            "device": "desktop",
            "location": "fr",
            "language": "fr",
            "depth": 5,
            "geolocation": false,
            "callback_url": "",
            "cost": 0.0011,
            "_links": {
                "json": {
                    "href": "/serp?ids=SERP_ID&output=json",
                    "method": "GET",
                    "type": "application/json"
                },
                "html": {
                    "href": "/serp?ids=SERP_ID&output=html",
                    "method": "GET",
                    "type": "application/json"
                }
            }
        },
        {
            "id": "SERP_ID",
            "status": "done",
            "keyword": "example keyword",
            "device": "mobile",
            "location": "fr",
            "language": "fr",
            "depth": 5,
            "geolocation": false,
            "callback_url": "",
            "cost": 0.0011,
            "_links": {
                "json": {
                    "href": "/serp?ids=SERP_ID&output=json",
                    "method": "GET",
                    "type": "application/json"
                },
                "html": {
                    "href": "/serp?ids=SERP_ID&output=html",
                    "method": "GET",
                    "type": "application/json"
                }
            }
        }
    ]
}

SERPs abrufen

Google SERPs über ihre IDs abrufen
Mehrere SERPs in einem Aufruf abrufen (im JSON- oder HTML-Format), indem Sie mehrere kommagetrennte IDs angeben.
Grenze
Sie können maximal 100 IDs angeben, so dass Sie mit einem einzigen Aufruf 100 SERPs abrufen können.
get
https://api.semscraper.com/v1/serp?ids=id1,id2&output=json
Berechtigungen : Bearer {api_key}
Einstellungen
ids
Erforderlich
string
Liste der IDs, die durch ein Komma getrennt sind.
output
Erforderlich
string
Wahl des Ausgabeformats :
JSON (Wert: json)
HTML (Wert: html)
Ergebnisformat
  • Google Search
  • Google Maps
type
string
Art des Ergebnisblocks (organisch, Videos, Bilder, „People also ask“, „Local Pack“...)
rank_type
integer
Position des Elements innerhalb seines eigenen Blocktyps (z. B.: 3. organisches Ergebnis = 3)
rank_serp
integer
Absolute Position in der gesamten SERP, alle Blöcke zusammengenommen, basierend auf der tatsächlichen vertikalen Position auf der Seite (in Pixeln)
page
integer
Seitennummer der SERP, auf der das Element erscheint
pixel
integer
Vertikale Position des Elements auf der Seite, in Pixeln vom oberen Rand aus gemessen
domain
string
URL-Domäne
url
string
URL des Ergebnisses
title
string
Angezeigter Titel des Ergebnisses
description
string
Beschreibung / angezeigter Auszug aus dem Ergebnis
brand
string
Zitierte Marke oder Bezeichnung der Quelle, wie Google sie anzeigt. Nur bei den Blöcken ai_overview_citation, ai_overview_citation_source und ai_overview_panel. Bei einem Zitat ist die URL oft leer, sodass die Marke die einzige Information des Elements ist.
visible
boolean
Gibt an, ob das Element sofort im AI Overview angezeigt wird (true) oder erst nach dem Aufklappen (false). Nur bei AI-Overview-Blöcken. Bei ai_overview_citation_source immer false, da es erst beim Überfahren eines Zitats mit der Maus erscheint.
rating
float
Von Google angezeigte Durchschnittsbewertung (z. B. 4.1). Nur bei den Blöcken organic und local_pack, null, wenn das Ergebnis keine Sterne anzeigt.
reviews
integer
Anzahl der Bewertungen, aus denen sich die Durchschnittsnote ergibt. Nur bei den Blöcken organic und local_pack, null, wenn das Ergebnis keine Sterne anzeigt.
price_range
string
Preisspanne des Unternehmens, wie Google sie anzeigt (z. B. „20–30 €“). Nur beim Block local_pack, null, wenn nicht vorhanden.
details
array
Unter dem Unternehmen angezeigte Informationen, in der Reihenfolge und Sprache von Google: Preis, Kategorie, Adresse, Öffnungszeiten, Services… Nur beim Block local_pack. Weder die Reihenfolge noch das Vorhandensein der einzelnen Informationen ist garantiert.
serp_info.ai_overview
object
AI Overview der SERP, im Objekt serp_info (nicht in results). Enthält type, text und complete.
serp_info.ai_overview.type
string
Art der Anzeige des AI Overview: sync (sofort beim Laden in der Seite enthalten), async (von Google nach dem Laden der Seite in Echtzeit generiert) oder none (kein AI Overview).
serp_info.ai_overview.text
string
Von der KI generierter Text als reiner Text (ohne Formatierung und Links). null, wenn die SERP kein AI Overview enthält oder der Text nicht gelesen werden konnte.
serp_info.ai_overview.complete
boolean
True, wenn die Generierung des AI Overview zum Zeitpunkt der Erfassung abgeschlossen war. false, wenn der Text fehlt oder unvollständig sein kann.
rank_type
integer
Position des Elements innerhalb seines eigenen Blocktyps (z. B.: 3. organisches Ergebnis = 3)
rank_serp
integer
Absolute Position in der gesamten SERP, alle Blöcke zusammengenommen, basierend auf der tatsächlichen vertikalen Position auf der Seite (in Pixeln)
page
integer
Seitennummer der SERP, auf der das Element erscheint
pixel
integer
Vertikale Position des Elements auf der Seite, in Pixeln vom oberen Rand aus gemessen
title
string
Angezeigter Titel des Ergebnisses
cid
string
Google-ID (CID) des Eintrags zur Einrichtung
reviews
integer
Anzahl der Bewertungen
rating
float
Durchschnittliche Bewertung auf einer Skala von 5
website
string
Website der Einrichtung
type
string
Art des Betriebs (z. B.: Restaurant)
address
string
Postanschrift
status_label
string
Öffnungsstatus (z. B.: Geöffnet, Geschlossen)
status_detail
string
Statusdetails (z. B. Arbeitszeiten)
comment
string
Kommentar / angezeigter Auszug
images
array
Liste der Bilder in diesem Eintrag
  • Abfrage
  • Erfolgreiche Antwort
  • Fehlerantwort
Status: 200 OK
{
    "status": "success",
    "request_ms": 41,
    "count": 1,
    "data": [
        {
            "id": "SERP_ID",
            "status": "done",
            "keyword": "example keyword",
            "device": "desktop",
            "location": "fr",
            "language": "fr",
            "depth": 1,
            "geolocation": false,
            "priority": 1,
            "callback_url": "",
            "cost": 0.0003,
            "created_at": "2025-09-10T12:32:56Z",
            "scraped_at": "2025-09-10T12:33:02Z",
            "duration_ms": 5403,
            "serp_info": {
                "result_count": 1500000000,
                "ai_overview": {
                    "type": "async",
                    "text": "A keyword is a word or phrase that users type into a search engine to find information...",
                    "complete": true
                }
            },
            "results": [
                {
                    "type": "people_also_ask",
                    "items": [
                        {
                            "rank_type": 1,
                            "rank_serp": 4,
                            "page": 1,
                            "pixel": 806,
                            "domain": "guides.lib.uh.edu",
                            "url": "https://guides.lib.uh.edu/c.php?g\\x3d1249281",
                            "title": "What is a keyword example?",
                            "description": ""
                        },
                        {
                            "rank_type": 2,
                            "rank_serp": 5,
                            "page": 1,
                            "pixel": 858,
                            "domain": "toolsqa.com",
                            "url": "https://toolsqa.com/cucumber/data-driven-testing-using-examples-keyword/",
                            "title": "What is the example keyword used for?",
                            "description": ""
                        },
                        {
                            "rank_type": 3,
                            "rank_serp": 6,
                            "page": 1,
                            "pixel": 911,
                            "domain": "www.editage.com",
                            "url": "https://www.editage.com/insights/how-to-create-keywords-for-a-research-paper",
                            "title": "How do you write keywords examples?",
                            "description": ""
                        },
                        {
                            "rank_type": 4,
                            "rank_serp": 7,
                            "page": 1,
                            "pixel": 964,
                            "domain": "libguides.lvc.edu",
                            "url": "https://libguides.lvc.edu/c.php?g\\x3d1152118\\x26ampp\\x3d8409030",
                            "title": "What is an example of a keyword search?",
                            "description": ""
                        }
                    ]
                },
                {
                    "type": "videos",
                    "items": [
                        {
                            "rank_type": 1,
                            "rank_serp": 1,
                            "page": 1,
                            "pixel": 223,
                            "domain": "www.youtube.com",
                            "url": "https://www.youtube.com/watch?v=H-B5oFJjL8I",
                            "title": "What are Keywords and How to Choose Them? 1.1. SEO ...",
                            "description": ""
                        },
                        {
                            "rank_type": 2,
                            "rank_serp": 2,
                            "page": 1,
                            "pixel": 374,
                            "domain": "www.youtube.com",
                            "url": "https://www.youtube.com/watch?v=TTlEVVB75wo&pp=2AEAkAIB",
                            "title": "What Are Keywords? Everything You Need To Know (and more)",
                            "description": ""
                        },
                        {
                            "rank_type": 3,
                            "rank_serp": 3,
                            "page": 1,
                            "pixel": 526,
                            "domain": "www.youtube.com",
                            "url": "https://www.youtube.com/watch?v=OMJQPqG2Uas",
                            "title": "Keyword Research Tutorial: From Start to Finish",
                            "description": ""
                        }
                    ]
                },
                {
                    "type": "organic",
                    "items": [
                        {
                            "rank_type": 1,
                            "rank_serp": 8,
                            "page": 1,
                            "pixel": 1077,
                            "domain": "www.seoquantum.com",
                            "url": "https://www.seoquantum.com/en/blog/6-types-keywords-organic-seo",
                            "title": "The 6 Types of Keywords in Organic SEO",
                            "description": "2 mars 2024 — I will introduce you to 6 types of keywords that you absolutely need to know. We will start with the most common ones such as long-tail keywords and then move ...",
                            "rating": null,
                            "reviews": null
                        },
                        {
                            "rank_type": 2,
                            "rank_serp": 9,
                            "page": 1,
                            "pixel": 1223,
                            "domain": "storychief.io",
                            "url": "https://storychief.io/blog/seo-keyword-research-examples",
                            "title": "10 Clever SEO Keyword Research Examples",
                            "description": "Let's say you run a food blog. Some potential SEO keywords could be: quick weeknight dinners easy dinner recipes 30 minute meals one pot dinners",
                            "rating": null,
                            "reviews": null
                        },
                        {
                            "rank_type": 3,
                            "rank_serp": 10,
                            "page": 1,
                            "pixel": 1369,
                            "domain": "www.indeed.com",
                            "url": "https://www.indeed.com/career-advice/career-development/types-of-keywords",
                            "title": "19 Types of Keywords",
                            "description": "6 juin 2025 — 19 types of keywords and how to use them for marketing · 1. Market segment keywords · 2. Customer-defining keywords · 3. Product-defining ...",
                            "rating": null,
                            "reviews": null
                        },
                        {
                            "rank_type": 4,
                            "rank_serp": 11,
                            "page": 1,
                            "pixel": 1515,
                            "domain": "www.usg.edu",
                            "url": "https://www.usg.edu/galileo/skills/unit04/primer04_07.phtml",
                            "title": "Keyword Search",
                            "description": "In this case, the phrase alternative fuels and automobiles are the significant keywords.",
                            "rating": null,
                            "reviews": null
                        },
                        {
                            "rank_type": 5,
                            "rank_serp": 12,
                            "page": 1,
                            "pixel": 1639,
                            "domain": "guides.lib.uh.edu",
                            "url": "https://guides.lib.uh.edu/c.php?g=1249281",
                            "title": "What are keywords and why are they important? - Guides",
                            "description": "You probably used the title of the film and the word “showtimes” as your keywords to bring up the results you needed. Keywords in academic research are similar.",
                            "rating": null,
                            "reviews": null
                        },
                        {
                            "rank_type": 6,
                            "rank_serp": 13,
                            "page": 1,
                            "pixel": 1785,
                            "domain": "www.tactee.fr",
                            "url": "https://www.tactee.fr/seo/strategie-seo/keyword-seo/",
                            "title": "Qu'est ce qu'un keyword SEO ? [Définition & conseil]",
                            "description": "13 juil. 2024 — Commerciale : l'utilisateur compare des produits ou des services, par exemple « meilleur smartphone 2024 ». Identifier l'intention de recherche ...",
                            "rating": null,
                            "reviews": null
                        },
                        {
                            "rank_type": 7,
                            "rank_serp": 14,
                            "page": 1,
                            "pixel": 1931,
                            "domain": "backlinko.com",
                            "url": "https://backlinko.com/types-of-keywords",
                            "title": "10 Types of Keywords with Examples (+ How to Find Them)",
                            "description": "15 mai 2025 — 10 Types of Keywords with Examples (+ How to Find Them) · 1. Seed Keywords · 2. Informational Keywords · 3. Commercial Keywords · 4.",
                            "rating": null,
                            "reviews": null
                        },
                        {
                            "rank_type": 8,
                            "rank_serp": 15,
                            "page": 1,
                            "pixel": 2077,
                            "domain": "learn.microsoft.com",
                            "url": "https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/",
                            "title": "C# Keywords and contextual keywords - C# reference",
                            "description": "17 avr. 2025 — For example, @if is a valid identifier, but if isn't because if is a keyword. The first table in this article lists keywords that are ...",
                            "rating": null,
                            "reviews": null
                        }
                    ]
                },
                {
                    "type": "local_pack",
                    "items": [
                        {
                            "rank_type": 1,
                            "rank_serp": 19,
                            "page": 1,
                            "pixel": 2520,
                            "domain": "lebistrotm.fr",
                            "url": "https://lebistrotm.fr/",
                            "title": "Le Bistrot M",
                            "description": "",
                            "rating": 4.6,
                            "reviews": 220,
                            "price_range": "20–30 €",
                            "details": [
                                "20–30 €",
                                "Restaurant",
                                "1 Pl. Xavier Taillade",
                                "Fermé",
                                "Ouvre à 18:30",
                                "Repas sur place",
                                "Aucun plat à emporter",
                                "Pas de livraison"
                            ]
                        },
                        {
                            "rank_type": 2,
                            "rank_serp": 20,
                            "page": 1,
                            "pixel": 2661,
                            "domain": "www.domainedesoliviers.fr",
                            "url": "http://www.domainedesoliviers.fr/",
                            "title": "Domaine des Oliviers",
                            "description": "",
                            "rating": 4.5,
                            "reviews": 1600,
                            "price_range": null,
                            "details": [
                                "Française",
                                "4 All. Paul Emile d'Allard",
                                "Fermé",
                                "Ouvre à 19:00",
                                "Hôtel discret avec piscine et restaurant"
                            ]
                        }
                    ]
                },
                {
                    "type": "images",
                    "items": [
                        {
                            "rank_type": 1,
                            "rank_serp": 16,
                            "page": 1,
                            "pixel": 2311,
                            "domain": "searchfacts.com",
                            "url": "https://searchfacts.com/what-are-keywords-in-seo/",
                            "title": "",
                            "description": ""
                        },
                        {
                            "rank_type": 2,
                            "rank_serp": 17,
                            "page": 1,
                            "pixel": 2311,
                            "domain": "backlinko.com",
                            "url": "https://backlinko.com/hub/seo/seo-keywords",
                            "title": "",
                            "description": ""
                        },
                        {
                            "rank_type": 3,
                            "rank_serp": 18,
                            "page": 1,
                            "pixel": 2311,
                            "domain": "ahrefs.com",
                            "url": "https://ahrefs.com/blog/what-are-keywords/",
                            "title": "",
                            "description": ""
                        }
                    ]
                }
            ]
        }
    ]
}
Status: 400 Bad Request
{
    "error": "InvalidParameter",
    "message": "DESCRIPTION_OF_ERROR",
    "code": 400
}

URL-Callback

SERPs über eine Callback-URL abrufen
Sie können das Ergebnis einer SERP direkt auf einer URL erhalten, die Sie uns bei der Erstellung einer Abfrage angeben. Sie müssen nur den HMAC-Schlüssel abrufen, der mit dem verwendeten API-Schlüssel verknüpft ist.
  • Code
  • PHP
  • Python
  • Javascript
  • Ruby
  • Java
  • C#
  • GO
// 1) Read the raw body (JSON)
$raw = file_get_contents('php://input');

// 2) Retrieve the headers
$headers = function_exists('getallheaders') ? getallheaders() : [];
$signature = $headers['X-Signature'] ?? '';

// 3) (Optional) Verify the HMAC signature
$sharedSecret = 'HMAC_KEY';
$expected = hash_hmac('sha256', $raw, $sharedSecret);
if (!hash_equals($expected, $signature)) {
    http_response_code(401);
    header('Content-Type: text/plain; charset=utf-8');
    echo 'Invalid signature';
    exit;
}

// 4) Decode the JSON
$data = json_decode($raw, true);

if (json_last_error() !== JSON_ERROR_NONE) {
    http_response_code(400);
    header('Content-Type: text/plain; charset=utf-8');
    echo 'Invalid JSON';
    exit;
}

// 5) Process the data: a list holding the finished SERP
foreach ($data as $serp) {
    // $serp['id'], $serp['keyword'], $serp['results']...
}

// 6) Respond in JSON (optional, we log these responses for tracking purposes)
http_response_code(200);
header('Content-Type: application/json; charset=utf-8');
echo json_encode([
    'status' => 'ok',
    'received_at' => gmdate('c'),
    'echo' => array_column($data, 'id')
]);

Status der SERPs-Bearbeitung

Stand der Dinge bei der Behandlung von SERPs
Ermöglicht es, die Anzahl der SERPs nach ihrem Status zu sehen :
Beendet und Ergebnisse vom Benutzer abgerufen (status=done, fetched=true)
Beendet und Ergebnisse nicht vom Benutzer abgerufen (status=done, fetched=false)
Wird verarbeitet (status=processing)
In der Warteschleife (status=pending)
get
https://api.semscraper.com/v1/serp/status
Berechtigungen : Bearer {api_key}
  • Abfrage
  • Erfolgreiche Antwort
Status: 200 OK
{
    "status": "success",
    "request_ms": 54,
    "count": 4,
    "data": [
        {
            "status": "done",
            "fetched": true,
            "count": 5
        },
        {
            "status": "done",
            "fetched": false,
            "count": 1000
        },
        {
            "status": "processing",
            "count": 0
        },
        {
            "status": "pending",
            "count": 0
        }
    ]
}

Anfrageverlauf

Listet Ihre Anfragen auf, die neuesten zuerst, mit ihrer Konfiguration (Keyword, Suchmaschine, Gerät, Standort, Sprache, Tiefe…) und ihrem Status, ohne das SERP-Ergebnis.
Alle Anfragen des Kontos werden zurückgegeben, unabhängig von ihrem Status und davon, ob sie bereits abgerufen wurden. Dieser Aufruf markiert sie nicht als abgerufen.

Zum Paginieren rufen Sie den Endpunkt erneut auf und setzen den Parameter cursor auf den Wert next_cursor der vorherigen Antwort, solange has_more true ist. Der Link _links.next enthält die fertige URL. Um das Ergebnis einer Anfrage zu erhalten, verwenden Sie deren Link _links.json oder _links.html.
Grenze
10.000 Anfragen pro Aufruf
get
https://api.semscraper.com/v1/serp/list?date=2026-10-10&limit=1000
Berechtigungen : Bearer {api_key}
Einstellungen
date
string
Erstellungstag der Anfragen im Format YYYY-MM-DD (z. B. 2026-10-04). Ohne diesen Parameter werden alle Daten zurückgegeben.
status
string
Filter nach Status: pending, processing oder done. Ohne diesen Parameter werden alle Status zurückgegeben.
limit
integer
Anzahl der Anfragen pro Seite, von 1 bis 10.000. Standardwert: 1.000.
cursor
string
Paginierungs-Cursor: der Wert next_cursor der vorherigen Antwort. Für die erste Seite weglassen.
  • Abfrage
  • Erfolgreiche Antwort
  • Fehlerantwort
Status: 200 OK
{
    "status": "success",
    "request_ms": 38,
    "count": 2,
    "has_more": true,
    "next_cursor": "MTI4NDU2Nzg5",
    "data": [
        {
            "id": "SERP_ID",
            "search_engine": "google_search",
            "keyword": "example keyword",
            "device": "desktop",
            "location": "fr",
            "language": "fr",
            "depth": 1,
            "geolocation": null,
            "priority": 1,
            "callback_url": null,
            "status": "done",
            "fetched": false,
            "cost": 0.0003,
            "created_at": "2026-10-04 09:12:45",
            "updated_at": "2026-10-04 09:12:58",
            "_links": {
                "json": {
                    "href": "/v1/serp?ids=SERP_ID&output=json",
                    "method": "GET",
                    "type": "application/json"
                },
                "html": {
                    "href": "/v1/serp?ids=SERP_ID&output=html",
                    "method": "GET",
                    "type": "application/json"
                }
            }
        },
        {
            "id": "SERP_ID",
            "search_engine": "google_maps",
            "keyword": "example keyword",
            "device": null,
            "location": "fr",
            "language": "fr",
            "depth": 1,
            "geolocation": "Nice, Alpes-Maritimes, France",
            "priority": 1,
            "callback_url": "https://example.com/callback",
            "status": "pending",
            "fetched": false,
            "cost": 0.0003,
            "created_at": "2026-10-04 09:12:44",
            "updated_at": null,
            "_links": {
                "json": {
                    "href": "/v1/serp?ids=SERP_ID&output=json",
                    "method": "GET",
                    "type": "application/json"
                },
                "html": {
                    "href": "/v1/serp?ids=SERP_ID&output=html",
                    "method": "GET",
                    "type": "application/json"
                }
            }
        }
    ],
    "_links": {
        "next": {
            "href": "/v1/serp/list?date=2026-10-04&limit=1000&cursor=MTI4NDU2Nzg5",
            "method": "GET",
            "type": "application/json"
        }
    }
}
Status: 400 Bad Request
{
    "error": "InvalidParameter",
    "message": "Invalid format for parameter: date",
    "code": 400
}

Rechnungsstellung

Verbleibender Kredit

Ruft den Betrag des Restkredits ab
get
https://api.semscraper.com/v1/billing/credit
Berechtigungen : Bearer {api_key}
  • Abfrage
  • Erfolgreiche Antwort
Status: 200 OK
{
    "status": "success",
    "request_ms": 21,
    "count": 1,
    "data": [
        {
            "balance": 100.50
        }
    ]
}

Zahlungsmittel

Verfügbare Zahlungsmethoden
get
https://api.semscraper.com/v1/billing/payment_methods
Berechtigungen : Bearer {api_key}
  • Abfrage
  • Erfolgreiche Antwort
Status: 200 OK
{
    "status": "success",
    "request_ms": 43,
    "count": 3,
    "data": [
        {
            "id": 1,
            "name": "Perso",
            "num": "-4242",
            "expiration": "1226",
            "type": "Visa",
            "master": false
        },
        {
            "id": 30,
            "name": "Pro",
            "num": "-4444",
            "expiration": "1227",
            "type": "Mastercard",
            "master": true
        }
    ]
}