Kaydolun ve 100 ücretsiz kontrol almak için destekle iletişime geçin.Ücretsiz kaydol
Toplu Orijinal Operatör Sorgulama API: Dosya Görevi Gönderme ve CSV İçin Sorgulama konulu CarrierLookup iş akışı görseli
Bu CarrierLookup makalesinde ele alınan iş akışına görsel bir genel bakış.

CarrierLookup toplu dosya görevi için geliştirici kılavuzu: bir ülke kodu ile TXT veya CSV dosyası gönderme, durum sorgulama ve tek bir CSV sonucu okuma.

CarrierLookup toplu Orijinal Operatör Sorgulama API, asenkron bir dosya görevidir. POST /api/v1/bulk-tasks adresine, country alanı dosya kısmından önce gelecek şekilde bir multipart isteği gönderin, ardından durum success veya failed olana kadar GET /api/v1/bulk-tasks/{id} üzerinden 30 saniyeyi geçmeyecek aralıklarla durumu kontrol edin. Başarılı bir görev, orijinal operatör, temel operatör, numara türü ve tahsisat alanlarını içeren indirilebilir bir CSV dosyası döndürür. Bu yöntem, tek bir ülke için büyük listelerle çalışmaya uygundur. Ürün bazlı limitler geçerlidir, bu nedenle önce API dokümantasyonundan bunları doğrulayın.

API'yi çağırmadan önce dosyayı hazırlayın

Temiz bir dosya, herhangi bir yeniden deneme mantığından daha fazla zaman kazandırır. Toplu işlem rotası, her satırda ülke kodlu bir numara bulunan tek sütunlu bir TXT veya CSV dosyasını kabul eder. XLSX formatı kabul edilmez, bu nedenle elektronik tabloları önce düz metin veya CSV olarak dışa aktarın.

Her satırı ülke koduyla birlikte rakamlar olarak yazın. Liste esasen tek bir ülkeden oluşmalıdır, çünkü görev için tek bir ülke seçilir ve bunun dışındaki numaralar hariç tutulur.

Kısa bir hazırlık rutini:

  1. Tek bir sütunu dışa aktarın ve başlıkları veya notları kaldırın.
  2. Her satırı ülke kodlu rakam formatına normalleştirin.
  3. Ana listeyi ülkeye göre bölün ve her ülke için bir dosya oluşturun.
  4. Dosyayı API dokümantasyonundaki güncel limitlere göre kontrol edin. Orada belgelenen varsayılan dosya boyutu üst sınırı, canlı hizmetin döndürdüğü bir limit ile geçersiz kılınabilir, bu nedenle canlı değer geçerlidir.

Ön işleme; geçersiz satırları, kopyaları, ülke kodu olmayan numaraları ve seçilen ülke dışındaki numaraları hariç tutacaktır ve bunlardan ücret alınmaz. Bunları önceden kendiniz kaldırmak, gerçekte kaç satır gönderdiğinize dair daha net bir resim sunar. Gönderdiğiniz dosyanın tam bir kopyasını ve satır sayısını saklayın; böylece nihai CSV'yi kaynak listenizle daha sonra karşılaştırabilir ve hangi satırların elendiğini görebilirsiniz.

Görevi multipart isteği ile gönderin

POST /api/v1/bulk-tasks ile güvenilir bir sunucudan gönderim yapın. X-API-Key başlığı ile kimlik doğrulaması yapın ve anahtarı asla tarayıcı kodunda açık etmeyin.

Gövde, iki parçadan oluşan multipart form verisidir: seçilen ülke ve dosya. Sıralama önemlidir, bu nedenle ülke kısmını dosya kısmından önce yerleştirin. Birçok HTTP istemcisi gövdeyi bir sözlükten oluşturur ve sıralama ekleme sırasını takip edebilir, bu nedenle istemcinizin bunu nasıl serileştirdiğini kontrol edin.

curl ile çağrı taslağı:

curl -X POST https://carrierlookup.online/api/v1/bulk-tasks \
  -H "X-API-Key: $CARRIERLOOKUP_API_KEY" \
  -F "country=GB" \
  -F "file=@uk_numbers.csv"

Listeyle eşleşen ISO ülke kodunu kullanın. Yanıt, sorgulama için göreve başvurabileceğiniz bir yol sağlar, bu nedenle bu referansı kendi iş kaydınızla saklayın. Ekstra alanlar, JSON numara dizisi, webhook'lar veya iptal çağrıları icat etmeyin. Yalnızca dosya gönderimi ve durum okumaları belgelenmiştir.

API'yi yormadan görevi sorgulayın

Durumu GET /api/v1/bulk-tasks/{id} ile okuyun. Bir görev üç durumdan birindedir: processing, success veya failed.

30 saniyede birden daha sık sorgulama yapmayın. Daha sık yapılan bir döngü işi hızlandırmaz. Normal bir tamamlanma süresi belgelenmemiştir ve numara bazlı bir ilerleme durumu yoktur, bu nedenle döngüyü süre tahminine göre değil, duruma göre oluşturun.

import time, requests

def wait_for_task(task_ref, headers):
    while True:
        r = requests.get(f"https://carrierlookup.online/api/v1/bulk-tasks/{task_ref}", headers=headers, timeout=30)
        state = r.json()["data"]["status"]
        if state in ("success", "failed"):
            return state
        time.sleep(30)

Bu taslaktaki alan adlarını yer tutucu olarak değerlendirin ve tam yanıt yapısını API dokümantasyonundan alın. Üretim ortamında, iş programınıza uyan maksimum bir bekleme süresi ekleyin, gözlemlenen son durumu saklayın ve bir görev, toleransınızdan daha uzun süre processing durumunda kalırsa bir operatör uyarısı tetikleyin.

CSV'yi indirin ve okuyun

Durum success olduğunda sonucu indirin. ZIP değil, bir CSV alırsınız. Bu dosya; sonuç dönen numaralar için tanımlayıcıyı, operatörü, temel operatörü, numara türünü, ülke kodunu, bölgeyi ve şehri içerir.

Üç okuma kuralı:

  • Tanımlayıcıda artı işareti yoktur. Ülke koduyla birlikte boşluksuz düz rakamlardır. Birleştirme yapmadan önce kendi anahtarlarınızı aynı şekilde normalleştirin.
  • Boş hücreler Mevcut olmadığı anlamına gelir. Bunları mevcut olmayan değerler olarak tutun ve negatif bir sonuca dönüştürmeyin.
  • Operatör orijinal tahsisattır. Taşıma sonrası güncel operatör değildir. Bölge ve şehir, bir kişinin veya cihazın nerede olduğunu değil, numaranın tahsisat coğrafyasını tanımlar.

Dosyayı önce bir hazırlık tablosuna yükleyin, ardından anahtara göre iletişim kayıtlarınızla birleştirin. Görev referansını ve çalıştırma tarihini hazırlık tablosunda tutun, böylece sonraki denetimlerde hangi çalıştırmanın hangi değerleri ürettiği anlaşılabilir. CSV'nin bir numaranın ulaşılabilir olup olmadığını belirten bir sütunu olmadığını ve kendi kurallarınızın bunu çıkarmaması gerektiğini unutmayın.

Hatalar, rezervasyon ve bakiye

Toplu bir görev, gönderdiğinizde tahmini bir maliyeti rezerve eder ve yalnızca sonuç dönen numaralar için ücret alır. Rezervasyonun kullanılmayan kısmı görev bittiğinde aynı cüzdana döner ve başarısız bir görev tüm rezervasyonunu iade eder. Bu, bakiyeniz içindeki bir mutabakattır ve bir satın alma iadesi değildir.

Bir görev, örneğin çok az geçerli mobil numara tahmin edildiğinde veya başka bir kabul koşulu karşılanmadığında hazırlık sırasında başarısız olabilir. Bu durumda, dosyayı yukarıda açıklanan hariç tutmalar için gözden geçirin, listeyi düzeltin ve aynı dosyayı körü körüne yeniden denemek yerine yeni bir görev gönderin.

Göndermeden önce GET /api/v1/balance adresini kontrol edin. Bakiyeyi herhangi bir ücret almadan okur. Zamanlanmış bir iş akışında, bakiyeyi beklenen liste boyutunuzla karşılaştırın ve eğer bakiye yetersizse erken durdurun, aksi takdirde karşılanamayan bir rezervasyon görevi durduracaktır. Ülke ayrımından sonra kalan küçük gruplar için, POST /api/v1/batch-check üzerinden senkron çoklu istek, başka bir dosya görevinden daha basit olabilir.

SSS

Geliştiriciler multipart hataları olmadan nasıl toplu görev gönderebilir?

Multipart gövdesinde ülke alanını dosya alanından önce koyun, dosyayı her satırda bir ülke kodlu numara olacak şekilde düz TXT veya CSV olarak gönderin ve API anahtarını güvenilir bir sunucudan X-API-Key başlığında tutun. HTTP istemcinizin form alanlarını nasıl sıraladığını kontrol edin.

Geliştiriciler görev durumu için sorgulama aralığını nasıl seçebilir?

Durum çağrısını 30 saniyede birden daha sık sorgulamayın ve durum success veya failed olduğunda durun. Normal bir tamamlanma süresi veya numara bazlı ilerleme belgelenmemiştir, bu nedenle kendi maksimum bekleme sürenizi ayarlayın ve bir görev bunu aştığında bir operatörü uyarın.

Ekipler başarısız bir toplu görevi nasıl yönetebilir?

Başarısızlığı dosya veya kabul koşulları hakkında bir sinyal olarak okuyun. Rezervasyon tamamen iade edilir, bu nedenle listeyi geçersiz satırlar, kopyalar, eksik ülke kodları ve seçilen ülke dışındaki numaralar için gözden geçirin, düzeltin ve yeni bir görev gönderin.

Daha Fazla Bilgi

İş akışınızın bir sonraki adımına uyan ürün bilgilerini seçin.

Kaynaklar