사업장 세부 정보 및 영업시간 업데이트
연락처 정보를 변경하고, 일회성 재정의가 포함된 전체 주간 영업 일정을 게시하고, 임시 휴업을 표시하고, 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 배열로 표시합니다. 하루 안의 시간 구간은 서로 겹치면 안 됩니다.
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는 오류 없이 배열에서 제외되므로 반환된 개수를 요청한 개수와 비교합니다.
웹훅이 구성되어 있으면 profile.updated 이벤트가 발생합니다. 이벤트 전달은 사업장별로 60초당 1회로 디바운스되며, 해당 시간 구간이 시작될 때 전달됩니다. 해당 구간 내의 후속 수정은 통합되며, changed_fields는 구간을 시작한 수정만 설명합니다. 이벤트가 도착하면 사업장을 다시 조회하고, 해당 시간 구간이 끝난 후 다시 한번 조회합니다.
다음 단계
- 로고, 커버 및 사진 업로드: 방금 업데이트한 레코드에 이미지를 추가합니다.
- 사업장 찾기 및 더 이상 관리하지 않는 사업장 보관 처리: 매장 코드로 검색하고 폐업한 지점을 정리합니다.
- 사업장 업데이트 및 ID로 사업장 조회: 장소 작업 링크와 쓰기 가능한 모든 필드를 포함하는 참조 페이지입니다.