拠点の詳細と営業時間を更新する
連絡先情報を変更し、特定日の例外設定を含む1週間分のスケジュールを公開し、臨時休業を設定し、Google カテゴリを設定して、変更内容を再取得して確認します。
POST /locations/updateは部分更新を行います。すべてのフィールドはinputの下に配置し、必須フィールドはinput.idのみで、省略したフィールドは現在の値を保持します。以降の各セクションでは、JSON リクエストボディのみを変更します。
1. 電話番号とウェブサイトを更新する
idと変更するフィールドを送信します。掲載先はbizUrlをウェブサイトの URL として公開します。Python SDK のlocations.update()はcamelCaseのキーを持つ dict を受け取り、Node SDK のupdateLocation()も同じオブジェクトを受け取ります。
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" } } }}検証に失敗した場合も HTTP 200が返され、success: falseと、data.updateLocation.errorsに格納された理由が含まれるため、ステータスコードではなくsuccessを確認してください。この場合、どちらの SDK もValidationErrorを発生させます。
2. 週間営業時間を設定する
businessHoursは、各曜日に1つのエントリを持つ配列です。必ず7日分すべてを送信し、休業日は省略せず、type: "CLOSED"と空のslots配列で指定してください。1日の中で時間帯が重複してはいけません。
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": [] } ] }}'祝日には、同じ配列にSPECIALのエントリを追加します。その日付のみを上書きし、週間パターンは変更しません。
{ "day": "SPECIAL", "type": "CLOSED", "specialDate": "2026-12-25", "slots": [] }3. 臨時休業を設定するか、住所を非表示にする
temporarilyClosed: trueは事業を休業状態にし、営業時間の公開を停止します。営業を再開するには、falseに設定します。非店舗型ビジネスの場合は、hideAddress: trueを設定します。ListingsAPI は拠点の住所を保持しますが、掲載先には送信しません。
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 カテゴリを設定する
Google Business Profileには、数値のsubCategoryIdとは別に独自のカテゴリ分類体系があります。primaryGbpSiteCategoryIdはgcid:restaurantのような GCID を受け取り、additionalGbpSiteCategoryIdsは追加の GCID を受け取ります。どちらもcountryIsoに基づいて解決されるため、同じ呼び出しで国も送信してください。
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"] }}'これらを、サブカテゴリのエンドポイントから取得した整数のdatabaseIdの値を受け取るadditionalCategoryIdsと混同しないでください。国・州・カテゴリを調べるを参照してください。
5. 拠点を再取得する
GET /locations-by-idsは、idsクエリパラメーターに JSON 配列として渡した1つ以上の base64 形式の ID に対応する完全なレコードを返します。phone、businessHours、temporarilyClosedを送信した内容と比較してください。
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 } ] }}アカウントに存在しない ID は、エラーを返さずに配列から除外されるため、返された件数をリクエストした件数と比較してください。
Webhook が設定されている場合、profile.updatedイベントが発生します。このイベントには、拠点ごとに60秒間で1回の配信にまとめるデバウンス処理が適用され、最初の編集時に配信されます。その時間枠内の後続の編集はまとめられ、changed_fieldsには、その時間枠を開始した編集のみが記述されます。イベントを受信したときに拠点を再取得し、時間枠が終了した後にもう一度取得してください。
次の手順
- ロゴ、カバー画像、写真をアップロードする:更新したレコードに画像を追加します。
- 拠点を検索し、管理対象ではなくなった拠点をアーカイブする:店舗コードで検索し、閉鎖した支店をアーカイブします。
- 拠点を更新するとID で拠点を取得する:プレイスアクションリンクと書き込み可能なすべてのフィールドを含むリファレンスページです。