İşletme kayıtları
Tüm işletme kaydı uç noktaları: cURL/Python/Node örnekleri, premium eşitleme durumu, sesli asistanlar, konum/hesap bazlı mükerrer tespiti ve engelleme.
İşletme kaydı, bir konumun bir yayın platformunun dizinindeki kaydıdır. Bir konum oluşturulduğunda planınızdaki her yayın platformu için bir işletme kaydı kuyruğa alınır; işletme kaydı uç noktaları ise her birinin durumunu okur, tespit edilen yinelenen kayıtları listeler ve bunları onaylar veya reddeder. Dört GET uç noktası bir Read (okuma) anahtarıyla çalışır; iki POST uç noktası ise bir Write (yazma) anahtarı gerektirir.
Bir bakışta uç noktalar
Premium işletme kaydı durumunu okuyun
GET /locations/{locationId}/listings/premium
Konumun planındaki her premium yayın platformu için data.listingsForLocation altında bir kayıt döndürür. Bu, sayfalanmış bir liste değil, düz bir dizidir. Aynı düzeydeki /listings/additional yolu, ücretsiz dizinleri aynı yapıda döndürür; listingType sorgu parametresi yoktur ve bu parametreyle gönderilen değer yok sayılır.
Parametreler
curl https://listingsapi.com/api/v4/locations/TG9jYXRpb246MTgwMDI4OQ==/listings/premium \-H "Authorization: API $LISTINGSAPI_KEY"{ "data": { "listingsForLocation": [ { "id": "TGlzdGluZzoxMDQ0Njg3MjM=", "site": { "databaseId": "1", "name": "Google Maps", "url": "maps.google.com" }, "syncStatus": "REQUIRING_ACTION", "displayStatus": "Connect your account to sync the listing", "actionRequired": true, "listingUrl": null, "syncIssue": null, "lastUpdate": "2026-07-06T18:33:28Z" }, { "id": "TGlzdGluZzoxMDQ0Njg3Mjc=", "site": { "databaseId": "387", "name": "BeLocalFocussed", "url": "belocalfocussed.com" }, "syncStatus": "SYNCED", "displayStatus": "Synced", "actionRequired": false, "listingUrl": "https://belocalfocussed.com/jenny-home-26x0ffkd0e", "syncIssue": null, "lastUpdate": "2026-07-06T18:33:30Z" }, { "id": "TGlzdGluZzoxMDQ0Njg3MDk=", "site": { "databaseId": "301", "name": "Local Mint", "url": "localmint.com" }, "syncStatus": "FAILED", "displayStatus": "Partner experiencing issues; awaiting response", "actionRequired": false, "listingUrl": null, "syncIssue": "Publisher requires website URL", "lastUpdate": "2026-07-06T18:34:03Z" } ] }}syncStatus değerine göre işlem akışını dallandırın. Kullanıcıya displayStatus değerini gösterin, yayın platformunun gerekçesi için syncIssue değerini okuyun ve ilerlemesi durmuş bir gönderimi tespit etmek için lastUpdate değerini kullanın. listingUrl yalnızca yayındaki satırlar için ayarlanır.
Google Maps, Facebook ve Waze, ilgili hesap bağlanana kadar displayStatus: "Connect your account to sync the listing" ile birlikte REQUIRING_ACTION durumunda kalır. Yeni bir konum için bu beklenen bir durumdur.
Sesli asistan durumunu okuyun
GET /locations/{locationId}/voice-assistants
data.voiceAssistantsForLocation altında her sesli asistan için bir kayıt döndürür: Google Assistant, Amazon Alexa, Apple Siri, Microsoft Cortana ve Samsung Bixby. Bu, premium uç noktasına göre daha az sayıda durum içeren düz bir dizidir.
Parametreler
curl https://listingsapi.com/api/v4/locations/TG9jYXRpb246MTgwMDI4OQ==/voice-assistants \-H "Authorization: API $LISTINGSAPI_KEY"{ "data": { "voiceAssistantsForLocation": [ { "databaseId": "104468723", "voiceIdentifier": "GOOGLE_ASSISTANT", "name": "Google Assistant", "connectedAccountId": null, "syncStatus": "REQUIRING_ACTION", "actionRequired": true, "syncIssue": null, "errors": [] }, { "databaseId": "104468711", "voiceIdentifier": "SIRI", "name": "Siri", "connectedAccountId": null, "syncStatus": "IN_PROGRESS", "actionRequired": false, "syncIssue": null, "errors": [] } ] }}actionRequired değeri true olan veya syncIssue değeri ayarlanmış tüm satırları işaretleyin. errors, yayın platformu tarafındaki hata metinlerini içerir; connectedAccountId ise geçerli olduğu durumlarda senkronizasyonu sağlayan bağlı hesabı belirtir. Google Assistant sonuçları Google Business Profile bağlantısından gelir; bu nedenle ilgilenilmesi gereken bir durumun en yaygın nedeni Google bağlantısının eksik olmasıdır. Siri sonuçları, konumun Apple Maps işletme kaydından gelir.
Hesap genelindeki mükerrer kayıtları bir araya getirin
GET /locations/listings/duplicates
Anahtarın erişebildiği, tüm konumlar ve yayın platformlarında tespit edilen bütün mükerrer kayıtları data.duplicateListingsRollup altında döndürür. Ofset tabanlı bir sayfadır: girdi olarak page ve perPage alır; çıktı olarak records[] ile birlikte pageInfo.totalRecords, pageInfo.totalPages ve pageInfo.hasNextPage döndürür. Filtreler JSON değil, düz sorgu parametreleridir. Hiçbir parametre verilmediğinde status varsayılan olarak POTENTIAL, tag ise all değerini alır; dolayısıyla parametresiz bir çağrı, hesabın açık mükerrer kayıtlarını döndürür.
Parametreler
Python ve Node sarmalayıcıları yalnızca tag ve page parametrelerini sunar. status veya siteId ile filtrelemek ya da perPage değerini ayarlamak için Mükerrer işletme kayıtlarını yönetin bölümünde gösterildiği gibi rotayı doğrudan çağırın.
curl "https://listingsapi.com/api/v4/locations/listings/duplicates?status=POTENTIAL&page=1&perPage=50" \-H "Authorization: API $LISTINGSAPI_KEY"{ "data": { "duplicateListingsRollup": { "pageInfo": { "hasNextPage": true, "hasPreviousPage": false, "totalPages": 34, "totalRecords": 1673 }, "records": [ { "id": "3329229", "name": "Woodbury Train Station", "nameValid": false, "duplicateProcessingState": "POTENTIAL", "liveLink": "http://citysquares.com/b/woodbury-train-station-23598450", "locationId": "73451", "siteName": "City Squares", "siteUrl": "citysquares.com" } ] } }}Bir araya getirilen kayıtlar, mükerrer kayıtların nerede olduğunu gösterir: her kayıt locationId ve siteName bilgilerini belirtir. duplicateProcessingState, konum bazındaki uç noktanın status olarak bildirdiği yaşam döngüsü durumuyla aynıdır. hasNextPage değeri false olana kadar sayfaları teker teker dolaşın; bekleme içermeyen bir döngü, 429 hatasına ulaşmanın en hızlı yoludur.
Tek bir konumun mükerrer kayıtlarını listeleyin
GET /locations/{locationId}/listings/duplicates
Tek bir konum için tespit edilen bütün mükerrer kayıtları, yayın platformu sitesine göre gruplandırılmış olarak data.duplicateListingsForLocation altında döndürür. Bu, düz bir dizidir. Her grup, bir listings dizisi içeren bir sitedir (name, url) ve her öğe, her iki işaretleme uç noktasının da kabul ettiği listingItemId değerini taşır. Boş bir dizi, hiçbir mükerrer kayıt tespit edilmediği anlamına gelir.
Parametreler
curl https://listingsapi.com/api/v4/locations/TG9jYXRpb246MTgwMDI4OQ==/listings/duplicates \-H "Authorization: API $LISTINGSAPI_KEY"{ "data": { "duplicateListingsForLocation": [ { "id": "U2l0ZToxNTA=", "name": "City Squares", "url": "citysquares.com", "listings": [ { "id": "RHVwbGljYXRlOjIzNTk4NDUw", "listingItemId": "TGlzdGluZ0l0ZW06MjM1OTg0NTA=", "name": "Woodbury Train Station", "liveLink": "http://citysquares.com/b/woodbury-train-station-23598450", "status": "POTENTIAL" } ] } ] }}Öğeyi incelemek için liveLink bağlantısını açın, ardından listingItemId değerini saklayın. Node SDK'da sonraki çağrıya iletilecek değer, düzleştirilmiş d.id değeridir. status, yukarıda hesap genelinde bir araya getirilen kayıtlardakiyle aynı dört değeri kullanır.
İşletme kaydı öğelerinin mükerrer olduğunu onaylayın
POST /locations/listings/mark-as-duplicate
İşletme kaydı öğelerini, yayın platformunda yayından kaldırılabilmeleri için mükerrer olduğu onaylanmış olarak işaretler. listingItemId değerlerini input altında gönderin ve her öğe için ayrı bir çağrı yapmak yerine, bir konum için onaylanan tüm öğeleri tek bir çağrıda toplu olarak gönderin. Bu bir yazma işlemidir ve Write (Yazma) anahtarı gerektirir.
Parametreler
curl -X POST https://listingsapi.com/api/v4/locations/listings/mark-as-duplicate \-H "Authorization: API $LISTINGSAPI_KEY" \-H "Content-Type: application/json" \-d '{ "input": { "locationId": "TG9jYXRpb246MTgwMDI4OQ==", "listingItemIds": ["TGlzdGluZ0l0ZW06MjM1OTg0NTA="] }}'{ "data": { "markAsDuplicate": { "success": true, "errors": null } }}success: true, öğelerin kabul edildiği ve PROCESSING durumuna geçtiği anlamına gelir. success: false içeren bir 200 veya bir 400, öğeleri code, message ve path bilgilerini taşıyan bir errors dizisiyle birlikte gelir; bunun olağan nedeni bilinmeyen veya hatalı biçimlendirilmiş bir id değeridir. Python SDK yanıt gövdesini döndürür; Node SDK ise bunun yerine ValidationError istisnasını fırlatır, dolayısıyla başarıyla sonuçlanan bir promise, işlemin başarılı olduğu anlamına gelir.
İşletme kaydı öğelerini mükerrer olmadıkları gerekçesiyle değerlendirme dışı bırakın
POST /locations/listings/mark-as-not-duplicate
Olası mükerrer kayıtları yanlış pozitif olarak değerlendirme dışı bırakır. Tespit mekanizması temkinlidir ve aynı franchise'a bağlı başka bir şubeyi, geçerli ikinci bir profili veya adı değiştirilmiş bir konumu işaretler. Değerlendirme dışı bırakıldıktan sonra öğeler, her iki mükerrer kayıt uç noktasında da görünmeyi bırakır. Yukarıdaki uç noktayla aynı istek gövdesini kabul eder ve yanlışlıkla işaretlenmiş bir öğenin işaretini geri almak için de kullanılır.
Parametreler
curl -X POST https://listingsapi.com/api/v4/locations/listings/mark-as-not-duplicate \-H "Authorization: API $LISTINGSAPI_KEY" \-H "Content-Type: application/json" \-d '{ "input": { "locationId": "TG9jYXRpb246MTgwMDI4OQ==", "listingItemIds": ["TGlzdGluZ0l0ZW06MjM1OTg0NTA="] }}'{ "data": { "markAsNotDuplicate": { "success": true, "errors": null } }}Yanıt, mükerrer olarak işaretleme çağrısıyla aynı success ve errors alanlarını içeren data.markAsNotDuplicate olur. Değerlendirme dışı bırakılan bir öğe, mükerrer olmadığı onaylanmış olarak kaydedilir ve bir sonraki tespit taramasında yeniden görünmez.
Karşılaşacağınız hatalar
Tüm kodlar hata başvuru kaynağında listelenmiştir.
Sonraki adımlar
- İşletme kaydı durumunu ve yayındaki bağlantıları kontrol edin: premium ve sesli asistan uç noktalarını bir kapsam kontrol paneline dönüştürün.
- İşletme kaydı hatalarını bulun ve düzeltin:
REQUIRING_ACTIONveFAILEDsatırlarını tek tek ele alın. - Yinelenen işletme kayıtlarını yönetin: durum takibi de dahil olmak üzere, yinelenen işletme kayıtlarına yönelik dört uç noktayı kapsayan inceleme süreci.
- Google'ı bağlayın ve konumları içe aktarın: Google Maps ve Google Assistant'ın kullandığı Google Business Profile'ı bağlayın.
- Apple Business Connect'i bağlayın: sahibinin doğrulanmış Apple Business hesabı aracılığıyla Apple Maps'te yayınlayın.
- Kaynak ana sayfası: İşletme kayıtları. SDK başvuru kaynakları: Python işletme kayıtları, Node işletme kayıtları.