Geliştiriciler

Sorunsuz çalışan bir e-posta doğrulama API'si

Tek bir adresi gerçek zamanlı doğrulayın veya bütün bir listeyi toplu iş olarak gönderin. Tüm istekler HTTPS kullanır ve JSON döndürür. API anahtarlarını panelinizdeki API anahtarları bölümünden oluşturun.

  • REST ve JSON
  • Toplu geri çağrılar
  • Paneldekiyle aynı krediler
BounceBell'deki API anahtarları sayfası: etkin anahtarlar ve yeni anahtar oluşturma formu

Kimlik doğrulama

API anahtarınızı her istekte Authorization başlığında bearer token olarak gönderin. Anahtarları sunucunuzda saklayın. Asla tarayıcı koduna veya mobil uygulamalara koymayın.

Authorization: Bearer YOUR_API_KEY

Tüm uç noktalar için temel URL https://bouncebell.com/api/v1 şeklindedir.

Tek bir adresi doğrulayın

GET https://bouncebell.com/api/v1/verify

ParametreZorunluAçıklama
emailEvetKontrol edilecek adres. URL kodlamasıyla gönderin.
timeoutHayırPosta sunucusu için beklenecek saniye, 3 ile 30 arası. Varsayılan 10. Süre dolarsa durum unknown olur ve kredi kullanılmaz.

Örnek

curl "https://bouncebell.com/api/v1/verify?email=rini.elizabeth%40acme-foods.example" \
  -H "Authorization: Bearer YOUR_API_KEY"
{
  "email": "rini.elizabeth@acme-foods.example",
  "status": "valid",
  "reason": "mailbox_exists",
  "domain": "acme-foods.example",
  "mx_record": "mx1.acme-foods.example",
  "disposable": false,
  "role": false,
  "free_provider": false,
  "catch_all": false,
  "did_you_mean": null,
  "checked_at": "2026-10-30T09:30:12Z",
  "credits_used": 1
}

Sonuç alanları

AlanTürAçıklama
emailstringGönderdiğiniz haliyle adres.
statusstringSonuç. Durumlara bakın.
reasonstringSonuca neden ulaştığımız, örneğin mailbox_not_found veya no_mail_server.
domainstringAlan adı kısmı, küçük harflerle.
mx_recordstring or nullEn yüksek önceliğe sahip posta sunucusu.
disposablebooleanAlan adı bir geçici gelen kutusu hizmetiyse true.
rolebooleaninfo@ veya support@ gibi ortak gelen kutuları için true.
free_providerbooleanGmail gibi ücretsiz posta kutusu sağlayıcıları için true.
catch_allbooleanAlan adı her adresi kabul ettiğinde true.
did_you_meanstring or nullAlan adı yazım hatası gibi göründüğünde düzeltilmiş adres.
checked_atstringKontrolün yapıldığı zaman, ISO 8601 UTC biçiminde.
credits_usedinteger1, durum unknown olduğunda 0.

Durumlar

DurumAnlamıÖnerilen işlem
validPosta kutusu mevcut ve e-posta kabul ediyor.Gönder
invalidAdres, alan adı veya posta kutusu mevcut değil.Kaldır
disposableGeçici bir gelen kutusu hizmeti.Kaldır
catch_allAlan adı tüm adresleri kabul ediyor, bu yüzden posta kutusu onaylanamaz.İncele
roleVar olan ortak bir gelen kutusu.İncele
unknownPosta sunucusu zamanında yanıt vermedi. Ücret alınmaz.Daha sonra tekrar deneyin

Toplu işler

Tek bir istekte en fazla 100.000 adres gönderin. Toplu iş arka planda çalışır; durumunu sorgulayın veya bir callback_url verin, toplu iş bittiğinde onu çağıralım.

Toplu iş oluştur

POST https://bouncebell.com/api/v1/batches

curl -X POST "https://bouncebell.com/api/v1/batches" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "October import", "emails": ["a@example.com", "b@example.com"],
       "callback_url": "https://yourapp.example/hooks/bouncebell"}'
{ "id": "bat_8f2k1q3m9x7w4p", "status": "queued", "total": 2, "done": 0 }

Toplu iş oluşturulduğunda her benzersiz adres için krediler ayrılır ve iş bittiğinde bilinmeyen sonuçlar iade edilir. Geri çağrı, {"event": "batch.completed", "batch_id": "...", "status": "done", "counts": {...}} içeren bir POST isteği alır. Geri çağrı URL'leri HTTPS kullanmalıdır.

İlerlemeyi kontrol et

GET https://bouncebell.com/api/v1/batches/{id}

{ "id": "bat_8f2k1q3m9x7w4p", "status": "running", "total": 2, "done": 1 }

Durum queued, running veya done olur. done olduğunda yanıt, duruma göre counts değerlerini de içerir.

Sonuçları indir

GET https://bouncebell.com/api/v1/batches/{id}/results

Varsayılan olarak JSON döndürür. CSV dosyası için ?format=csv ekleyin. Her satır, tekil kontrolle aynı alanlara sahiptir.

Krediler

GET https://bouncebell.com/api/v1/credits

{ "credits_remaining": 33420 }

Hatalar ve sınırlar

Hatalar, bir error kodu ve okunabilir bir message içeren JSON gövdesi döndürür.

HTTP koduHataYapılacaklar
400bad_requestBir parametre eksik veya hatalı. Mesajı okuyun.
401invalid_keyAnahtarın doğru olduğunu ve iptal edilmediğini kontrol edin.
402no_creditsDaha fazla kredi satın alın.
403email_not_confirmedKayıt olduğunuzda e-postayla gönderdiğimiz onay bağlantısını açın.
404not_foundToplu iş mevcut değil veya 30 gün sonra silindi.
429rate_limitedYavaşlayın. Retry-After başlığındaki saniye kadar bekleyin.
500server_errorKısa bir süre sonra tekrar deneyin. Sorun devam ederse destekle iletişime geçin.

Tekil kontroller anahtar başına saniyede 20 istekle sınırlıdır. Daha fazlasına ihtiyacınız varsa bize sorun.