v1Ressourcen/Veröffentlichte Einträge/getListings-Zusammenfassung abrufen
Listings-Zusammenfassung abrufen
Publisher-Sync-Status über die Standorte dieses Kunden (oder der gesamten Agentur) — eine Gesamtübersicht plus Aufschlüsselung je Standort, Insights (Health-%, Sync-Verteilung, schwächste Publisher, priorisierte "Handlungsbedarf"-Einträge) und eine deterministische Kurzzusammenfassung. Mit tags auf eine Teilmenge eingrenzen. Nutzt denselben Rollup wie die Ansicht Listings → Alle Standorte.
get
listings:read/api/v1/listings/summaryQuery-Parameter
clientIdstringoptional
Auf die Standorte eines Kunden beschränken.
tagsstringoptional
Kommagetrennte Standort-Tag-Namen — nur Standorte mit mindestens einem davon werden berücksichtigt.
pageintegeroptional
Seite der Zeilen je Standort (1-basiert). Standard 1.
perPageintegeroptional
Zeilen pro Seite (max. 200). Standard 50.
withVisibilitybooleanoptional
Auf true setzen, um die citation- und maps-Ergebnisse jeder Zeile sowie die visibility-Summen hinzuzufügen. Standardmäßig aus.
Antwort
dataobjectoptional
summaryobjectoptional
Aggregierte Zahlen über alle Standorte im Geltungsbereich.
locationsnumberoptional
Anzahl der Standorte im Geltungsbereich.
publishersTotalnumberoptional
Gesamtzahl der Publisher-Slots über alle Standorte im Geltungsbereich.
publishersSyncednumberoptional
Davon aktuell synchronisiert.
connectionIssuesnumberoptional
Native Connector-Zeilen (Google/Facebook) mit Verbindungsproblem.
duplicatesnumberoptional
Erkannte doppelte Einträge im Geltungsbereich.
reviewsnumberoptional
Gesamtzahl der Bewertungen im Geltungsbereich.
avgRatingnumberoptional
Durchschnittsbewertung über Standorte mit einer Bewertung.
rowsarray of objectoptional
Eine Zeile je Standort im Geltungsbereich (paginiert).
locationIdstringoptional
Standort-ID.
namestringoptional
Standortname.
citystringoptional
Standort-Stadt.
publishersnumberoptional
Publisher-Slots für diesen Standort.
syncednumberoptional
Davon aktuell synchronisiert.
connectionIssuesnumberoptional
Native Connector-Zeilen mit Verbindungsproblem.
duplicatesnumberoptional
Erkannte doppelte Einträge für diesen Standort.
reviewsnumberoptional
Gesamtzahl der Bewertungen für diesen Standort.
unrepliednumberoptional
Bewertungen ohne Antwort.
avgRatingnumberoptional
Durchschnittsbewertung für diesen Standort.
googleVerifiedbooleanoptional
Google-Eintrag ist verbunden und verifiziert.
googleConnectedbooleanoptional
Google ist verbunden (Verifizierung kann noch ausstehen).
tagsarray of stringoptional
Interne Tags dieses Standorts.
healthobjectoptional
Der Listing-Zustand dieses Standorts, gezählt über dieselben infrage kommenden Einträge wie seine eigene Listings-Übersicht.
eligibleintegererforderlich
Verzeichniseinträge, für die der Standort infrage kommt: jede aktive Website, die für sein Land, seinen Tarif und sein Publisher-Set verfügbar ist.
liveintegererforderlich
Davon die Einträge, die live sind.
inFlightintegererforderlich
Davon die Einträge, die gesendet wurden und auf ein Ergebnis warten (in Bearbeitung oder Freigabe ausstehend).
needsActionintegererforderlich
Davon die Verzeichniseinträge, deren Status ein Eingreifen erfordert.
notLiveYetintegererforderlich
Die übrigen infrage kommenden Einträge, die noch nicht live sind. Null, wenn die anderen Zahlen nicht in die Gesamtzahl passen.
consistentbooleanerforderlich
True, wenn live, inFlight, needsAction und notLiveYet zusammen eligible ergeben.
phasestring (preparing | submitting | settled)erforderlich
Stand der ersten Runde von Verzeichniseinreichungen des Standorts: preparing, submitting oder settled.
citationobjectoptional
Die Einträge dieses Standorts in der Google-Suche: seine aktuellen Live-Eintragsseiten, nach Ergebnis gezählt. Nur mit withVisibility=true.
statestring (none | unchecked | measured)erforderlich
none: keine infrage kommende Live-Seite. unchecked: Seiten vorhanden, aber noch ohne Ergebnis. measured: mindestens eine Seite hat ein Ergebnis.
totalintegererforderlich
Gezählte Live-Eintragsseiten.
indexedintegererforderlich
Davon die Seiten, die in der Google-Suche erscheinen.
notIndexedintegererforderlich
Davon die Seiten mit dem erfassten Ergebnis „nicht indexiert“.
pendingintegererforderlich
Davon die Seiten, die auf ein Ergebnis warten.
notCheckedintegererforderlich
Davon die Seiten, für die noch kein verwertbares Ergebnis vorliegt.
latestEvidenceAtstringerforderlich
Wann das neueste Seitenergebnis erfasst wurde, oder null.
oldestEvidenceAtstringerforderlich
Das älteste der jeweils neuesten Seitenergebnisse, oder null. Zusammen mit latestEvidenceAt der Zeitraum, in dem die Ergebnisse erfasst wurden.
mapsobjectoptional
Top 3 auf Google Maps für das Standard-Keyword dieses Standorts, aus einem gespeicherten Scan. Nur mit withVisibility=true.
statestring (noKeywords | notMeasured | measured)erforderlich
noKeywords: keine erfassten Keywords. notMeasured: Keywords werden erfasst, aber keines hat einen gemessenen Scan. measured: ein gemessener Scan liegt vor.
keywordIdstringerforderlich
Die ID des erfassten Keywords.
keywordstringerforderlich
Das erfasste Keyword.
keywordCountintegererforderlich
Anzahl der für diesen Standort erfassten Keywords.
reportIdstringerforderlich
Die ID des gespeicherten Berichts.
yearMonthstringerforderlich
Der Monat dieses Datenpunkts, als "YYYY-MM".
measuredintegererforderlich
Gezählte Punkte mit einem gemessenen Ergebnis (ranked oder outside). Der Nenner für top3.
top3integererforderlich
Gemessene Punkte, an denen Sie unter den Top 3 lagen.
outsideintegererforderlich
Gemessene Punkte, an denen Sie nicht unter den erfassten Top 20 lagen.
noDataintegererforderlich
Gezählte Punkte, deren Prüfung fehlgeschlagen ist. Kein Ranking.
withheldPointsintegererforderlich
Gespeicherte Punkte aus einer früheren Keyword- oder Grid-Einstellung. Als withheld angezeigt und nicht gezählt.
missingPointsintegererforderlich
Grid-Punkte ohne jegliches gespeichertes Ergebnis.
avgRanknumbererforderlich
Durchschnittlicher Rang über die gemessenen Punkte, wobei outside als 21 zählt. Null, wenn nichts gemessen wurde.
bestRankintegererforderlich
Beste gemessene Position, 1 bis 20. Null, wenn jeder gemessene Punkt outside ist.
evidencestring (proven | unverified)erforderlich
proven: jeder gezählte Punkt passt zum aktuellen Keyword und Grid. unverified: ein älterer Scan, dessen Keyword und Grid nicht bestätigt werden können.
completedAtstringerforderlich
Wann die vollständige Grid-Erfassung hinter genau diesen Ergebnissen abgeschlossen wurde. Null, sofern das nicht nachgewiesen ist.
generatedAtstringerforderlich
Das erfasste Datum des Berichts, gesetzt bei seinem ersten Abschluss. Weder ein Erfassungszeitpunkt noch ein Zeitpunkt der letzten Aktualisierung oder eine Live-Prüfung.
newerUnmeasuredbooleanerforderlich
True, wenn ein neuerer Scan für das Keyword nichts Zählbares gemessen hat und daher ein älterer Scan angezeigt wird.
scanInProgressbooleanerforderlich
True, solange ein Grid-Scan für diesen Standort läuft. Gilt für den ganzen Standort: Es sagt nicht, welche Keywords der Scan abdeckt.
healthobjectoptional
Listing-Zustand über alle Standorte im Geltungsbereich, nicht nur diese Seite. Zahlen werden addiert, Prozentwerte nie gemittelt.
locationsintegererforderlich
Anzahl der Standorte im Geltungsbereich.
eligibleintegererforderlich
Verzeichniseinträge, für die der Standort infrage kommt: jede aktive Website, die für sein Land, seinen Tarif und sein Publisher-Set verfügbar ist.
liveintegererforderlich
Davon die Einträge, die live sind.
inFlightintegererforderlich
Davon die Einträge, die gesendet wurden und auf ein Ergebnis warten (in Bearbeitung oder Freigabe ausstehend).
needsActionintegererforderlich
Davon die Verzeichniseinträge, deren Status ein Eingreifen erfordert.
notLiveYetintegererforderlich
Die übrigen infrage kommenden Einträge, die noch nicht live sind. Null, wenn die anderen Zahlen nicht in die Gesamtzahl passen.
locationsNeedingActionintegererforderlich
Standorte mit mindestens einem Verzeichniseintrag, der ein Eingreifen erfordert.
connectionIssuesintegererforderlich
Native Connector-Zeilen (Google/Facebook) mit Verbindungsproblem.
locationsWithConnectionIssuesintegererforderlich
Standorte mit mindestens einem Verbindungsproblem.
duplicatesintegererforderlich
Erkannte doppelte Einträge im Geltungsbereich.
locationsWithDuplicatesintegererforderlich
Standorte mit mindestens einem erkannten doppelten Eintrag.
preparingintegererforderlich
Neue Standorte, deren erste Einreichungen vorbereitet werden.
submittingintegererforderlich
Neue Standorte, deren erste Einreichungen gerade gesendet werden.
visibilityobjectoptional
Sichtbarkeitssummen über alle Standorte im Geltungsbereich, nicht nur diese Seite. Nur mit withVisibility=true.
citationobjecterforderlich
Einträge in der Google-Suche, summiert über Standorte mit mindestens einer Live-Eintragsseite.
totalintegererforderlich
Gezählte Live-Eintragsseiten.
indexedintegererforderlich
Davon die Seiten, die in der Google-Suche erscheinen.
notIndexedintegererforderlich
Davon die Seiten mit dem erfassten Ergebnis „nicht indexiert“.
pendingintegererforderlich
Davon die Seiten, die auf ein Ergebnis warten.
notCheckedintegererforderlich
Davon die Seiten, für die noch kein verwertbares Ergebnis vorliegt.
locationsobjecterforderlich
Standorte nach Citation-Status.
oldestEvidenceAtstringerforderlich
Das älteste der jeweils neuesten Seitenergebnisse, oder null. Zusammen mit latestEvidenceAt der Zeitraum, in dem die Ergebnisse erfasst wurden.
latestEvidenceAtstringerforderlich
Wann das neueste Seitenergebnis erfasst wurde, oder null.
mapsobjecterforderlich
Top 3 auf Google Maps, summiert über den jeweils eigenen Scan jedes gemessenen Standorts.
measuredintegererforderlich
Gezählte Punkte mit einem gemessenen Ergebnis (ranked oder outside). Der Nenner für top3.
top3integererforderlich
Gemessene Punkte, an denen Sie unter den Top 3 lagen.
locationsobjecterforderlich
Standorte nach Maps-Status.
completedintegererforderlich
Gemessene Standorte, deren Scan-Datum eine verifizierte vollständige Grid-Erfassung ist und kein erfasstes Berichtsdatum.
scannedFromstringerforderlich
Beginn oder Ende des Zeitraums der verifizierten Erfassungsdaten (completedAt) über die gemessenen Standorte. Null, wenn es keine gibt.
scannedTostringerforderlich
Beginn oder Ende des Zeitraums der verifizierten Erfassungsdaten (completedAt) über die gemessenen Standorte. Null, wenn es keine gibt.
reportedFromstringerforderlich
Beginn oder Ende des Zeitraums der erfassten Berichtsdaten (generatedAt) für gemessene Standorte ohne verifizierte Erfassung. Null, wenn es keine gibt. Wird nie mit dem Scan-Zeitraum zusammengeführt.
reportedTostringerforderlich
Beginn oder Ende des Zeitraums der erfassten Berichtsdaten (generatedAt) für gemessene Standorte ohne verifizierte Erfassung. Null, wenn es keine gibt. Wird nie mit dem Scan-Zeitraum zusammengeführt.
insightsobjectoptional
Aus den obigen Zeilen abgeleitete Insights.
healthnumberoptional
publishersSynced / publishersTotal, in Prozent.
distributionobjectoptional
Standorte nach Sync-Rate gruppiert (fullySynced 100 %, healthy 90–99 %, atRisk <90 %).
fullySyncednumberoptional
Standorte mit 100 % Sync.
healthynumberoptional
Standorte mit 90–99 % Sync.
atRisknumberoptional
Standorte unter 90 % Sync.
weakestarray of objectoptional
Publisher mit der geringsten Abdeckung im Geltungsbereich.
idstringoptional
Publisher-ID.
namestringoptional
Publisher-Name.
totalnumberoptional
Standorte mit diesem Publisher.
syncednumberoptional
Davon synchronisiert.
requiresActionnumberoptional
Davon mit Handlungsbedarf.
notConnectednumberoptional
Davon nicht verbunden.
pctnumberoptional
Synchronisierter Anteil, gerundet.
directoriesarray of objectoptional
Vollständige Abdeckungstabelle je Publisher.
idstringoptional
Publisher-ID.
namestringoptional
Publisher-Name.
totalnumberoptional
Standorte mit diesem Publisher.
syncednumberoptional
Davon synchronisiert.
requiresActionnumberoptional
Davon mit Handlungsbedarf.
notConnectednumberoptional
Davon nicht verbunden.
pctnumberoptional
Synchronisierter Anteil, gerundet.
attentionarray of objectoptional
Priorisierte "Handlungsbedarf"-Karten.
nnumberoptional
Anzahl, die diese Karte repräsentiert.
titlestringoptional
Kartentitel.
substringoptional
Kartenuntertitel.
tonestring (amber | blue | rose | zinc)optional
Visueller Ton dieser Karte.
filterstring (issues | duplicates | under80 | unverified | notconnected)optional
Passender Filterschlüssel der Standorttabelle.
headlinestringoptional
Eine deterministische Kurzzusammenfassung des Gesamtzustands.
fixFirstarray of objectoptional
Priorisierte Korrekturvorschläge.
textstringoptional
Beschreibung der Korrektur.
impactstring (High | Med | Low)optional
Geschätzte Wirkung dieser Korrektur.
filterstring (issues | duplicates | under80 | unverified | notconnected)optional
Passender Filterschlüssel der Standorttabelle.
totalnumberoptional
Gesamtzahl passender Standorte (für Pagination), unabhängig von perPage.
pagenumberoptional
Aktuelle Seite (1-basiert).
perPagenumberoptional
Zeilen pro Seite.
Fehler
401API-Schlüssel fehlt, ist ungültig, abgelaufen oder widerrufen.
403Dem Schlüssel fehlt die erforderliche Berechtigung, oder er ist für diesen Kunden/Standort nicht autorisiert.
429Zu viele Anfragen. Versuchen Sie es nach der im Retry-After-Header angegebenen Anzahl Sekunden erneut.
get/api/v1/listings/summary
Ihr API-Schlüssel
clientId
tags
page
perPage
withVisibility
{
"data": {
"summary": {
"locations": 12,
"publishersTotal": 96,
"publishersSynced": 81,
"connectionIssues": 3,
"duplicates": 2,
"reviews": 340,
"avgRating": 4.6
},
"rows": [
{
"locationId": "loc_456",
"name": "Acme Dental — Downtown",
"city": "Austin",
"publishers": 8,
"synced": 7,
"connectionIssues": 0,
"duplicates": 0,
"reviews": 26,
"unreplied": 2,
"avgRating": 4.8,
"googleVerified": true,
"googleConnected": true,
"facebookConnected": true,
"tags": [
"vip"
]
}
],
"insights": {
"health": 84,
"distribution": {
"fullySynced": 9,
"healthy": 2,
"atRisk": 1
},
"weakest": [
{
"locationId": "loc_789",
"name": "Acme Dental — Eastside",
"health": 40
}
],
"directories": [
{
"id": "google",
"name": "Google Maps",
"total": 12,
"synced": 11,
"requiresAction": 0,
"notConnected": 1,
"pct": 92
}
],
"attention": [
{
"n": 1,
"title": "1 location under 90% synced",
"sub": "Listings not fully propagated",
"tone": "amber",
"filter": "under80"
}
],
"headline": "84% listing health — 1 location under 90% synced needs attention.",
"fixFirst": [
{
"text": "Reconnect 1 location's listing sync.",
"impact": "Med"
}
]
},
"total": 12,
"page": 1,
"perPage": 50
}
}Anleitungen, die diesen Endpunkt verwenden
- Business Listings API: Complete Developer GuideHow a business listings API works and how to create, update, sync and monitor locations across Google, Apple, Bing and directories with the Synup API.
- How to Add Local Marketing Features to Your SaaSAdd listings management, reviews, Google posts, profile analytics, rank tracking and AI visibility to a SaaS product with the Synup API, tenant by tenant.
- How to Manage Business Listings ProgrammaticallyKeep business listings accurate from your own system with the Synup API. Covers change detection, idempotent updates, hours, photos and sync reporting.
- How to Update Business Information Across Google, Apple, Bing and DirectoriesPush one business-information change to Google, Apple, Bing and the directory network through a single API call, and verify it reached each publisher.
- How Listing Syndication WorksListing syndication takes one business record, translates it into each publisher's format, and pushes it out asynchronously, which is why sync status matters.
- How to Build an AI Agent for Local SEOBuild an AI agent that audits and fixes listings, tracks local rankings, checks AI visibility and drafts review replies with Synup's MCP server or REST tools.
- How to Manage Thousands of Business Locations via APIDesign a sync job for thousands of locations on the Synup API with cursor pagination, tags, rate-limit handling, an id map and rollup health checks.
- How to Find and Remove Duplicate Business ListingsDetect duplicate business listings across publishers, review them by confidence, and flag them for removal or dismiss them with the Synup API.
- How to Build a Multi-Location Marketing DashboardBuild a multi-location marketing dashboard from the API's rollup endpoints, one call per panel, covering listings, reviews, rank, AI visibility and duplicates.
- Local SEO APIs: What Developers Actually NeedA practical checklist of what a local SEO API must cover, from listings and sync status to reviews, rank tracking and AI visibility, mapped to endpoints.
- How to Monitor Local SEO Across Multiple LocationsMonitor local SEO across hundreds of locations through rollup endpoints, with rank and AI visibility per location and the weakest surfaced first.