Einträge
Alle Listings-Endpunkte: cURL-, Python-, Node-Beispiele, Premium-Syncstatus, Sprachassistenten, Duplikaterkennung je Standort/Konto und -unterdrückung.
Ein Eintrag repräsentiert einen Standort im Verzeichnis einer Plattform. Wenn Sie einen Standort erstellen, wird für jede Plattform in Ihrem Tarif ein Eintrag zur Verarbeitung vorgemerkt. Über die Listings-Endpunkte können Sie den Status jedes Eintrags abrufen, die erkannten Duplikate auflisten und diese bestätigen oder verwerfen. Die vier GET-Endpunkte funktionieren mit einem Schlüssel für Read (Lesezugriff); die beiden POST-Endpunkte benötigen einen Schlüssel für Write (Schreibzugriff).
Endpunkte im Überblick
Status von Premium-Einträgen abrufen
GET /locations/{locationId}/listings/premium
Gibt unter data.listingsForLocation einen Datensatz pro Premium-Plattform im Tarif des Standorts zurück. Es handelt sich um ein einfaches Array, nicht um eine paginierte Liste. Der parallele Pfad /listings/additional gibt die kostenlosen Verzeichnisse in derselben Struktur zurück; es gibt keinen Query-Parameter listingType, und ein dort übergebener Wert wird ignoriert.
Parameter
curl https://listingsapi.com/api/v4/locations/TG9jYXRpb246MTgwMDI4OQ==/listings/premium \-H "Authorization: API $LISTINGSAPI_KEY"{ "data": { "listingsForLocation": [ { "id": "TGlzdGluZzoxMDQ0Njg3MjM=", "site": { "databaseId": "1", "name": "Google Maps", "url": "maps.google.com" }, "syncStatus": "REQUIRING_ACTION", "displayStatus": "Connect your account to sync the listing", "actionRequired": true, "listingUrl": null, "syncIssue": null, "lastUpdate": "2026-07-06T18:33:28Z" }, { "id": "TGlzdGluZzoxMDQ0Njg3Mjc=", "site": { "databaseId": "387", "name": "BeLocalFocussed", "url": "belocalfocussed.com" }, "syncStatus": "SYNCED", "displayStatus": "Synced", "actionRequired": false, "listingUrl": "https://belocalfocussed.com/jenny-home-26x0ffkd0e", "syncIssue": null, "lastUpdate": "2026-07-06T18:33:30Z" }, { "id": "TGlzdGluZzoxMDQ0Njg3MDk=", "site": { "databaseId": "301", "name": "Local Mint", "url": "localmint.com" }, "syncStatus": "FAILED", "displayStatus": "Partner experiencing issues; awaiting response", "actionRequired": false, "listingUrl": null, "syncIssue": "Publisher requires website URL", "lastUpdate": "2026-07-06T18:34:03Z" } ] }}Verzweigen Sie die Verarbeitung anhand von syncStatus. Zeigen Sie einer Person displayStatus an, lesen Sie syncIssue für die Begründung der Plattform aus und verwenden Sie lastUpdate, um eine ins Stocken geratene Übermittlung zu erkennen. listingUrl ist nur bei Datensätzen veröffentlichter Einträge gesetzt.
Google Maps, Facebook und Waze verbleiben bei REQUIRING_ACTION mit displayStatus: "Connect your account to sync the listing", bis das zugehörige Konto verbunden ist. Bei einem neuen Standort ist dies zu erwarten.
Status bei Sprachassistenten abrufen
GET /locations/{locationId}/voice-assistants
Gibt unter data.voiceAssistantsForLocation einen Datensatz pro Sprachassistent zurück: Google Assistant, Amazon Alexa, Apple Siri, Microsoft Cortana und Samsung Bixby. Es handelt sich um ein einfaches Array mit weniger möglichen Statuswerten als beim Premium-Endpunkt.
Parameter
curl https://listingsapi.com/api/v4/locations/TG9jYXRpb246MTgwMDI4OQ==/voice-assistants \-H "Authorization: API $LISTINGSAPI_KEY"{ "data": { "voiceAssistantsForLocation": [ { "databaseId": "104468723", "voiceIdentifier": "GOOGLE_ASSISTANT", "name": "Google Assistant", "connectedAccountId": null, "syncStatus": "REQUIRING_ACTION", "actionRequired": true, "syncIssue": null, "errors": [] }, { "databaseId": "104468711", "voiceIdentifier": "SIRI", "name": "Siri", "connectedAccountId": null, "syncStatus": "IN_PROGRESS", "actionRequired": false, "syncIssue": null, "errors": [] } ] }}Kennzeichnen Sie jeden Datensatz, bei dem actionRequired den Wert true hat oder syncIssue gesetzt ist. errors enthält Fehlermeldungen der Plattform, und connectedAccountId nennt gegebenenfalls das verbundene Konto, über das die Synchronisierung erfolgt. Die Ergebnisse für Google Assistant stammen aus der Google Business Profile-Verbindung, daher ist eine fehlende Google-Verbindung der häufigste Grund für Handlungsbedarf. Die Ergebnisse für Siri stammen aus dem Apple Maps-Eintrag des Standorts.
Duplikate im gesamten Konto zusammenfassen
GET /locations/listings/duplicates
Gibt unter data.duplicateListingsRollup alle erkannten Duplikate zurück, auf die der Schlüssel Zugriff hat, über alle Standorte und Plattformen hinweg. Die Paginierung ist offsetbasiert: page und perPage werden übergeben, records[] sowie pageInfo.totalRecords, pageInfo.totalPages und pageInfo.hasNextPage werden zurückgegeben. Filter werden als flache Abfrageparameter übergeben, nicht als JSON. Ohne Angaben ist POTENTIAL der Standardwert für status und all der Standardwert für tag, sodass ein Aufruf ohne Parameter die offenen Duplikate des Kontos zurückgibt.
Parameter
Die Python- und Node-Wrapper stellen nur tag und page bereit. Um nach status oder siteId zu filtern oder perPage festzulegen, rufen Sie die Route direkt auf, wie unter Doppelte Einträge bearbeiten gezeigt.
curl "https://listingsapi.com/api/v4/locations/listings/duplicates?status=POTENTIAL&page=1&perPage=50" \-H "Authorization: API $LISTINGSAPI_KEY"{ "data": { "duplicateListingsRollup": { "pageInfo": { "hasNextPage": true, "hasPreviousPage": false, "totalPages": 34, "totalRecords": 1673 }, "records": [ { "id": "3329229", "name": "Woodbury Train Station", "nameValid": false, "duplicateProcessingState": "POTENTIAL", "liveLink": "http://citysquares.com/b/woodbury-train-station-23598450", "locationId": "73451", "siteName": "City Squares", "siteUrl": "citysquares.com" } ] } }}Die Zusammenfassung zeigt Ihnen, wo sich Duplikate befinden: Jeder Datensatz nennt locationId und siteName. duplicateProcessingState ist derselbe Lebenszyklusstatus, den der Endpunkt für einzelne Standorte als status meldet. Rufen Sie die Seiten einzeln nacheinander ab, bis hasNextPage den Wert false hat; eine Schleife ohne Pause führt am schnellsten zu 429.
Duplikate für einen Standort auflisten
GET /locations/{locationId}/listings/duplicates
Gibt unter data.duplicateListingsForLocation alle erkannten Duplikate für einen einzelnen Standort zurück, gruppiert nach Plattform-Site. Es handelt sich um ein einfaches Array. Jede Gruppe ist eine Site (name, url) mit einem listings-Array, und jeder Eintrag enthält den Wert listingItemId, den beide Endpunkte zur Markierung entgegennehmen. Ein leeres Array bedeutet, dass nichts erkannt wurde.
Parameter
curl https://listingsapi.com/api/v4/locations/TG9jYXRpb246MTgwMDI4OQ==/listings/duplicates \-H "Authorization: API $LISTINGSAPI_KEY"{ "data": { "duplicateListingsForLocation": [ { "id": "U2l0ZToxNTA=", "name": "City Squares", "url": "citysquares.com", "listings": [ { "id": "RHVwbGljYXRlOjIzNTk4NDUw", "listingItemId": "TGlzdGluZ0l0ZW06MjM1OTg0NTA=", "name": "Woodbury Train Station", "liveLink": "http://citysquares.com/b/woodbury-train-station-23598450", "status": "POTENTIAL" } ] } ] }}Öffnen Sie liveLink, um den Eintrag zu prüfen, und bewahren Sie anschließend listingItemId auf. Im Node SDK ist der Wert des abgeflachten Felds d.id weiterzugeben. status verwendet dieselben vier Werte wie die kontoweite Zusammenfassung oben.
Einträge als Duplikate bestätigen
POST /locations/listings/mark-as-duplicate
Markiert Einträge als bestätigte Duplikate, damit sie bei der Plattform unterdrückt werden können. Senden Sie die listingItemId-Werte unter input und bündeln Sie alle bestätigten Einträge eines Standorts in einem Aufruf, statt für jeden Eintrag einen eigenen Aufruf zu senden. Dies ist ein Schreibvorgang und erfordert einen Write (Schreibzugriff)-Schlüssel.
Parameter
curl -X POST https://listingsapi.com/api/v4/locations/listings/mark-as-duplicate \-H "Authorization: API $LISTINGSAPI_KEY" \-H "Content-Type: application/json" \-d '{ "input": { "locationId": "TG9jYXRpb246MTgwMDI4OQ==", "listingItemIds": ["TGlzdGluZ0l0ZW06MjM1OTg0NTA="] }}'{ "data": { "markAsDuplicate": { "success": true, "errors": null } }}success: true bedeutet, dass die Einträge angenommen wurden und in den Status PROCESSING wechseln. Bei 200 mit success: false oder bei 400 wird ein errors-Array mitgeliefert, dessen Einträge code, message und path enthalten; die Ursache ist meist eine unbekannte oder fehlerhaft formatierte ID. Das Python SDK gibt die Nutzdaten zurück; das Node SDK löst stattdessen ValidationError aus, sodass ein erfolgreich aufgelöstes Promise bedeutet, dass der Vorgang erfolgreich war.
Einträge als Nicht-Duplikate verwerfen
POST /locations/listings/mark-as-not-duplicate
Verwirft potenzielle Duplikate als Fehlalarme. Die Erkennung ist konservativ und markiert auch einen anderen Standort derselben Franchise-Kette, ein zweites legitimes Profil oder einen umbenannten Standort. Nach dem Verwerfen erscheinen die Einträge in keinem der beiden Duplikat-Endpunkte mehr. Der Endpunkt nimmt denselben Body wie der obige Endpunkt entgegen und dient auch dazu, eine irrtümliche Markierung eines Eintrags rückgängig zu machen.
Parameter
curl -X POST https://listingsapi.com/api/v4/locations/listings/mark-as-not-duplicate \-H "Authorization: API $LISTINGSAPI_KEY" \-H "Content-Type: application/json" \-d '{ "input": { "locationId": "TG9jYXRpb246MTgwMDI4OQ==", "listingItemIds": ["TGlzdGluZ0l0ZW06MjM1OTg0NTA="] }}'{ "data": { "markAsNotDuplicate": { "success": true, "errors": null } }}Die Antwort ist data.markAsNotDuplicate mit denselben Feldern success und errors wie beim Aufruf zur Markierung als Duplikat. Ein verworfener Eintrag wird als bestätigtes Nicht-Duplikat erfasst und erscheint beim nächsten Erkennungslauf nicht erneut.
Mögliche Fehler
Alle Codes sind in der Fehlerreferenz aufgeführt.
Nächste Schritte
- Eintragsstatus und Live-Links prüfen: erstellen Sie mithilfe der Premium- und Voice-Endpunkte ein Dashboard zur Abdeckung.
- Fehler in Einträgen finden und beheben: arbeiten Sie die Zeilen mit
REQUIRING_ACTIONundFAILEDdurch. - Doppelte Einträge bearbeiten: der Prüfablauf über die vier Duplikatendpunkte hinweg, einschließlich Statusverfolgung.
- Google verbinden und Standorte importieren: verbinden Sie das Google Business Profile, das Google Maps und Google Assistant verwenden.
- Apple Business Connect verbinden: veröffentlichen Sie auf Apple Maps über das verifizierte Apple Business-Konto des Inhabers.
- Ressourcenübersicht: Einträge. SDK-Referenzen: Python-Einträge, Node-Einträge.