/api/v4/locations/searchStandorte suchen
Gibt eine Cursor-paginierte Liste von Standorten zurück, die zum Suchbegriff passen. Suchbar nach Name, Adresse oder Filial-ID.
Parameter
Query
| Name | Typ | Erforderlich | Beschreibung | Standard |
|---|---|---|---|---|
| query | string | optional | Search keyword matched against location name, street address, city, and store ID. Omit to page through every location. | — |
| filter | string | optional | JSON-encoded filter object to narrow results (for example by approval status). | — |
| first | integer | optional | Number of records to fetch, starting from the most recent. | 50 |
| after | string | optional | Cursor to fetch records after (forward pagination). Pass the previous page's `pageInfo.endCursor`. | — |
Antworten
200Cursor-paginated list of matching locations.
{ "data": { "searchLocations": { "edges": [ { "cursor": "TG9jYXRpb246MTgwMDI4OQ==", "node": { "accountId": 12345, "accountName": "owner@brightsmile-dental.com", "addOns": [], "additionalCategoryIds": [], "additionalCategoryNames": [], "additionalGbpSiteCategoryIds": [], "additionalGbpSiteCategoryNames": [], "additionalInfo": null, "additionalPhones": [], "aiAnalyticsEnabled": false, "approved": "APPROVED", "archivalScheduledAt": null, "archived": false, "archivedAt": null, "bizUrl": null, "bizUrlUtm": false, "bookingUrl": null, "businessHours": [], "cancellationScheduledAt": null, "categoryId": 15, "city": "Austin", "clientName": "owner@brightsmile-dental.com", "contentPreferredLanguage": "ENGLISH", "countryCode": "1", "countryIso": "US", "createErrors": [], "createdDate": "July 06, 2026", "customAttributes": [], "databaseId": 1800289, "defaultAgencyTag": "ownerbrightsmiledentalcom", "description": "This is a standalone duplex house. A comfortable, private residence located in the Bouldin Creek neighborhood of Austin.", "discoveredPlaceActionLinks": [], "enabledSiteIds": [], "facebookUrl": null, "franchise": false, "googleAdsPhone": null, "googleVerificationStatus": { "message": null, "status": "NOT_CONNECTED" }, "googleplusUrl": null, "hideAddress": false, "id": "TG9jYXRpb246MTgwMDI4OQ==", "instagramUrl": null, "isRestaurant": true, "lastUpdatedDate": "July 06, 2026", "latitude": "30.2711286", "linkedinUrl": null, "locationPhotos": [], "longitude": "-97.7436995", "managedServiceSiteBuckets": [], "managedServiceSites": [], "moreHours": [], "name": "Jenny Home", "offeringsUrl": null, "ownerEmail": null, "ownerName": null, "package": "PREMIUM", "paymentMethods": [], "phone": "5125550142", "pinterestUrl": null, "placeActionLinks": [], "planId": 3797, "planName": "Launch", "postalCode": "78701", "primaryGbpSiteCategoryId": null, "primaryGbpSiteCategoryName": null, "publisherAttributes": [], "reservationUrl": null, "serviceArea": null, "serviceItems": [], "stateIso": "TX", "stateName": "Texas", "storeId": null, "street": "600 Congress Ave, Suite 200", "street1": null, "subCategoryId": 1432, "subCategoryName": "Restaurants", "tagline": null, "temporarilyClosed": false, "tiktokUrl": null, "toplineMessage": null, "twitterUrl": null, "uid": "3c92283c-6145-4a43-8a62-0c15fd712021", "updatedAt": "2026-07-06T18:33:29.664Z", "videos": [], "voiceStatus": 3, "yearOfIncorporation": null, "youtubeUrl": null } } ], "pageInfo": { "endCursor": "TG9jYXRpb246MTgwMDI4OQ==", "hasNextPage": false, "hasPreviousPage": false, "total": 1 } } }}401Unauthenticated, missing or invalid API key.
429Rate limit exceeded. Retry after the `Retry-After` header value.
Verwenden Sie diesen Endpunkt, um Standorte anhand eines Freitext-Suchbegriffs zu finden. Der Suchbegriff wird mit dem Standortnamen, der Straßenadresse, der Stadt und der Filial-ID abgeglichen, sodass eine einzelne Abfrage wie ?query=Jenny „Jenny Home“ findet, unabhängig davon, ob der Benutzer die Marke, eine Straße oder einen internen Filialcode eingegeben hat.
Anwendungsfall: Standortauswahl mit Suchvorschlägen während der Eingabe. Um ein Suchfeld „Ihre Standorte durchsuchen“ in einem Dashboard bereitzustellen, rufen Sie bei jedem Tastendruck GET /locations/search?query=<term>&first=10 auf (mit Entprellung) und stellen Sie edges[].node.name mit databaseId dar. Da der Knoten die vollständige Adresse, die Kategorie und den approved-Status enthält, können Sie ohne eine zweite Abfrage eine Ergebniszeile mit ausführlichen Informationen anzeigen.
Anwendungsfall: Abgleich mit Ihrem eigenen System. Um vor der Übermittlung einer Aktualisierung zu bestätigen, dass eine Filiale in Listings API vorhanden ist, suchen Sie nach Ihrem storeId-Wert; ein leeres edges-Array bedeutet, dass der Standort noch nicht erstellt wurde.
Paginierung und Fallstricke.
- Die Ergebnisse werden anhand eines Cursors paginiert. Übergeben Sie
pageInfo.endCursoraus der vorherigen Antwort alsafter, um die nächste Seite abzurufen, und beenden Sie den Vorgang, wennhasNextPagegleichfalseist. Beachten Sie, dass die Anzahl auf Seitenebene inpageInfo.totalsteht, nicht intotalCount. - Wenn Sie
queryweglassen, werden Ihre Standorte ungefiltert zurückgegeben (unter Berücksichtigung vonfirst), wodurch Sie bequem das gesamte Konto seitenweise durchlaufen können. - Die Suche unterliegt demselben Ratenlimit wie die übrigen Anfragen des Kontos. Warten Sie bei
429entsprechend der Angabe imRetry-After-Header, bevor Sie es erneut versuchen.
Für jeden passenden Standort werden placeActionLinks (die von Listings API verwalteten Google-Aktionslinks) und discoveredPlaceActionLinks (Links, die direkt im Google-Profil des Unternehmens gefunden wurden und noch nicht verwaltet werden) zurückgegeben. Siehe den Leitfaden zu Place Action Links.
curl -X GET 'https://listingsapi.com/api/v4/locations/search' \ -H "Authorization: API $LISTINGSAPI_KEY"