開発者向け

確実に動くメール検証 API

1 件のアドレスをリアルタイムで検証することも、リスト全体をバッチとして送信することもできます。すべてのリクエストは HTTPS を使用し、JSON を返します。API キーはダッシュボードの「API キー」で作成してください。

  • REST と JSON
  • バッチのコールバック
  • ダッシュボードと共通のクレジット
BounceBell の API キーページ。有効なキーと新しいキーを作成するフォーム

認証

すべてのリクエストで、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
}

結果のフィールド

フィールド種類説明
emailstring送信されたままのアドレス。
statusstring判定結果。ステータスをご覧ください。
reasonstring判定に至った理由(例:mailbox_not_found、no_mail_server)。
domainstringドメイン部分(小文字)。
mx_recordstring or null優先度が最も高いメールサーバー。
disposablebooleanドメインが一時的な受信箱サービスの場合は true。
rolebooleaninfo@ や support@ などの共有受信箱の場合は true。
free_providerbooleanGmail などのフリーメールプロバイダーの場合は true。
catch_allbooleanドメインがすべてのアドレスを受け付ける場合は true。
did_you_meanstring or nullドメインが入力ミスと思われる場合の修正候補アドレス。
checked_atstringチェックの実行日時(ISO 8601、UTC)。
credits_usedinteger1、ステータスが 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 コードエラー対処方法
400bad_requestパラメーターが不足しているか誤っています。メッセージを確認してください。
401invalid_keyキーが正しく、無効化されていないことを確認してください。
402no_creditsクレジットを追加購入してください。
403email_not_confirmed登録時にメールでお送りした確認用リンクを開いてください。
404not_foundバッチが存在しないか、30 日後に削除されました。
429rate_limitedリクエストの頻度を下げてください。Retry-After ヘッダーに示された秒数だけ待ってください。
500server_error少し時間をおいて再試行してください。解決しない場合はサポートにお問い合わせください。

個別チェックは、キーごとに毎秒 20 リクエストまでです。さらに必要な場合はご相談ください。