Hatalar ve hız sınırları
Hangi ürünü çağırdığınızdan bağımsız olarak, her Watch-IP endpoint'i hataları aynı biçimde döndürür ve hız sınırlarını aynı şekilde uygular.
Hata yanıtı biçimi
2xx olmayan bir yanıt, her zaman error (kararlı, makine tarafından okunabilir bir kod) ve message (insan tarafından okunabilir bir açıklama) içeren bir JSON nesnesidir. error, API sürümleri arasında sabit kalır; message metni değişebilir, bu yüzden eşleştirmeyi message üzerinden değil error üzerinden yapın.
Hata yanıtı
{
"error": "invalid_ip",
"message": "\"999.999.999.999\" is not a valid IPv4 or IPv6 address."
}Yaygın durum kodları
Bir endpoint'in döndürebileceği kodların tam kümesi kendi referans sayfasında belgelenir; burada listelenenler API genelinde paylaşılan kodlardır.
- 400
- Hatalı biçimlendirilmiş girdi — geçersiz bir IP adresi, boş veya aşırı büyük bir toplu istek (POST /v1/lookup en fazla 100 IP'ye izin verir) ya da eksik bir zorunlu alan.
- 401
- Eksik veya geçersiz API anahtarı.
- 403
- Bu rota için yanlış anahtar türü (bir gizli anahtar endpoint'inde yayınlanabilir bir anahtar kullanılması ya da tam tersi) veya — yalnızca GET /v1/geo ve POST /v1/email/validate için — anahtarın izin verilen origin listesinde olmayan bir Origin/Referer. Origin durumunda ayrıca CORS başlığı da ayarlanmaz, bu yüzden tarayıcı bu gövdeden bağımsız olarak yanıtı engeller.
- 422
- Anlamsal olarak geçerli ama işlenemeyen girdi — şu anda yalnızca POST /v1/risk/check için, sağlanan IP bir konuma çözümlenemediğinde geçerlidir.
- 429
- Geçerli bir dakikalık pencere için hız sınırı aşıldı.
Hız sınırları
Hız sınırları, rota bazında değil, çağırdığınız her endpoint arasında paylaşılan, sabit bir dakikalık pencerede müşteri hesabı başına uygulanır. Sınır öğeleri değil HTTP çağrılarını sayar: POST /v1/lookup ve POST /v1/email/batch, 1 ya da 100 öğe taşısın, tek bir istek sayılır; bir e-posta liste işini oluşturmak, durumunu sorgulamak ve sonuçlarını indirmek de öyle. Hız sınırı nedeniyle dönen bir 429 (error: "rate_limit_exceeded"), geçerli pencerenin sıfırlanmasına kalan saniye sayısını veren bir Retry-After başlığı içerir — o kadar bekleyip yeniden deneyin.
Güvenli şekilde yeniden deneme
GET /v1/geo, GET /v1/lookup/{ip}, POST /v1/lookup ve POST /v1/email/validate salt okunurdur ve bir ağ hatasından hemen sonra yeniden denenmesi güvenlidir. POST /v1/risk/check varsayılan olarak kayıtlı bir referans noktasını günceller — bu referansı değiştirmemesi gereken deneme amaçlı bir yeniden deneme yapmanız gerekiyorsa önce commit:false gönderin.