Details und Öffnungszeiten eines Standorts aktualisieren
Pflegen Sie Kontaktdaten, den vollständigen Wochenplan mit einmaligen Ausnahmen, temporäre Schließungen und Google-Kategorien und lesen Sie Änderungen aus.
POST /locations/update führt eine Teilaktualisierung durch. Alle Felder werden unter input angegeben, input.id ist das einzige Pflichtfeld, und ausgelassene Felder behalten ihre aktuellen Werte. In jedem der folgenden Abschnitte wird nur der JSON-Anfragekörper geändert.
1. Telefonnummer und Website aktualisieren
Senden Sie id zusammen mit den zu ändernden Feldern. Plattformen veröffentlichen bizUrl als Website-URL. locations.update() im Python SDK erwartet ein dict mit Schlüsseln im Format camelCase, und updateLocation() im Node SDK erwartet dasselbe Objekt.
curl -X POST https://listingsapi.com/api/v4/locations/update \-H "Authorization: API $LISTINGSAPI_KEY" \-H "Content-Type: application/json" \-d '{ "input": { "id": "TG9jYXRpb246MTgwMDI4OQ==", "phone": "5125550199", "bizUrl": "https://acmekitchen.example.com" }}'{ "data": { "updateLocation": { "success": true, "errors": null, "location": { "id": "TG9jYXRpb246MTgwMDI4OQ==", "databaseId": 1800289, "name": "Jenny Home", "phone": "5125550199", "status": "APPROVED" } } }}Auch bei einem Validierungsfehler wird HTTP 200 zurückgegeben, zusammen mit success: false und dem Grund in data.updateLocation.errors. Prüfen Sie daher success statt des Statuscodes. Beide SDKs lösen in diesem Fall ValidationError aus.
2. Wöchentliche Öffnungszeiten festlegen
businessHours ist ein Array mit einem Eintrag pro Wochentag. Senden Sie immer alle sieben Einträge und kennzeichnen Sie einen geschlossenen Tag mit type: "CLOSED" und einem leeren slots-Array, statt ihn auszulassen. Zeitintervalle innerhalb eines Tages dürfen sich nicht überschneiden.
curl -X POST https://listingsapi.com/api/v4/locations/update \-H "Authorization: API $LISTINGSAPI_KEY" \-H "Content-Type: application/json" \-d '{ "input": { "id": "TG9jYXRpb246MTgwMDI4OQ==", "businessHours": [ { "day": "MONDAY", "type": "OPEN", "slots": [{ "start": "09:00am", "end": "05:00pm" }] }, { "day": "TUESDAY", "type": "OPEN", "slots": [{ "start": "09:00am", "end": "05:00pm" }] }, { "day": "WEDNESDAY", "type": "OPEN", "slots": [{ "start": "09:00am", "end": "05:00pm" }] }, { "day": "THURSDAY", "type": "OPEN", "slots": [{ "start": "09:00am", "end": "05:00pm" }] }, { "day": "FRIDAY", "type": "OPEN", "slots": [{ "start": "09:00am", "end": "05:00pm" }] }, { "day": "SATURDAY", "type": "OPEN", "slots": [{ "start": "10:00am", "end": "02:00pm" }] }, { "day": "SUNDAY", "type": "CLOSED", "slots": [] } ] }}'Fügen Sie für einen Feiertag einen SPECIAL-Eintrag am Ende desselben Arrays hinzu. Er überschreibt die Öffnungszeiten für dieses eine Datum und lässt den Wochenplan unverändert:
{ "day": "SPECIAL", "type": "CLOSED", "specialDate": "2026-12-25", "slots": [] }3. Eine vorübergehende Schließung kennzeichnen oder die Adresse ausblenden
temporarilyClosed: true kennzeichnet das Unternehmen als geschlossen und beendet die Veröffentlichung seiner Öffnungszeiten. Setzen Sie es auf false, um das Unternehmen wieder als geöffnet zu kennzeichnen. Setzen Sie für ein Unternehmen mit Einzugsgebiet hideAddress: true: ListingsAPI behält die Adresse beim Standort bei, übermittelt sie jedoch nicht an Plattformen.
curl -X POST https://listingsapi.com/api/v4/locations/update \-H "Authorization: API $LISTINGSAPI_KEY" \-H "Content-Type: application/json" \-d '{ "input": { "id": "TG9jYXRpb246MTgwMDI4OQ==", "temporarilyClosed": true } }'4. Google-Kategorien festlegen
Google Business Profile hat eine eigene Kategorietaxonomie, die von der numerischen subCategoryId getrennt ist. primaryGbpSiteCategoryId akzeptiert eine GCID wie gcid:restaurant, und additionalGbpSiteCategoryIds akzeptiert weitere GCIDs. Beide werden anhand von countryIso aufgelöst, senden Sie daher das Land im selben Aufruf mit.
curl -X POST https://listingsapi.com/api/v4/locations/update \-H "Authorization: API $LISTINGSAPI_KEY" \-H "Content-Type: application/json" \-d '{ "input": { "id": "TG9jYXRpb246MTgwMDI4OQ==", "countryIso": "US", "primaryGbpSiteCategoryId": "gcid:restaurant", "additionalGbpSiteCategoryIds": ["gcid:pizza_restaurant", "gcid:italian_restaurant"] }}'Verwechseln Sie diese nicht mit additionalCategoryIds, das ganzzahlige databaseId-Werte vom Endpunkt für Unterkategorien akzeptiert. Siehe Länder, Bundesländer und Kategorien nachschlagen.
5. Den Standort erneut auslesen
GET /locations-by-ids gibt den vollständigen Datensatz für eine oder mehrere Base64-kodierte IDs zurück, die als JSON-Array im Abfrageparameter ids übergeben werden. Vergleichen Sie phone, businessHours und temporarilyClosed mit den von Ihnen gesendeten Werten.
curl -G https://listingsapi.com/api/v4/locations-by-ids \--data-urlencode 'ids=["TG9jYXRpb246MTgwMDI4OQ=="]' \-H "Authorization: API $LISTINGSAPI_KEY"{ "data": { "getLocationsByIds": [ { "id": "TG9jYXRpb246MTgwMDI4OQ==", "databaseId": 1800289, "name": "Jenny Home", "phone": "5125550199", "hideAddress": false, "temporarilyClosed": true } ] }}IDs, die in Ihrem Konto nicht existieren, werden ohne Fehlermeldung aus dem Array entfernt. Vergleichen Sie daher die Anzahl der zurückgegebenen Datensätze mit der Anzahl der angeforderten Datensätze.
Wenn Webhooks konfiguriert sind, wird ein profile.updated-Ereignis ausgelöst. Die Zustellung wird durch Debouncing auf eine Zustellung pro Standort innerhalb von 60 Sekunden begrenzt und erfolgt zu Beginn des Zeitfensters: Spätere Änderungen innerhalb dieses Zeitfensters werden zusammengefasst, und changed_fields beschreibt nur die Änderung, die das Zeitfenster eröffnet hat. Lesen Sie den Standort erneut aus, sobald das Ereignis eintrifft, und nochmals nach Ablauf des Zeitfensters.
Nächste Schritte
- Ein Logo, ein Titelbild und Fotos hochladen: Fügen Sie dem gerade aktualisierten Datensatz Bildmaterial hinzu.
- Standorte finden und nicht mehr verwaltete Standorte archivieren: Suchen Sie nach Filialcode und nehmen Sie geschlossene Filialen außer Betrieb.
- Einen Standort aktualisieren und Standorte anhand ihrer IDs abrufen: die Referenzseiten, einschließlich Links für Standortaktionen und aller beschreibbaren Felder.