SignalSumo

API‑Referenz

Integrieren Sie SignalSumos SEO-Daten direkt in Ihre eigenen Tools, Dashboards und Workflows.

Pro Agentur API-Zugriff ist in den Pro- und Agency-Plänen verfügbar

Schnellstart

Drei Schritte zu Ihrer ersten Antwort.

1. Erstellen Sie einen API-Schlüssel

In einem Pro- oder Agency-Plan generieren Sie einen Schlüssel unter API-Schlüssel und kopieren Sie ihn – er wird nur einmal angezeigt.

2. Verifizieren Sie die Verbindung

curl -H "Authorization: Bearer ss_live_your_key_here" \
     "https://signalsumo.com/api/v1/usage"

A 200 Antwort mit Ihrem Plan und verbleibenden Aufrufen bedeutet, dass Sie verbunden sind.

3. Führen Sie Ihren ersten Datenaufruf aus

curl -X POST \
     -H "Authorization: Bearer ss_live_your_key_here" \
     -H "Content-Type: application/json" \
     -d '{"keyword":"seo audit tool","limit":5}' \
     "https://signalsumo.com/api/v1/keyword-research"
Das war's. Jeder Endpunkt verwendet das gleiche Authorization: Bearer Header und gibt das gleiche JSON‑Envelope zurück – durchsuchen Sie die untenstehenden Endpunkte nach Parametern und Antwortfeldern.

Übersicht

Alle API-Endpunkte werden bereitgestellt unter:

https://signalsumo.com/api/v1/

Anfragen und Antworten verwenden JSON. Jede Antwort folgt derselben Struktur:

{
  "success": true,
  "data":    { ... },
  "meta":    { "timestamp": "2026-06-26T10:00:00+00:00" }
}

Fehler folgen dem gleichen Muster mit success: false und ein error Objekt statt data.

Endpunkte fallen in zwei Gruppen, und der Unterschied liegt in den Kosten:

  • Research-Endpunkte — /backlinks, /keyword-research, /site-audit — fetch fresh data from outside SignalSumo. They draw feature quota or credits. See Pläne & Abrechnung.
  • Your‑Data-Endpunkte — everything under /rank, /gsc und /ai-visibility — read what your account has already collected. They are plain database reads: they cost keine Credits und kein Feature‑Kontingent, und sie werden niemals wegen Überschreitung des monatlichen Limits abgelehnt.
Ihre Datenendpunkte sind frei von Credits und Funktionskontingenten, aber jeder Aufruf ist weiterhin erfasst in Ihrer monatlichen API‑Aufruf‑Summe — and that total is what gates the research endpoints. A long exploratory session can therefore use up the allowance your billed calls need. This applies equally to the MCP‑Connector, die auf demselben Messgerät läuft.

Authentifizierung

Übergeben Sie Ihren API‑Schlüssel im Authorization Header bei jeder Anfrage:

Authorization: Bearer ss_live_your_key_here

Alternativ können Sie es als Query‑Parameter übergeben (nicht für die Produktion empfohlen):

GET /api/v1/usage?api_key=ss_live_your_key_here
Generieren und verwalten Sie Ihre API‑Schlüssel unter signalsumo.com/api-keys. Each key is shown nur einmal bei Erstellung — sicher speichern.

Der Authorization: Bearer Header ist die empfohlene Methode. Die API sendet außerdem permissive CORS‑Header, sodass sie direkt von browserbasierten Tools aufgerufen werden kann. Halten Sie geheime Schlüssel in der Produktion serverseitig.

Pläne & Abrechnung

API-Zugriff ist verfügbar auf dem Pro und Agentur Plänen. Zwei unabhängige Zähler steuern die Nutzung – ein Aufruf wird nur ausgeführt, wenn beide erlauben Sie es.

1. Monatliche API‑Aufrufe

Jede Anfrage (einschließlich Cache‑Hits und Fehler, die einen Endpunkt erreichen) zählt als ein API‑Aufruf.

PlanMonatliche API‑AufrufeZurücksetzungen
Pro20Erster jedes Monats
Agentur100Erster jedes Monats

Bei Überschreitung wird zurückgegeben HTTP 429 (RATE_LIMITED) mit einem resets_at Feld in meta. Prüfen Sie Ihr Live-Limit und die Nutzung jederzeit über GET /usage.

2. Kontingent & Credits pro Feature

Über den Aufrufzähler hinaus beziehen die Datenendpunkte jeweils ihr monatliches Feature‑Kontingent (dieselbe Menge, die Ihr angemeldetes Dashboard verwendet). So verhält sich jeder, wenn dieses Kontingent erschöpft ist:

EndpunktWenn das Feature‑Kontingent erschöpft ist
/keyword-researchRückgabe 429 QUOTA_EXCEEDED. Niemals verbraucht Credits – sicher zu wiederholen.
/backlinksFällt zurück auf 1 Credit pro Anfrage. A tief Abfrage (page > 1 oder limit > 100) always costs 1 credit. No credits → 402 PAYMENT_REQUIRED.
/site-auditRückgabe 429 QUOTA_EXCEEDED wenn das monatliche Crawl‑Limit oder das rollierende Seitenbudget aufgebraucht ist.
Cache‑Treffer sind vom Feature‑Kontingent ausgenommen. Ergebnisse werden zwischengespeichert und mit Ihrem Dashboard geteilt, sodass eine Domain oder ein Keyword, das kürzlich abgefragt wurde, sofort zurückkommt, gekennzeichnet "cached": true in meta, und verbraucht kein Feature‑Kontingent oder Credits (es zählt weiterhin als ein API‑Aufruf).

3. Anfragen pro Minute

Unabhängig von den monatlichen Zählern legt Ihr Tarif fest, wie viele Anfragen pro Minute Sie stellen können. Das begrenzt eine unkontrollierte Schleife oder einen geleakten Schlüssel auf ein wiederherstellbares Maß – ein monatliches Kontingent sagt nichts darüber aus, ob es innerhalb einer Stunde vollständig verbraucht wird.

PlanAnfragen pro Minute
Pro20
Agentur60

Jeder Endpunkt wird separat gezählt, sodass das Aufbrauchen Ihres Backlink-Kontingents Sie nie von der Keyword‑Recherche ausschließt. Bei Überschreitung wird 429 mit retry_after (Sekunden) und limit in meta. Abgelehnte Anfragen werden nicht gezählt, sodass das Warten auf retry_after löscht es immer.

Identische Anfragen werden einmal beantwortet. Wenn mehrere Ihrer Anfragen dieselbe Frage gleichzeitig stellen, wird eine davon abgerufen und die übrigen erhalten dasselbe Ergebnis – einmalig abgerechnet, nicht pro Anfrage. Wenn der Abruf noch läuft, wenn Ihre Anfrage eintrifft, erhalten Sie 409 ALREADY_RUNNING; versuchen Sie es in ein paar Sekunden erneut und es wird ein Cache‑Treffer sein.

Standorte & Sprachen

/keyword-research akzeptiert ein location_code und language_code um Ergebnisse zu lokalisieren. Beide sind optional – die Vorgaben sind die Vereinigten Staaten (2840) und Englisch (en).

location_code

Ein numerischer Marktcode. Häufige Werte:

CodeMarktCodeMarkt
2840Vereinigte Staaten2276Deutschland
2826Vereinigtes Königreich2250Frankreich
2124Kanada2724Spanien
2036Australien2380Italien
2356Indien2528Niederlande
2392Japan2076Brasilien

Über 90 Märkte werden unterstützt. Ein nicht erkannter Code liefert 422 UNSUPPORTED_LOCATION statt auf die USA zurückzugreifen – für amerikanische Daten zu zahlen, die Sie nicht angefordert haben, ist schlimmer, als zu erfahren, dass der Code falsch ist. Rufen Sie GET /api/v1/keyword-research/locations für die vollständige Liste.

language_code

Ein zweibuchstabiger Sprachcode. Unterstützte Werte:

CodeSpracheCodeSprache
enEnglischptPortugiesisch
esSpanischnlNiederländisch
frFranzösischruRussisch
deDeutschjaJapanisch
itItalienischzhChinesisch
Nur die oben aufgeführten Sprachen werden unterstützt. Alle anderen language_code fällt zurück auf Englisch statt einen Fehler zurückzugeben – prüfen Sie daher den Code, wenn die Ergebnisse unerwartet auf Englisch erscheinen.

Fehlercodes

HTTPCodeBedeutung
400BAD_REQUESTFehlerhafte Anfragesyntax
401UNAUTHORIZEDFehlender oder ungültiger API‑Schlüssel
403FORBIDDENAPI‑Zugriff ist in Ihrem Tarif nicht verfügbar (Pro‑ oder Agentur‑Plan erforderlich)
404NOT_FOUNDEndpunkt oder Ressource nicht gefunden
402PAYMENT_REQUIREDFeature‑Kontingent erschöpft und keine Credits mehr vorhanden (Backlinks)
422VALIDATION_ERRORErforderlicher Parameter fehlt oder hat einen ungültigen Wert
409ALREADY_RUNNINGDie gleiche Anfrage wird bereits für Ihr Konto abgerufen – versuchen Sie es in Kürze erneut, dann wird ein Cache‑Hit erzielt. Es wurde nichts berechnet
429RATE_LIMITED / QUOTA_EXCEEDEDMonatliches Aufruflimit, pro‑Minute‑Pacing oder Feature‑Kontingent‑Erreichen — siehe resets_at oder retry_after in meta
502UPSTREAM_ERRORVom Upstream‑Datenanbieter wurden keine Daten zurückgegeben
500SERVER_ERRORInterner Fehler – sicher erneut zu versuchen

MCP & LLM‑Clients

Wenn Ihr Ziel ist, einem Assistenten wie Claude diese Daten konversationell lesen zu lassen, müssen Sie keinen Client schreiben. SignalSumo spricht die Model Context Protocol, die die untenstehenden Endpunkte als Werkzeuge bereitstellt, die ein LLM direkt aufrufen kann.

RouteAuthentifizierungAm besten geeignet für
Gehosteter ConnectorOAuth 2.1 — no key to copyClaude und andere MCP‑Clients. Keine Installation nötig, immer aktuell.
@signalsumo/mcp auf npmAPI‑Schlüssel in der Client‑KonfigurationLokale Installationen, selbstgehostete Setups oder Ausführung in Ihrer eigenen Umgebung.
Diese REST‑APIAuthorization: BearerEigene Skripte, Dashboards und Backend‑Integrationen.

All three read the same data through the same endpoints and the same plan limits — they differ only in how the caller authenticates. The npm package uses slightly different tool names from the hosted connector; its README is the reference for those. Source: github.com/signalsumo/mcp.

MCP‑Zugriff wird durch sein eigenes Plan‑Flag geregelt, getrennt vom REST‑API‑Zugriff. Prüfen Ihr Plan wenn ein Client authentifiziert, aber jeder Tool‑Aufruf abgelehnt wird.

GET /api/v1/usage

GET /api/v1/usage

Gibt die API‑Kontingentnutzung für den aktuellen Kalendermonat zurück.

Beispielanfrage

curl -H "Authorization: Bearer ss_live_xxxx" \
     "https://signalsumo.com/api/v1/usage"

Beispielantwort

{
  "success": true,
  "data": {
    "plan": "agency",
    "api_calls_used": 42,
    "api_calls_limit": 100,
    "unlimited": false,
    "resets_at": "2026-08-01"
  },
  "meta": {
    "timestamp": "2026-06-26T10:00:00+00:00",
    "key_name": "Production App"
  }
}
GET /api/v1/backlinks?domain={domain}

Gibt das Backlink‑Profil einer Domain zurück: eine Zusammenfassung overview, Verteilung insights, und eine angereicherte Liste einzelner backlinks. Ergebnisse werden zwischengespeichert und mit Ihrem Dashboard geteilt (Pro: 2 Tage, Agentur: 7 Tage); ein Cache‑Treffer wird gekennzeichnet "cached": true und kostet kein Feature‑Kontingent.

Dies sind dieselben Daten, die Backlink Checker shows in the app, and the cache is shared — a domain you have already looked at there returns instantly here, free.

Eine Standardanfrage verbraucht Ihr monatliches Backlink‑Suchkontingent (dann 1 Credit wenn das erschöpft ist). Ein tief Anfrage — page > 1 oder limit > 100 — kostet immer 1 Credit. Siehe Pläne & Abrechnung.

Abfrageparameter

ParameterTypErforderlichBeschreibung
domainZeichenketteJaRoot‑Domain, z. B. example.com (eine vollständige URL wird ebenfalls akzeptiert und normalisiert)
SeiteGanzzahlNeinSeitenzahl, Standard 1
limitGanzzahlNeinErgebnisse pro Seite, 1–200, Standard 100

Beispielanfrage

curl -H "Authorization: Bearer ss_live_xxxx" \
     "https://signalsumo.com/api/v1/backlinks?domain=example.com&limit=2"

Beispielantwort

{
  "success": true,
  "data": {
    "domain": "example.com",
    "total_backlinks": 48210,
    "referring_domains": 1824,
    "page": 1,
    "limit": 2,
    "overview": {
      "domain_rank": 71,
      "total_backlinks": 48210,
      "referring_domains": 1824,
      "referring_domains_nofollow": 640,
      "referring_main_domains": 1610,
      "referring_pages": 39044,
      "referring_ips": 1502,
      "referring_subnets": 1210,
      "dofollow_backlinks": 1184,
      "broken_backlinks": 220,
      "broken_pages": 96,
      "spam_score": 8,
      "first_seen": "2018-05-11 09:20:00",
      "lost_date": null
    },
    "insights": {
      "referring_links_types":          { "anchor": 30140, "image": 9800 },
      "referring_links_attributes":     { "noopener": 12000, "nofollow": 8400 },
      "referring_links_platform_types": { "blogs": 900, "cms": 640, "news": 210 },
      "referring_links_tld":            { "com": 1200, "org": 180 },
      "referring_links_countries":      { "US": 800, "GB": 210 },
      "referring_subnets": 1210,
      "referring_main_domains": 1610
    },
    "backlinks": [
      {
        "domain_from": "blog.example-news.com",
        "url_from": "https://blog.example-news.com/best-seo-tools",
        "url_to": "https://example.com/",
        "anchor": "SignalSumo",
        "dofollow": 1,
        "spam_score": 4,
        "first_seen": "2021-03-10 12:00:00",
        "last_seen": "2026-06-20 04:00:00",
        "semantic_location": "article",
        "platform_type": "blogs",
        "country": "US",
        "is_broken": 0,
        "domain_from_rank": 62,
        "page_from_rank": 41,
        "is_lost": 0,
        "lost_date": null,
        "is_new": 0,
        "item_type": "anchor",
        "page_from_title": "The Best SEO Tools in 2026",
        "page_from_status_code": 200,
        "url_to_status_code": 200,
        "domain_from_ip": "192.0.2.10",
        "tld_from": "com",
        "links_count": 2,
        "is_indirect_link": 0,
        "url_from_https": 1,
        "attributes": ["noopener"],
        "text_pre": "we recommend",
        "text_post": "for site audits",
        "kw_top3": 4,
        "kw_top10": 12,
        "kw_top100": 88
      }
    ]
  },
  "meta": { "timestamp": "2026-06-26T10:00:00+00:00", "cached": false }
}

Backlink‑Felder

FeldBeschreibung
domain_from / url_fromDie verlinkende Seite und die genaue Seite, auf der der Link steht
url_toDie Seite Ihrer Domain, auf die verlinkt wird
AnkerAnkertext des Links
dofollow1 = dofollow, 0 = nofollow
spam_scoreSpam-Score der verlinkenden Seite (0–100)
domain_from_rank / page_from_rankAutorität der verlinkenden Domain / Seite, normalisiert 0–100
is_new / is_lost / is_brokenLink‑Lebenszyklus‑Flags (1/0)
first_seen / last_seen / lost_dateWann der Link erstmals gesehen, zuletzt gesehen und (falls zutreffend) verloren wurde
platform_type / country / tld_fromPlattform, Land und TLD der verlinkenden Seite
item_typeLink‑Form: anchor, image, redirect, …
page_from_status_code / url_to_status_codeHTTP-Status der verlinkenden Seite / der verlinkten Seite
attributesLink‑rel‑Attribute, z. B. ["noopener","nofollow"]
kw_top3 / kw_top10 / kw_top100Keywords, für die die verlinkende Seite in den Top 3 / 10 / 100 rankt

POST /api/v1/keyword-research

POST /api/v1/keyword-research

Gibt ein vollständiges Metrik-Set für ein Seed‑Keyword zurück – Suchvolumen, CPC, Wettbewerb, Schwierigkeit, Suchintention, 12‑Monats‑Volumen‑Trend, SERP‑Features und mehr – sowie eine sortierte Liste verwandter Keywords mit denselben Feldern. Synchron – antwortet sofort.

Dies sind die Metriken, die Keyword Research Tool werden angezeigt. Sobald Sie die Keywords ausgewählt haben, die Sie verfolgen möchten, Rank Tracker follows their positions daily — and /rank/keywords liest diese Positionen zurück, kostenlos.

Dieser Endpunkt zieht Ihr monatliches Keyword‑Such‑Kontingent und verbraucht niemals Credits: Sobald das Kontingent aufgebraucht ist, gibt es zurück 429 QUOTA_EXCEEDED, daher ist es sicher, in einer Schleife aufzurufen. Aktuelle Abfragen werden aus dem Cache bedient (markiert "cached": true) ohne Kontingentkosten.

Request Body (JSON)

FeldTypErforderlichBeschreibung
keywordZeichenketteJaSeed‑Keyword, max. 200 Zeichen
location_codeGanzzahlNeinStandortcode, Standard 2840 (Vereinigte Staaten)
language_codeZeichenketteNeinSprachcode, Standard en
limitGanzzahlNeinMaximale zurückgegebene verwandte Keywords, 1–100, Standard 10

Beispielanfrage

curl -X POST \
     -H "Authorization: Bearer ss_live_xxxx" \
     -H "Content-Type: application/json" \
     -d '{"keyword":"seo audit tool","limit":5}' \
     "https://signalsumo.com/api/v1/keyword-research"

Beispielantwort

{
  "success": true,
  "data": {
    "keyword": "seo audit tool",
    "location_code": 2840,
    "language_code": "en",
    "total_count": 80,
    "overview": {
      "search_volume": 2900,
      "cpc": 19.07,
      "competition": 0.11,
      "competition_level": "LOW",
      "difficulty": 77,
      "intent": ["Commercial"],
      "trend": [ { "y": 2026, "m": 5, "v": 2400 }, { "y": 2026, "m": 6, "v": 1600 } ],
      "serp_features": ["organic"],
      "growth": { "m": -33, "q": -16, "y": -64 },
      "bid_low": 4.72,
      "bid_high": 19.10,
      "avg_backlinks": 5087,
      "avg_ref_domains": 970,
      "comp_domain_rank": 486,
      "se_results": 41000000
    },
    "related_keywords": [
      {
        "keyword": "free seo audit tool",
        "search_volume": 1900,
        "cpc": 3.10,
        "competition": 0.68,
        "competition_level": "MEDIUM",
        "difficulty": 54,
        "intent": ["Commercial", "Transactional"],
        "trend": [ { "y": 2026, "m": 6, "v": 1900 } ],
        "serp_features": ["organic", "people_also_ask"],
        "growth": { "m": 4, "q": -2, "y": 11 },
        "bid_low": 1.20,
        "bid_high": 4.90,
        "avg_backlinks": 210,
        "avg_ref_domains": 88,
        "comp_domain_rank": 402,
        "se_results": 12000000,
        "related": ["website audit tool", "seo checker free"],
        "match_bucket": "similar"
      }
    ]
  },
  "meta": { "timestamp": "2026-06-26T10:00:00+00:00" }
}

Keyword Fields

Der overview (Seed‑Keyword) und jedes related_keywords Zeile teilt diese Felder. Jedes Feld kann null wenn die vorgelagerte Datenquelle nicht verfügbar ist.

FeldBeschreibung
search_volumeDurchschnittliche monatliche Suchanfragen
cpcDurchschnittlicher Cost‑Per‑Click (USD)
competitionBezahlte Konkurrenz, 0–1
WettbewerbsniveauLOW / MEDIUM / HIGH
SchwierigkeitOrganische Ranking‑Schwierigkeit, 0–100 (null wenn noch nicht berechnet)
AbsichtSuchintention, z. B. ["Commercial"]
Trend12‑Monats‑Volumen‑Historie – { y, m, v } pro Monat
WachstumVolumenänderung %: m monatlich, q vierteljährlich, y jährlich
SERP‑FunktionenSERP‑Feature‑Typen vorhanden, z. B. ["organic","people_also_ask"]
Gebot_unten / Gebot_obenGebotsbereich für Top‑Seite (USD)
Durchschn._Backlinks / Durchschn._Ref‑DomainsDurchschnittliche Backlinks / verweisende Domains der aktuell rankenden Seiten
Wettbewerber‑Domain‑RangDurchschnittliche Autorität (0–1000) der aktuell rankenden Seiten
SE‑ErgebnisseGesamtzahl konkurrierender Ergebnisse für das Schlüsselwort
verwandtBis zu 8 verwandte Unter‑Schlüsselwörter (nur verwandte Zeilen)
Übereinstimmungs‑BucketBeziehung zum Seed: similar, related, or question

POST /api/v1/site-audit

POST /api/v1/site-audit

Führt denselben Crawl wie die Website Audit Tool — broken links, redirect chains, missing titles and canonical problems, page by page.

Site‑Audits sind asynchron. Dieser Endpunkt gibt ein job_id immediately. Poll GET /api/v1/jobs/{job_id} für Ergebnisse. Typische Crawldauer: 1–5 Minuten.

Request Body (JSON)

FeldTypErforderlichBeschreibung
URLZeichenketteJaVollständige zu crawlende URL, z. B. https://example.com
max_seitenGanzzahlNeinMaximale zu crawlende Seiten (Standard 100). Durch das Crawl-Limit Ihres Plans und Ihr verbleibendes monatliches Seitenbudget begrenzt.
TiefeGanzzahlNeinCrawl-Tiefe, 1–5, Standard 3

Beispielanfrage

curl -X POST \
     -H "Authorization: Bearer ss_live_xxxx" \
     -H "Content-Type: application/json" \
     -d '{"url":"https://example.com","max_pages":50}' \
     "https://signalsumo.com/api/v1/site-audit"

Antwort (202 Akzeptiert)

{
  "success": true,
  "job_id": "a3f9b2c1d4e5f6a7b8c9d0e1f2a3b4c5",
  "status": "queued",
  "poll": "https://signalsumo.com/api/v1/jobs/a3f9b2c1d4e5f6a7b8c9d0e1f2a3b4c5",
  "meta": { "timestamp": "2026-06-26T10:00:00+00:00" }
}

GET /api/v1/jobs/{job_id}

GET /api/v1/jobs/{job_id}

Abfragen des Status eines asynchronen Jobs. Alle 10–15 Sekunden abfragen, bis status ist complete oder failed.

Statuswerte

StatusBedeutung
warteschlangeJob akzeptiert, noch nicht gestartet
läuftCrawl läuft — prüfen progress (0–100)
abgeschlossenFertig — data Feld enthält Ergebnisse
fehlgeschlagenCrawl fehlgeschlagen — error Feld hat den Grund

Beispielanfrage

curl -H "Authorization: Bearer ss_live_xxxx" \
     "https://signalsumo.com/api/v1/jobs/a3f9b2c1d4e5f6a7b8c9d0e1f2a3b4c5"

Antwort — Laufend

{
  "success": true,
  "data": {
    "job_id": "a3f9b2c1d4e5f6a7b8c9d0e1f2a3b4c5",
    "endpoint": "site-audit",
    "status": "running",
    "progress": 42,
    "created_at": "2026-06-26 10:00:00",
    "updated_at": "2026-06-26 10:01:30",
    "completed_at": null
  },
  "meta": { "timestamp": "2026-06-26T10:01:30+00:00" }
}

Antwort — Vollständig

{
  "success": true,
  "data": {
    "job_id": "a3f9b2c1d4e5f6a7b8c9d0e1f2a3b4c5",
    "endpoint": "site-audit",
    "status": "complete",
    "progress": 100,
    "created_at": "2026-06-26 10:00:00",
    "updated_at": "2026-06-26 10:03:18",
    "completed_at": "2026-06-26 10:03:18",
    "data": {
      "audit_id": "AUDIT-A1B2C3-4567",
      "domain": "https://example.com",
      "pages_crawled": 47,
      "total_score": 78,
      "geo_score": 71,
      "issues": { "critical": 3, "warning": 12, "total": 15 },
      "report_url": "https://signalsumo.com/report?id=AUDIT-A1B2C3-4567"
    }
  },
  "meta": { "timestamp": "2026-06-26T10:03:18+00:00" }
}

GET /api/v1/rank/keywords

GET /api/v1/rank/keywords

Jedes Keyword, das Ihr Konto verfolgt, jeweils mit dem Markt und Gerät, in dem es gemessen wurde, sowie seiner letzten Position. Das ist die Datenbasis hinter dem Rank Tracker — no crawl is triggered and nothing is charged.

country, language und device are returned on every row on purpose. A position is meaningless without them — comparing a desktop US ranking against a mobile UK one produces a decline that never happened.

Abfrageparameter

ParameterTypErforderlichBeschreibung
project_idGanzzahlNeinAuf ein Projekt beschränken. Weglassen, um Keywords aus allen Projekten, die Sie besitzen, zurückzugeben.
limitGanzzahlNein1–500, default 100

Beispielanfrage

curl -H "Authorization: Bearer ss_live_xxxx" \
     "https://signalsumo.com/api/v1/rank/keywords?limit=1"

Beispielantwort

{
  "success": true,
  "data": {
    "keywords": [
      {
        "keyword_id": 4821,
        "keyword": "seo audit tool",
        "difficulty": 62,
        "search_volume": 8100,
        "cpc": 12.4,
        "country": "US",
        "language": "en",
        "device": "desktop",
        "status": "active",
        "project_id": 17,
        "project_domain": "example.com",
        "project_name": "Example Site",
        "last_checked": "2026-08-19",
        "current_position": 8,
        "previous_position": 11,
        "position_change": 3,
        "landing_page": "https://example.com/tools/audit",
        "gsc_clicks": 143,
        "gsc_impressions": 5210,
        "gsc_ctr": 2.74,
        "local_pack": false,
        "featured_snippet": true,
        "ai_overview": false
      }
    ],
    "count": 1
  },
  "meta": { "project_id": null, "limit": 1 }
}

position_change ist positiv, wenn das Keyword verschoben wurde aufwärts. Ein Keyword, das noch nie geprüft wurde, liefert null für jedes latest.* Feld statt 0 — position zero would read as "ranked first".

GET /api/v1/rank/history

GET /api/v1/rank/history?keyword_id={id}

Tägliche Positionshistorie für ein verfolgtes Keyword, mit der rangierenden URL und den SERP-Features bei jeder Prüfung. Enthält ein vorab berechnetes trend Zusammenfassung.

Abfrageparameter

ParameterTypErforderlichBeschreibung
keyword_idGanzzahlJaVon /rank/keywords. Ein Keyword, das Sie nicht besitzen, liefert 404 NOT_FOUND.
TageGanzzahlNein1–365, default 90

Beispielanfrage

curl -H "Authorization: Bearer ss_live_xxxx" \
     "https://signalsumo.com/api/v1/rank/history?keyword_id=4821&days=30"

Beispielantwort

{
  "success": true,
  "data": {
    "keyword": {
      "id": 4821,
      "keyword": "seo audit tool",
      "project_id": 17,
      "domain": "example.com",
      "project": "Example Site"
    },
    "history": [
      {
        "check_date": "2026-08-19",
        "position": 8,
        "previous_position": 11,
        "change": 3,
        "landing_page": "https://example.com/tools/audit",
        "gsc_clicks": 143,
        "gsc_impressions": 5210,
        "gsc_ctr": 2.74,
        "gsc_average_position": 8.6,
        "featured_snippet": true,
        "ai_overview": false,
        "people_also_ask": true,
        "local_pack": false,
        "images": false,
        "videos": false,
        "shopping": false,
        "knowledge_graph": false,
        "sitelinks": true
      }
    ],
    "trend": { "first": 14, "latest": 8, "best": 6, "worst": 15 }
  },
  "meta": { "days_requested": 30, "points": 1 }
}

Lesen trend

FeldBedeutung
erstePosition am älteste Punkt im Fenster
neuestePosition beim letzten Check
besteNiedrigste erreichte Nummer (beste Platzierung)
schlechtesteHöchste erreichte Nummer (schlechteste Platzierung)

history ist nach dem neuesten zuerst sortiert. best und worst unranked Checks ignorieren, sodass sie null wenn das Schlüsselwort im Zeitraum nie gerankt wurde.

GET /api/v1/gsc/properties

GET /api/v1/gsc/properties

Die mit Ihrem Konto verbundenen Google Search Console‑Properties, wie in Search Console Insights. Keine Parameter erforderlich.

This reads SignalSumo's synced copy — it does not call Google. last_synced_at zeigt Ihnen, wie aktuell dieser Text ist.

Beispielanfrage

curl -H "Authorization: Bearer ss_live_xxxx" \
     "https://signalsumo.com/api/v1/gsc/properties"

Beispielantwort

{
  "success": true,
  "data": {
    "properties": [
      {
        "property_id": 31,
        "property_uri": "sc-domain:example.com",
        "display_name": "example.com",
        "status": "active",
        "last_synced_at": "2026-08-20 04:15:02",
        "last_sync_status": "ok",
        "google_email": "[email protected]",
        "is_sandbox": false
      }
    ],
    "count": 1
  }
}

GET /api/v1/gsc/queries

GET /api/v1/gsc/queries?property_id={id}

Clicks, impressions, CTR and average position for a synced property, grouped by whichever dimension you ask for. Despite the name it is not limited to queries — set dim um dieselben Zahlen nach Seite, Land, Gerät oder Datum aufzuschlüsseln.

Abfrageparameter

ParameterTypErforderlichBeschreibung
property_idGanzzahlJaVon /gsc/properties. Eine nicht Ihnen gehörende Property gibt zurück 404 NOT_FOUND.
dimZeichenketteNeinquery (Standard), page, country, device, date, searchAppearance
fromZeichenketteNeinYYYY-MM-DD, standardmäßig vor 28 Tagen
toZeichenketteNeinYYYY-MM-DD, standardmäßig heute
sortZeichenketteNeinclicks (Standard), impressions, ctr, position, key
dirZeichenketteNeindesc (Standard) oder asc
limitGanzzahlNein1–500, default 100
Ein fehlerhaftes Datum liefert 422 VALIDATION_ERROR, aber ein nicht erkanntes dim oder sort Der Wert fällt stillschweigend auf den Standard zurück, anstatt einen Fehler zu erzeugen. Prüfen Sie die dim zurückgespiegelt in data bevor Sie einer Aufschlüsselung vertrauen.

Beispielanfrage

curl -H "Authorization: Bearer ss_live_xxxx" \
     "https://signalsumo.com/api/v1/gsc/queries?property_id=31&dim=query&limit=2"

Beispielantwort

{
  "success": true,
  "data": {
    "property_id": 31,
    "dim": "query",
    "from": "2026-07-23",
    "to": "2026-08-20",
    "totals": {
      "clicks": 4820,
      "impressions": 216400,
      "ctr": 2.23,
      "position": 18.4
    },
    "rows": [
      { "key": "seo audit tool", "clicks": 143, "impressions": 5210, "ctr": 2.74, "position": 8.6 },
      { "key": "free seo checker", "clicks": 98,  "impressions": 7740, "ctr": 1.27, "position": 14.2 }
    ],
    "total_rows": 1842
  },
  "meta": { "sort": "clicks", "dir": "desc", "limit": 2 }
}

total_rows is the number of distinct keys in the period, not the number returned — use it to decide whether to raise limit. totals deckt immer den gesamten Zeitraum ab, unabhängig von limit.

GET /api/v1/ai-visibility/projects

GET /api/v1/ai-visibility/projects

Die Marken, die Sie über KI-Antwortmaschinen hinweg verfolgen, jeweils eine Zeile pro Projekt, mit dem aktuellen Sichtbarkeits-Score und seiner Entwicklung. Keine Parameter erforderlich. Angetrieben von der AI Visibility Checker.

Scores are collected by scheduled scans, so this endpoint never calls an AI provider — it returns what the last scan stored.

Beispielanfrage

curl -H "Authorization: Bearer ss_live_xxxx" \
     "https://signalsumo.com/api/v1/ai-visibility/projects"

Beispielantwort

{
  "success": true,
  "data": {
    "projects": [
      {
        "id": 9,
        "domain": "example.com",
        "brand_name": "Example",
        "target_country": "US",
        "target_language": "en",
        "ai_engine": "all",
        "tracking_frequency": "weekly",
        "status": "active",
        "visibility_score": 41.8,
        "previous_visibility_score": 37.2,
        "score_change": 4.6,
        "created_at": "2026-05-02 11:20:44",
        "updated_at": "2026-08-18 06:02:11"
      }
    ],
    "count": 1
  }
}

score_change ist null until a project has been scanned at least twice — a first scan has nothing to compare against, and reporting 0 würde als „keine Bewegung“ gelesen werden.

GET /api/v1/ai-visibility/share-of-voice

GET /api/v1/ai-visibility/share-of-voice?project_id={id}

Wie oft nennen KI-Assistenten Ihre Marke im Vergleich zu den gleichzeitig verfolgten Wettbewerbern, plus die vollständige Metrikaufteilung des letzten Scans.

Abfrageparameter

ParameterTypErforderlichBeschreibung
project_idGanzzahlJaVon /ai-visibility/projects. Ein Projekt, das Sie nicht besitzen, liefert 404 NOT_FOUND.

Beispielanfrage

curl -H "Authorization: Bearer ss_live_xxxx" \
     "https://signalsumo.com/api/v1/ai-visibility/share-of-voice?project_id=9"

Beispielantwort

{
  "success": true,
  "data": {
    "project": {
      "id": 9,
      "domain": "example.com",
      "brand_name": "Example",
      "target_country": "US",
      "ai_engine": "all",
      "visibility_score": 41.8,
      "previous_visibility_score": 37.2
    },
    "latest_snapshot": {
      "geo_score": 41.8,
      "mention_rate": 38.0,
      "avg_position": 2.4,
      "sentiment_avg": 0.62,
      "citation_rate": 21.5,
      "competition_score": 58.3,
      "prompts_evaluated": 50,
      "snapshot_date": "2026-08-18"
    },
    "share_of_voice": {
      "brand_mentions": 19,
      "competitor_mentions": 74,
      "total_mentions": 93,
      "brand_share_pct": 20.43
    },
    "competitors": [
      {
        "competitor_name": "Competitor One",
        "competitor_domain": "competitor1.com",
        "mention_count": 31,
        "visibility_score": 52.1,
        "avg_position": 1.9,
        "updated_at": "2026-08-18 04:41:07"
      }
    ]
  }
}

Zwei verschiedene Prozentsätze

Diese sind leicht zu verwechseln und beantworten unterschiedliche Fragen:

FeldFrage, die sie beantwortet
mention_rateOf the prompts we tested, what share mentioned you at all? — coverage.
brand_share_pctOf every brand mention across you and your tracked competitors, what share was yours? — competitive position.

latest_snapshot ist null bevor der erste Scan eines Projekts abgeschlossen ist. competitors gibt höchstens 20 zurück, sortiert nach Erwähnungsanzahl. brand_share_pct ist null when no mentions have been recorded on either side — a share of nothing is not zero percent.

GET /api/v1/keyword-research/locations

GET /api/v1/keyword-research/locations

Jeder Markt POST /keyword-research akzeptiert, damit Sie ein location_code statt zu raten und einen 422. Keine Parameter erforderlich.

Dies ist bewusst nicht the full market list. Keyword research runs on the keyword database, which covers fewer markets than SERP work does — publishing the wider list here would only move the failure one call later.

Beispielanfrage

curl -H "Authorization: Bearer ss_live_xxxx" \
     "https://signalsumo.com/api/v1/keyword-research/locations"

Beispielantwort

{
  "success": true,
  "data": {
    "locations": [
      { "location_code": 2840, "location_name": "United States", "country_iso": "US", "language_code": "en" },
      { "location_code": 2826, "location_name": "United Kingdom", "country_iso": "GB", "language_code": "en" }
    ],
    "count": 94,
    "note": "These are the markets covered by the keyword database. Pass location_code to POST /keyword-research."
  }
}

Changelog

VersionDatumÄnderungen
v1.2Aug 2026Die sieben bereits live geschalteten Nur-Lese-Endpunkte dokumentiert: /rank/keywords, /rank/history, /gsc/properties, /gsc/queries, /ai-visibility/projects, /ai-visibility/share-of-voice und /keyword-research/locations. No behaviour changed — these were callable before, just undocumented. Added MCP and LLM client guidance.
v1.1Jul 2026Keyword‑ und Backlink‑Antworten auf vollständige Metrik‑Sätze erweitert (Schwierigkeit, Intent, Trend, SERP‑Features, angereicherte Backlink‑Felder, Übersicht & Insights). Site‑Audit‑Ergebnisse hinzufügen geo_score und Issue‑Counts. Hinzugefügte Standort‑/Sprachen‑Referenz und Abrechnungsdetails.
v1.0Jun 2026Erstveröffentlichung — Nutzung, Backlinks, Keyword-Recherche, Site-Audit, Jobs

Fragen? E‑Mail [email protected]