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
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ộc | Mô tả |
|---|---|---|
email | Có | Địa chỉ cần kiểm tra. Hãy mã hóa URL cho địa chỉ này. |
timeout | Không | Số 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ường | Loại | Mô tả |
|---|---|---|
email | string | Địa chỉ như bạn đã gửi. |
status | string | Kết luận. Xem các trạng thái. |
reason | string | Lý do dẫn đến kết luận, ví dụ mailbox_not_found hoặc no_mail_server. |
domain | string | Phần tên miền, viết thường. |
mx_record | string or null | Máy chủ thư có mức ưu tiên cao nhất. |
disposable | boolean | True nếu tên miền là dịch vụ hộp thư tạm thời. |
role | boolean | True với hộp thư dùng chung như info@ hoặc support@. |
free_provider | boolean | True với các nhà cung cấp hộp thư miễn phí như Gmail. |
catch_all | boolean | True khi tên miền chấp nhận mọi địa chỉ. |
did_you_mean | string or null | Địa chỉ đã sửa khi tên miền có vẻ bị gõ nhầm. |
checked_at | string | Thời điểm chạy kiểm tra, theo định dạng ISO 8601 UTC. |
credits_used | integer | 1, hoặc 0 khi trạng thái là unknown. |
Các trạng thái
| Trạng thái | Ý nghĩa | Hành động đề xuất |
|---|---|---|
valid | Hộ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ỏ |
disposable | Dịch vụ hộp thư tạm thời. | Loại bỏ |
catch_all | Tê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 |
role | Hộp thư dùng chung có tồn tại. | Xem xét |
unknown | Má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ã HTTP | Lỗi | Cách xử lý |
|---|---|---|
| 400 | bad_request | Thiếu tham số hoặc tham số sai. Hãy đọc thông báo. |
| 401 | invalid_key | Hãy kiểm tra xem khóa có đúng và chưa bị thu hồi. |
| 402 | no_credits | Mua thêm credit. |
| 403 | email_not_confirmed | Mở liên kết xác nhận chúng tôi đã gửi qua email khi bạn đăng ký. |
| 404 | not_found | Batch không tồn tại hoặc đã bị xóa sau 30 ngày. |
| 429 | rate_limited | Hãy chậm lại. Chờ số giây ghi trong header Retry-After. |
| 500 | server_error | Thử 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.