Bir konumun ayrıntılarını ve çalışma saatlerini güncelleyin
İletişim bilgilerini değiştirin; tek seferlik istisnalı tam haftalık saatleri yayımlayın, geçici kapanış ve Google kategorileri belirleyip sonucu okuyun.
POST /locations/update kısmi güncelleme yapar. Tüm alanlar input altında yer alır, zorunlu olan tek alan input.id alanıdır ve göndermediğiniz alanlar mevcut değerlerini korur. Aşağıdaki her bölüm yalnızca JSON istek gövdesini değiştirir.
1. Telefon numarasını ve web sitesini güncelleyin
id ile birlikte değiştirilecek alanları gönderin. Yayın platformları bizUrl değerini web sitesi URL'si olarak yayımlar. Python SDK'sındaki locations.update(), camelCase anahtarlarını içeren bir dict alır; Node SDK'sındaki updateLocation() ise aynı nesneyi alır.
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" } } }}Doğrulama başarısız olduğunda da HTTP 200 döndürülür; yanıtta success: false bulunur ve neden data.updateLocation.errors içinde belirtilir, bu nedenle durum kodu yerine success değerini kontrol edin. Her iki SDK da bu durumda ValidationError hatasını fırlatır.
2. Haftalık çalışma saatlerini ayarlayın
businessHours, haftanın her günü için bir öğe içeren bir dizidir. Her zaman yedi öğenin tamamını gönderin ve kapalı bir günü atlamak yerine type: "CLOSED" ve boş bir slots dizisiyle belirtin. Aynı gün içindeki zaman aralıkları çakışmamalıdır.
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": [] } ] }}'Bir tatil günü için aynı diziye bir SPECIAL öğesi ekleyin. Bu öğe yalnızca o tarihteki programın yerine geçer ve haftalık düzeni değiştirmez:
{ "day": "SPECIAL", "type": "CLOSED", "specialDate": "2026-12-25", "slots": [] }3. Geçici kapanış belirtin veya adresi gizleyin
temporarilyClosed: true, işletmeyi kapalı olarak işaretler ve çalışma saatlerinin yayımlanmasını durdurur. Yeniden açmak için değerini false olarak ayarlayın. Belirli bir hizmet bölgesinde faaliyet gösteren bir işletme için hideAddress: true ayarını yapın: ListingsAPI adresi konumda tutar ancak yayın platformlarına göndermez.
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 kategorilerini ayarlayın
Google Business Profile, sayısal subCategoryId değerinden ayrı, kendine özgü bir kategori sınıflandırmasına sahiptir. primaryGbpSiteCategoryId, gcid:restaurant gibi bir GCID alır; additionalGbpSiteCategoryIds ise bunlardan daha fazlasını alır. Her ikisi de countryIso temel alınarak çözümlenir, bu nedenle ülkeyi aynı çağrıda gönderin.
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"] }}'Bunları, alt kategoriler uç noktasından alınan tam sayı türündeki databaseId değerlerini kabul eden additionalCategoryIds ile karıştırmayın. Ülkeleri, eyaletleri ve kategorileri sorgulayın sayfasına bakın.
5. Konumu yeniden okuyun
GET /locations-by-ids, ids sorgu parametresinde JSON dizisi olarak iletilen bir veya daha fazla base64 kimliği için tam kaydı döndürür. phone, businessHours ve temporarilyClosed değerlerini gönderdiğiniz değerlerle karşılaştırın.
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 } ] }}Hesabınızda bulunmayan kimlikler hata verilmeden diziden çıkarılır, bu nedenle döndürülen öğe sayısını talep ettiğiniz öğe sayısıyla karşılaştırın.
Webhook'lar yapılandırılmışsa bir profile.updated olayı tetiklenir. İletim, her konum için 60 saniyede bir kez olacak şekilde sınırlandırılır ve bu sürenin başında gerçekleşir: bu zaman aralığındaki sonraki düzenlemeler birleştirilir ve changed_fields yalnızca aralığı başlatan düzenlemeyi açıklar. Olay geldiğinde ve zaman aralığı sona erdikten sonra konumu yeniden okuyun.
Sonraki adımlar
- Logo, kapak görseli ve fotoğraf yükleyin: az önce güncellediğiniz kayda görseller ekleyin.
- Konumları bulun ve artık yönetmediklerinizi arşivleyin: mağaza koduna göre arama yapın ve kapanmış şubeleri devre dışı bırakın.
- Bir konumu güncelleyin ve Konumları kimliklerine göre alın: yer işlemi bağlantılarını ve yazılabilir tüm alanları içeren başvuru sayfaları.