Nhà phát triển

API xác minh email hoạt động ngay

Xác minh một địa chỉ theo thời gian thực, hoặc gửi cả danh sách dưới dạng batch. Mọi yêu cầu đều dùng HTTPS và trả về JSON. Tạo khóa API trong bảng điều khiển tại mục Khóa API.

  • REST và JSON
  • Callback cho batch
  • Dùng chung credit với bảng điều khiển
Trang khóa API trong BounceBell với các khóa đang hoạt động và biểu mẫu tạo khóa mới

Xác thực

Gửi khóa API dưới dạng bearer token trong header Authorization ở mọi yêu cầu. Giữ khóa trên máy chủ của bạn. Không bao giờ đặt khóa trong mã trình duyệt hoặc ứng dụng di động.

Authorization: Bearer YOUR_API_KEY

URL gốc cho mọi endpoint là https://bouncebell.com/api/v1.

Xác minh một địa chỉ

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

Tham sốBắt buộcMô tả
emailCóĐịa chỉ cần kiểm tra. Hãy mã hóa URL cho địa chỉ này.
timeoutKhôngSố giây chờ máy chủ thư, từ 3 đến 30. Mặc định là 10. Nếu hết thời gian, trạng thái là unknown và không tốn credit nào.

Ví dụ

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
}

Các trường kết quả

TrườngLoạiMô tả
emailstringĐịa chỉ như bạn đã gửi.
statusstringKết luận. Xem các trạng thái.
reasonstringLý do dẫn đến kết luận, ví dụ mailbox_not_found hoặc no_mail_server.
domainstringPhần tên miền, viết thường.
mx_recordstring or nullMáy chủ thư có mức ưu tiên cao nhất.
disposablebooleanTrue nếu tên miền là dịch vụ hộp thư tạm thời.
rolebooleanTrue với hộp thư dùng chung như info@ hoặc support@.
free_providerbooleanTrue với các nhà cung cấp hộp thư miễn phí như Gmail.
catch_allbooleanTrue khi tên miền chấp nhận mọi địa chỉ.
did_you_meanstring or nullĐịa chỉ đã sửa khi tên miền có vẻ bị gõ nhầm.
checked_atstringThời điểm chạy kiểm tra, theo định dạng ISO 8601 UTC.
credits_usedinteger1, hoặc 0 khi trạng thái là unknown.

Các trạng thái

Trạng tháiÝ nghĩaHành động đề xuất
validHộp thư tồn tại và nhận thư.Gửi
invalidĐịa chỉ, tên miền hoặc hộp thư không tồn tại.Loại bỏ
disposableDịch vụ hộp thư tạm thời.Loại bỏ
catch_allTên miền chấp nhận mọi địa chỉ, nên không thể xác nhận hộp thư.Xem xét
roleHộp thư dùng chung có tồn tại.Xem xét
unknownMáy chủ thư không đưa ra câu trả lời kịp thời. Không tính phí.Thử lại sau

Batch

Gửi tối đa 100.000 địa chỉ trong một yêu cầu. Batch chạy trong nền; hãy kiểm tra trạng thái định kỳ hoặc cung cấp callback_url và chúng tôi sẽ gọi URL đó khi batch hoàn tất.

Tạo batch

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 }

Credit cho mỗi địa chỉ duy nhất được giữ lại khi tạo batch, và kết quả không xác định được hoàn lại khi batch hoàn tất. Callback nhận một yêu cầu POST với {"event": "batch.completed", "batch_id": "...", "status": "done", "counts": {...}}. URL callback phải dùng HTTPS.

Kiểm tra tiến độ

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

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

Trạng thái là queued, running hoặc done. Khi trạng thái là done, phản hồi cũng có counts theo từng trạng thái.

Tải xuống kết quả

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

Mặc định trả về JSON. Thêm ?format=csv để nhận tệp CSV. Mỗi dòng có các trường giống như một lượt kiểm tra đơn lẻ.

Credit

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

{ "credits_remaining": 33420 }

Lỗi và giới hạn

Lỗi trả về phần thân JSON với mã error và message dễ đọc.

Mã HTTPLỗiCách xử lý
400bad_requestThiếu tham số hoặc tham số sai. Hãy đọc thông báo.
401invalid_keyHãy kiểm tra xem khóa có đúng và chưa bị thu hồi.
402no_creditsMua thêm credit.
403email_not_confirmedMở liên kết xác nhận chúng tôi đã gửi qua email khi bạn đăng ký.
404not_foundBatch không tồn tại hoặc đã bị xóa sau 30 ngày.
429rate_limitedHãy chậm lại. Chờ số giây ghi trong header Retry-After.
500server_errorThử lại sau một khoảng ngắn. Nếu vẫn tiếp diễn, hãy liên hệ bộ phận hỗ trợ.

Kiểm tra đơn lẻ được giới hạn 20 yêu cầu mỗi giây cho mỗi khóa. Hãy liên hệ nếu bạn cần nhiều hơn.