Google Business Profile für Standort ohne Profil erstellen

Reichen Sie ein neues Google Business Profile über ein verbundenes Google-Konto ein. Verfolgen Sie die Verifizierung über Standort, Einträge und Webhooks.

Abgleich und Verknüpfung funktionieren nur, wenn bereits ein Google-Eintrag vorhanden ist. Ein neues Ladengeschäft hat noch keinen, daher fordern Sie die API auf, einen unter einem verbundenen Google-Konto zu erstellen. Die Erstellung erfolgt asynchron und Google verifiziert das Profil nach seinem eigenen Zeitplan, daher geht es in dieser Anleitung hauptsächlich darum, das Ergebnis zu beobachten.

1. Bestätigen Sie, dass der Standort keinen Google-Eintrag hat

Rufen Sie die Premium-Einträge des Standorts ab und suchen Sie die Zeile, deren site.name den Wert Google Maps hat. Ein Standort ohne Google-Präsenz zeigt REQUIRING_ACTION mit einem connectedAccountId mit dem Wert null.

Google row
curl https://listingsapi.com/api/v4/locations/TG9jYXRpb246MTgwMDI4OQ==/listings/premium \-H "Authorization: API $LISTINGSAPI_KEY"
JSON
{  "site": { "name": "Google Maps", "url": "maps.google.com" },  "syncStatus": "REQUIRING_ACTION",  "displayStatus": "Connect your account to sync the listing",  "listingUrl": null,  "connectedAccountId": null,  "verified": false}

Wenn die Zeile bereits SYNCED ist oder connectedAccountId gesetzt ist, hat der Standort einen Google-Eintrag und diese Anleitung ist nicht anwendbar. Verknüpfen oder aktualisieren Sie ihn stattdessen.

2. Wählen Sie einen Ordner aus (optional)

Google organisiert Einträge unter einem Konto in Ordnern, die auch Kontogruppen genannt werden. Listen Sie die Ordner des verbundenen Kontos auf und übergeben Sie einen davon als folderId, wenn der Inhaber das neue Profil in einer bestimmten Gruppe haben möchte. Überspringen Sie diesen Schritt, um es auf der obersten Ebene des Kontos zu erstellen.

Folders
curl https://listingsapi.com/api/v4/connected-accounts/4f712c17-4f95-42dd-90f4-97171a2e67b5/folders \-H "Authorization: API $LISTINGSAPI_KEY"
JSON
{  "data": {    "getFoldersUnderGoogleAccount": [      { "folderId": "accounts/104890024806530350198", "folderName": "Bright Smile Dental", "locationCount": null }    ]  }}

Verwenden Sie folderId unverändert; es handelt sich um die Zeichenfolge accounts/{id}, nicht um eine Zahl. locationCount kann null sein, wenn Google diesen Wert nicht meldet. Der Endpunkt ist nur für GoogleAccount-Verbindungen gültig.

3. Erstellen Sie den Eintrag

Senden Sie die base64-kodierte id des Standorts und das Konto sowie den Ordner, falls Sie einen ausgewählt haben. Die Antwort besagt lediglich, dass die Anfrage angenommen wurde.

Create listing
curl -X POST https://listingsapi.com/api/v4/locations/create/gmb-listing \-H "Authorization: API $LISTINGSAPI_KEY" \-H "Content-Type: application/json" \-d '{  "input": {    "locationId": "TG9jYXRpb246MTgwMDI4OQ==",    "connectedAccountId": "4f712c17-4f95-42dd-90f4-97171a2e67b5",    "folderId": "accounts/104890024806530350198"  }}'
JSON
{  "data": {    "createGmbListingForLocation": { "clientMutationId": null, "success": true, "errors": null }  }}

success: true bedeutet, dass die Erstellung eingeleitet wurde, nicht, dass ein Profil online ist. Google prüft jedes neue Profil vor der Veröffentlichung, und das kann Tage dauern. Wenn success den Wert false hat, gibt errors den Grund an: Dem Standort fehlen Pflichtfelder, er hat bereits einen Google-Eintrag, er ist archiviert oder das verbundene Konto ist nicht mehr aktiv.

4. Beobachten Sie den Verifizierungsstatus des Standorts

Jeder Abruf eines Standorts gibt googleVerificationStatus mit einem status und einem message zurück. Rufen Sie den Standort erneut ab, um zu sehen, wie weit Google im Prozess ist.

Verification status
curl -G https://listingsapi.com/api/v4/locations-by-ids \--data-urlencode 'ids=["TG9jYXRpb246MTgwMDI4OQ=="]' \-H "Authorization: API $LISTINGSAPI_KEY"
JSON
{  "id": "TG9jYXRpb246MTgwMDI4OQ==",  "databaseId": 1800289,  "googleVerificationStatus": { "status": "PENDING_VERIFICATION", "message": null }}
statusBedeutungEndstatus
NOT_CONNECTEDEs ist noch kein Google-Eintrag verknüpft. Dies ist zu erwarten, bevor Schritt 3 wirksam wird.Nein
NOT_VERIFIEDDer Eintrag existiert, die Verifizierung hat noch nicht begonnen.Nein
PENDING_VERIFICATIONGoogle verifiziert das Profil.Nein
UNDER_REVIEWGoogle prüft das Profil.Nein
VERIFIEDDas Profil ist online.Ja
SUSPENDEDGoogle hat das Profil gesperrt.Ja
DUPLICATEGoogle hat es als Duplikat eines bestehenden Profils eingestuft.Ja
ERROR_WHILE_FETCHINGDer Status konnte nicht von Google abgerufen werden. Versuchen Sie es später erneut.Ja

Ein täglicher Abruf reicht für einen Prozess aus, der Tage dauert. Beachten Sie Retry-After bei einer 429-Antwort, wenn Sie viele Standorte gleichzeitig prüfen.

5. Beobachten Sie die Google-Zeile in den Einträgen

Die Zeile in den Premium-Einträgen aus Schritt 1 bildet denselben Fortschritt auf der Eintragsseite ab. Führen Sie den Aufruf aus Schritt 1 erneut aus und lesen Sie syncStatus, verified und listingUrl aus.

syncStatusBedeutung
REQUIRING_ACTIONEs wurde noch nichts erstellt oder das Konto erfordert Aufmerksamkeit. Siehe displayStatus.
IN_PROGRESSBei Google eingereicht, eine Antwort steht noch aus.
PENDING_APPROVALDie Freigabe durch Google steht noch aus.
SYNCEDOnline. listingUrl ist ausgefüllt und connectedAccountId gibt das Konto an.
FAILEDGoogle hat die Einreichung abgelehnt. syncIssue gibt den Grund an.

6. Auf die Verifizierungs-Webhooks reagieren

Wenn im Dashboard eine Webhook-URL festgelegt ist, decken zwei Ereignisse die Endzustände ab, sodass Sie keine regelmäßigen Abfragen durchführen müssen. Beide enthalten location_id und haben immer data.connected_account_id: null.

EreignisWird ausgelöst, wenndata-Felder
connection.google_verification_verifiedDas Profil erreicht VERIFIED.platform: "google"
connection.google_verification_failedDas Profil erreicht SUSPENDED oder DUPLICATE (failure_type: "rejected") oder ERROR_WHILE_FETCHING (failure_type: "transient").platform, failure_type, reason
JSON
{  "event": "connection.google_verification_failed",  "timestamp": "2026-08-25T14:52:31Z",  "account_id": 11073,  "location_id": "279381",  "data": { "platform": "google", "connected_account_id": null, "failure_type": "rejected", "reason": "This profile is suspended." }}

Nur bei transient-Fehlern lohnt sich ein erneuter Versuch. Die Zwischenzustände lösen keinerlei Ereignisse aus, daher ist das Ausbleiben von Ereignissen kein Signal: Solange eine Verifizierung läuft, lesen Sie googleVerificationStatus wie in Schritt 4 beschrieben aus.

Nächste Schritte