นักพัฒนา
API ตรวจสอบอีเมลที่ใช้งานได้ทันที
ตรวจสอบที่อยู่เดียวแบบเรียลไทม์ หรือส่งรายชื่อทั้งหมดเป็นแบตช์ ทุกคำขอใช้ HTTPS และส่งกลับเป็น JSON สร้างคีย์ API ในแดชบอร์ดของคุณที่เมนูคีย์ API
- REST และ JSON
- คอลแบ็กแบบแบตช์
- ใช้เครดิตเดียวกับแดชบอร์ด
การยืนยันตัวตน
ส่งคีย์ API ของคุณเป็น bearer token ในส่วนหัว Authorization ทุกคำขอ เก็บคีย์ไว้บนเซิร์ฟเวอร์ของคุณ ห้ามใส่ไว้ในโค้ดบนเบราว์เซอร์หรือแอปมือถือ
Authorization: Bearer YOUR_API_KEY
URL พื้นฐานสำหรับทุกเอนด์พอยต์คือ https://bouncebell.com/api/v1
ตรวจสอบที่อยู่เดียว
GET https://bouncebell.com/api/v1/verify
| พารามิเตอร์ | จำเป็น | รายละเอียด |
|---|---|---|
email | ใช่ | ที่อยู่ที่ต้องการตรวจสอบ โปรดเข้ารหัส URL |
timeout | ไม่ | จำนวนวินาทีที่รอเมลเซิร์ฟเวอร์ ตั้งแต่ 3 ถึง 30 ค่าเริ่มต้นคือ 10 หากหมดเวลา สถานะจะเป็น unknown และไม่มีการใช้เครดิต |
ตัวอย่าง
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
}
ฟิลด์ผลลัพธ์
| ฟิลด์ | ประเภท | รายละเอียด |
|---|---|---|
email | string | ที่อยู่ตามที่คุณส่งมา |
status | string | ผลการตรวจสอบ ดูสถานะ |
reason | string | เหตุผลของผลการตรวจสอบ เช่น mailbox_not_found หรือ no_mail_server |
domain | string | ส่วนโดเมน เป็นตัวพิมพ์เล็ก |
mx_record | string or null | เมลเซิร์ฟเวอร์ที่มีลำดับความสำคัญสูงสุด |
disposable | boolean | เป็น true หากโดเมนเป็นบริการกล่องจดหมายชั่วคราว |
role | boolean | เป็น true สำหรับกล่องจดหมายส่วนกลาง เช่น info@ หรือ support@ |
free_provider | boolean | เป็น true สำหรับผู้ให้บริการกล่องจดหมายฟรี เช่น Gmail |
catch_all | boolean | เป็น true เมื่อโดเมนรับทุกที่อยู่ |
did_you_mean | string or null | ที่อยู่ที่แก้ไขแล้ว เมื่อโดเมนดูเหมือนพิมพ์ผิด |
checked_at | string | เวลาที่ตรวจสอบ ในรูปแบบ ISO 8601 UTC |
credits_used | integer | 1 หรือ 0 เมื่อสถานะเป็น unknown |
สถานะ
| สถานะ | ความหมาย | การดำเนินการที่แนะนำ |
|---|---|---|
valid | มีกล่องจดหมายนี้อยู่จริงและรับอีเมลได้ | ส่ง |
invalid | ไม่มีที่อยู่ โดเมน หรือกล่องจดหมายนี้ | ลบออก |
disposable | บริการกล่องจดหมายชั่วคราว | ลบออก |
catch_all | โดเมนรับทุกที่อยู่ จึงไม่สามารถยืนยันกล่องจดหมายได้ | ตรวจทาน |
role | กล่องจดหมายส่วนกลางที่มีอยู่จริง | ตรวจทาน |
unknown | เมลเซิร์ฟเวอร์ไม่ตอบกลับทันเวลา ไม่คิดเครดิต | ลองใหม่ภายหลัง |
แบตช์
ส่งได้สูงสุด 100,000 ที่อยู่ในคำขอเดียว แบตช์จะทำงานในเบื้องหลัง คุณสามารถสอบถามสถานะเป็นระยะ หรือระบุ callback_url แล้วเราจะเรียก URL นั้นเมื่อแบตช์เสร็จ
สร้างแบตช์
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 }
ระบบจะกันเครดิตไว้สำหรับทุกที่อยู่ที่ไม่ซ้ำกันเมื่อสร้างแบตช์ และคืนเครดิตสำหรับผลลัพธ์ที่ไม่ทราบสถานะเมื่อแบตช์เสร็จ คอลแบ็กจะได้รับ POST พร้อม {"event": "batch.completed", "batch_id": "...", "status": "done", "counts": {...}} URL ของคอลแบ็กต้องใช้ HTTPS
ตรวจสอบความคืบหน้า
GET https://bouncebell.com/api/v1/batches/{id}
{ "id": "bat_8f2k1q3m9x7w4p", "status": "running", "total": 2, "done": 1 }
สถานะคือ queued, running หรือ done เมื่อสถานะเป็น done การตอบกลับจะมี counts แยกตามสถานะด้วย
ดาวน์โหลดผลลัพธ์
GET https://bouncebell.com/api/v1/batches/{id}/results
ส่งกลับเป็น JSON โดยค่าเริ่มต้น เพิ่ม ?format=csv เพื่อรับไฟล์ CSV แต่ละแถวมีฟิลด์เหมือนกับการตรวจสอบเดี่ยว
เครดิต
GET https://bouncebell.com/api/v1/credits
{ "credits_remaining": 33420 }
ข้อผิดพลาดและขีดจำกัด
ข้อผิดพลาดจะส่งกลับเนื้อหา JSON พร้อมรหัส error และ message ที่อ่านเข้าใจได้
| รหัส HTTP | ข้อผิดพลาด | สิ่งที่ต้องทำ |
|---|---|---|
| 400 | bad_request | พารามิเตอร์ขาดหายหรือไม่ถูกต้อง โปรดอ่านข้อความ |
| 401 | invalid_key | ตรวจสอบว่าคีย์ถูกต้องและยังไม่ถูกเพิกถอน |
| 402 | no_credits | ซื้อเครดิตเพิ่ม |
| 403 | email_not_confirmed | เปิดลิงก์ยืนยันที่เราส่งทางอีเมลตอนที่คุณสมัครสมาชิก |
| 404 | not_found | ไม่มีแบตช์นี้ หรือแบตช์ถูกลบไปแล้วหลังจาก 30 วัน |
| 429 | rate_limited | ลดความถี่ลง รอตามจำนวนวินาทีในส่วนหัว Retry-After |
| 500 | server_error | ลองใหม่โดยเว้นระยะสักครู่ หากยังเกิดขึ้นอีก โปรดติดต่อฝ่ายสนับสนุน |
การตรวจสอบเดี่ยวจำกัดที่ 20 คำขอต่อวินาทีต่อคีย์ หากต้องการมากกว่านี้ โปรดติดต่อเรา