GET/api/v4/locations/search

拠点の検索

キーワードに一致する拠点の一覧をカーソルベースのページネーションで返します。名前、住所、店舗 ID で検索できます。

API キーが必要です。ヘッダーの形式とキーのローテーションについては認証を参照してください。

パラメーター

クエリ

名前型必須説明デフォルト
querystring任意Search keyword matched against location name, street address, city, and store ID. Omit to page through every location.—
filterstring任意JSON-encoded filter object to narrow results (for example by approval status).—
firstinteger任意Number of records to fetch, starting from the most recent.50
afterstring任意Cursor to fetch records after (forward pagination). Pass the previous page's `pageInfo.endCursor`.—

レスポンス

200Cursor-paginated list of matching locations.
Response
{  "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.

このエンドポイントを使用すると、自由入力のキーワードで拠点を検索できます。キーワードは拠点名、番地などの住所、市区町村、店舗 ID と照合されるため、ユーザーがブランド名、通り名、社内の店舗コードのいずれを入力しても、?query=Jenny のような 1 つのクエリで「Jenny Home」を見つけられます。

ユースケース:入力補完付きの拠点選択。 ダッシュボードの「拠点を検索」ボックスを実装するには、キー入力のたびに GET /locations/search?query=<term>&first=10 を呼び出し(デバウンス処理を適用)、edges[].node.name を databaseId とともに表示します。ノードには完全な住所、カテゴリ、approved のステータスが含まれているため、再度検索することなく、詳細な情報を含む検索結果行を表示できます。

ユースケース:自社システムとの照合。 更新を送信する前に店舗が Listings API に存在することを確認するには、自社の storeId の値で検索します。edges 配列が空の場合、その拠点はまだ作成されていません。

ページネーションと注意点。

  • 検索結果にはカーソルベースのページネーションが適用されます。前のレスポンスの pageInfo.endCursor を after として渡して次のページを取得し、hasNextPage が false になったら終了します。ページ単位の件数は totalCount ではなく pageInfo.total である点に注意してください。
  • query を省略すると、拠点が絞り込まれずに返されるため(first の制約は適用されます)、アカウント全体の拠点をページごとに取得する際に便利です。
  • 検索にもアカウント共通のレート制限が適用されます。429 が返された場合は、Retry-After ヘッダーに従って待機してから再試行してください。

一致する各拠点について、placeActionLinks(Listings API が管理する Google アクションリンク)と discoveredPlaceActionLinks(ビジネスの Google プロフィール上で直接見つかった、まだ管理されていないリンク)が返されます。プレイスアクションリンクのガイドを参照してください。

Request
curl -X GET 'https://listingsapi.com/api/v4/locations/search' \  -H "Authorization: API $LISTINGSAPI_KEY"