Perbarui detail dan jam operasional lokasi
Ubah kontak, terbitkan jadwal mingguan lengkap dengan pengecualian satu kali, tandai tutup sementara, atur kategori Google, dan baca ulang perubahan.
POST /locations/update melakukan pembaruan parsial. Semua field ditempatkan di bawah input, input.id adalah satu-satunya field wajib, dan field yang Anda hilangkan tetap mempertahankan nilainya saat ini. Setiap bagian di bawah hanya mengubah isi permintaan JSON.
1. Perbarui nomor telepon dan situs web
Kirim id beserta field yang akan diubah. Platform publikasi memublikasikan bizUrl sebagai URL situs web. locations.update() pada Python SDK menerima dict dengan key camelCase, dan updateLocation() pada Node SDK menerima objek yang sama.
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" } } }}Kegagalan validasi tetap mengembalikan HTTP 200, dengan success: false dan alasannya di data.updateLocation.errors, jadi periksa success alih-alih kode status. Kedua SDK memunculkan ValidationError untuk kasus tersebut.
2. Tetapkan jam operasional mingguan
businessHours adalah array dengan satu entri untuk setiap hari dalam seminggu. Selalu kirim ketujuh entri tersebut, dan tandai hari tutup dengan type: "CLOSED" serta array slots kosong alih-alih menghilangkan entri hari tersebut. Interval dalam satu hari tidak boleh tumpang tindih.
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": [] } ] }}'Untuk hari libur, tambahkan entri SPECIAL ke array yang sama. Entri ini menggantikan jadwal hanya untuk tanggal tersebut dan membiarkan pola mingguan tetap seperti semula:
{ "day": "SPECIAL", "type": "CLOSED", "specialDate": "2026-12-25", "slots": [] }3. Tandai penutupan sementara atau sembunyikan alamat
temporarilyClosed: true menandai bisnis sebagai tutup dan menghentikan publikasi jam operasionalnya. Tetapkan nilainya ke false untuk membuka kembali. Untuk bisnis dengan area layanan, tetapkan hideAddress: true: ListingsAPI menyimpan alamat pada lokasi tetapi tidak mengirimkannya ke platform publikasi.
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. Tetapkan kategori Google
Google Business Profile memiliki taksonomi kategorinya sendiri, yang terpisah dari subCategoryId numerik. primaryGbpSiteCategoryId menerima GCID seperti gcid:restaurant, dan additionalGbpSiteCategoryIds menerima GCID tambahan. Keduanya dicocokkan berdasarkan countryIso, jadi kirim negara dalam panggilan yang sama.
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"] }}'Jangan samakan keduanya dengan additionalCategoryIds, yang menerima nilai integer databaseId dari endpoint subkategori. Lihat Cari negara, negara bagian, dan kategori.
5. Baca kembali lokasi
GET /locations-by-ids mengembalikan rekaman lengkap untuk satu atau beberapa ID base64, yang diteruskan sebagai array JSON dalam parameter kueri ids. Bandingkan phone, businessHours, dan temporarilyClosed dengan nilai yang Anda kirim.
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 yang tidak ada di akun Anda dihilangkan dari array tanpa kesalahan, jadi bandingkan jumlah yang dikembalikan dengan jumlah yang Anda minta.
Jika webhook dikonfigurasi, peristiwa profile.updated dipicu. Peristiwa ini dibatasi dengan debounce menjadi satu pengiriman per lokasi setiap 60 detik, dengan pengiriman dilakukan pada awal jendela waktu: pengeditan berikutnya dalam jendela waktu tersebut digabungkan, dan changed_fields hanya menjelaskan pengeditan yang memulai jendela waktu itu. Baca kembali lokasi saat peristiwa diterima, lalu sekali lagi setelah jendela waktu berakhir.
Langkah berikutnya
- Unggah logo, sampul, dan foto: tambahkan gambar ke rekaman yang baru saja Anda perbarui.
- Temukan lokasi dan arsipkan lokasi yang tidak lagi Anda kelola: cari berdasarkan kode toko dan nonaktifkan cabang yang sudah tutup.
- Perbarui lokasi dan Dapatkan lokasi berdasarkan ID: halaman referensi, termasuk tautan tindakan tempat dan setiap field yang dapat ditulis.