認証
すべてのリクエストで、API キーを Authorization ヘッダーの Bearer トークンとして送信してください。キーはサーバーに保管し、ブラウザのコードやモバイルアプリには絶対に含めないでください。
Authorization: Bearer YOUR_API_KEY
すべてのエンドポイントのベース URL は https://bouncebell.com/api/v1 です。
1 件のアドレスを検証
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 | info@ や support@ などの共有受信箱の場合は true。 |
free_provider | boolean | Gmail などのフリーメールプロバイダーの場合は true。 |
catch_all | boolean | ドメインがすべてのアドレスを受け付ける場合は true。 |
did_you_mean | string or null | ドメインが入力ミスと思われる場合の修正候補アドレス。 |
checked_at | string | チェックの実行日時(ISO 8601、UTC)。 |
credits_used | integer | 1、ステータスが unknown の場合は 0。 |
ステータス
| ステータス | 意味 | 推奨アクション |
|---|---|---|
valid | メールボックスが存在し、メールを受け付けます。 | 送信 |
invalid | アドレス、ドメイン、またはメールボックスが存在しません。 | 削除 |
disposable | 一時的な受信箱サービスです。 | 削除 |
catch_all | ドメインがすべてのアドレスを受け付けるため、メールボックスを確認できません。 | 要確認 |
role | 実在する共有受信箱です。 | 要確認 |
unknown | メールサーバーが時間内に応答しませんでした。課金されません。 | 後で再試行 |
バッチ
1 回のリクエストで最大 100,000 件のアドレスを送信できます。バッチはバックグラウンドで実行されます。ステータスをポーリングするか、callback_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 }
バッチの作成時に、一意のアドレスごとのクレジットが確保され、完了時に不明の結果の分が返金されます。コールバックは {"event": "batch.completed", "batch_id": "...", "status": "done", "counts": {...}} を含む POST を受け取ります。コールバック 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 を返します。CSV ファイルが必要な場合は ?format=csv を追加してください。各行には個別チェックと同じフィールドが含まれます。
クレジット
GET https://bouncebell.com/api/v1/credits
{ "credits_remaining": 33420 }
エラーと制限
エラー時は、error コードと読みやすい message を含む JSON 本文が返ります。
| 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 リクエストまでです。さらに必要な場合はご相談ください。