Dla programistów

API do weryfikacji adresów e-mail, które po prostu działa

Weryfikuj jeden adres w czasie rzeczywistym lub wyślij całą listę jako partię. Wszystkie żądania używają HTTPS i zwracają JSON. Klucze API utworzysz w panelu, w sekcji Klucze API.

  • REST i JSON
  • Wywołania zwrotne dla partii
  • Te same kredyty co w panelu
Strona kluczy API w BounceBell z aktywnymi kluczami i formularzem tworzenia nowego klucza

Uwierzytelnianie

Przesyłaj klucz API jako token typu bearer w nagłówku Authorization każdego żądania. Przechowuj klucze na swoim serwerze. Nigdy nie umieszczaj ich w kodzie przeglądarki ani w aplikacjach mobilnych.

Authorization: Bearer YOUR_API_KEY

Bazowy URL każdego endpointu to https://bouncebell.com/api/v1.

Zweryfikuj jeden adres

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

ParametrWymaganeOpis
emailTakAdres do sprawdzenia. Zakoduj go w formacie URL.
timeoutNieCzas oczekiwania na serwer pocztowy w sekundach, od 3 do 30. Domyślnie 10. Jeśli czas minie, status to unknown i kredyt nie jest zużywany.

Przykład

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
}

Pola wyniku

PoleTypOpis
emailstringAdres w postaci, w jakiej został wysłany.
statusstringWerdykt. Zobacz statusy.
reasonstringUzasadnienie werdyktu, na przykład mailbox_not_found lub no_mail_server.
domainstringCzęść domenowa, małymi literami.
mx_recordstring or nullSerwer pocztowy o najwyższym priorytecie.
disposablebooleanTrue, jeśli domena jest usługą tymczasowych skrzynek.
rolebooleanTrue dla wspólnych skrzynek, takich jak info@ lub support@.
free_providerbooleanTrue dla darmowych dostawców poczty, takich jak Gmail.
catch_allbooleanTrue, gdy domena akceptuje każdy adres.
did_you_meanstring or nullPoprawiony adres, gdy domena wygląda na literówkę.
checked_atstringCzas wykonania sprawdzenia w formacie ISO 8601 UTC.
credits_usedinteger1 lub 0, gdy status to unknown.

Statusy

StatusZnaczenieSugerowane działanie
validSkrzynka istnieje i przyjmuje pocztę.Wyślij
invalidAdres, domena lub skrzynka nie istnieje.Usuń
disposableUsługa tymczasowych skrzynek.Usuń
catch_allDomena akceptuje wszystkie adresy, więc nie można potwierdzić skrzynki.Do sprawdzenia
roleIstniejąca wspólna skrzynka.Do sprawdzenia
unknownSerwer pocztowy nie odpowiedział na czas. Bez opłaty.Spróbuj później

Partie

Wyślij do 100 000 adresów w jednym żądaniu. Partia przetwarza się w tle. Odpytuj o jej status lub podaj callback_url, a wywołamy go po zakończeniu partii.

Utwórz partię

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 }

Kredyty za każdy unikalny adres są blokowane przy tworzeniu partii, a za nieznane wyniki zwracane po jej zakończeniu. Wywołanie zwrotne otrzymuje żądanie POST z {"event": "batch.completed", "batch_id": "...", "status": "done", "counts": {...}}. Adresy URL wywołań zwrotnych muszą używać HTTPS.

Postęp sprawdzania

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

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

Status to queued, running lub done. Gdy jest done, odpowiedź zawiera także counts według statusu.

Pobierz wyniki

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

Domyślnie zwraca JSON. Dodaj ?format=csv, aby otrzymać plik CSV. Każdy wiersz ma te same pola co pojedyncze sprawdzenie.

Kredyty

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

{ "credits_remaining": 33420 }

Błędy i limity

Błędy zwracają treść JSON z kodem error i czytelnym komunikatem message.

Kod HTTPBłądCo zrobić
400bad_requestBrakuje parametru lub jest nieprawidłowy. Przeczytaj komunikat.
401invalid_keySprawdź, czy klucz jest poprawny i nie został unieważniony.
402no_creditsDokup kredyty.
403email_not_confirmedOtwórz link potwierdzający, który wysłaliśmy e-mailem przy rejestracji.
404not_foundPartia nie istnieje lub została usunięta po 30 dniach.
429rate_limitedZwolnij. Odczekaj liczbę sekund podaną w nagłówku Retry-After.
500server_errorSpróbuj ponownie po krótkiej przerwie. Jeśli problem nie ustąpi, skontaktuj się z pomocą.

Pojedyncze sprawdzenia są ograniczone do 20 żądań na sekundę na klucz. Jeśli potrzebujesz więcej, daj nam znać.