BounceZip API
Connect BounceZip to your website, app or backend to verify emails in real time, or send entire lists for bulk verification — all over a simple JSON HTTP API.
Base URLs
Authentication
Use your API key to identify your account on every call. Pass it as the api query parameter (real-time) or key (bulk). You can create and manage keys under API → API keys in the dashboard.
# Use this demo key — it returns randomized results
bz_test_DEMO_KEY_8421
Real-time API
Verify a single email address in real time — perfect for validating sign-ups at the point of entry. Results return in about a second.
Query parameters
| Parameter | Type | Description |
|---|---|---|
| apirequired | string | Your API key. |
| emailrequired | string | The email address to verify. URL-encode special characters. |
| timeout | integer | Seconds to wait for the recipient server (2–60). Default is 20. |
Request
curl "https://api.bouncezip.com/v1/verify?api=YOUR_API_KEY&email=name@example.com&timeout=10"
<?php
$url = "https://api.bouncezip.com/v1/verify?api=YOUR_API_KEY&email=" . urlencode("name@example.com") . "&timeout=10";
$response = file_get_contents($url);
$result = json_decode($response, true);
echo $result["result"]; // "ok"
import requests r = requests.get("https://api.bouncezip.com/v1/verify", params={ "api": "YOUR_API_KEY", "email": "name@example.com", "timeout": 10, }) print(r.json()["result"]) # "ok"
const res = await fetch( "https://api.bouncezip.com/v1/verify?api=YOUR_API_KEY" + "&email=name@example.com&timeout=10" ); const data = await res.json(); console.log(data.result); // "ok"
Response
{
"email": "name@example.com",
"quality": "good",
"result": "ok",
"result_code": 1,
"sub_result": "deliverable",
"free": false,
"role": false,
"did_you_mean": "",
"credits": 107255,
"execution_time": 2,
"error": ""
}
Response fields
| Field | Description |
|---|---|
| result | One of ok, catch_all, unknown, disposable, invalid. |
| quality | good risky bad — a quick deliverability signal. |
| sub_result | Reason detail, e.g. deliverable, accept_all, bad_domain, bad_syntax. |
| free | true for free providers (Gmail, Outlook…). |
| role | true for role addresses (info@, support@…). |
| did_you_mean | Suggested correction for a likely typo, if any. |
| credits | Credits remaining on your account. |
Result codes
| Code | Result | Meaning |
|---|---|---|
| 1 | ok | Valid, deliverable mailbox. |
| 2 | catch_all | Domain accepts all mail — deliverability uncertain. |
| 3 | unknown | Server did not respond in time. |
| 4 | disposable | Temporary / throwaway address. |
| 6 | invalid | Mailbox or domain does not exist. |
Bulk API
Send entire lists for verification: upload a file, poll for progress, then download the results. Ideal for cleaning large databases.
1 · Upload a file
curl -X POST "https://bulkapi.bouncezip.com/v1/upload?key=YOUR_API_KEY" -F "file_contents=@/path/to/list.csv"
import requests with open("list.csv", "rb") as f: r = requests.post( "https://bulkapi.bouncezip.com/v1/upload", params={"key": "YOUR_API_KEY"}, files={"file_contents": f}, ) print(r.json()["file_id"])
{
"file_id": "940",
"file_name": "list.csv",
"status": "in_progress",
"total_rows": 12500,
"percent": 0,
"estimated_time_sec": 320
}
2 · Check progress
{
"file_id": "940",
"status": "finished",
"percent": 100,
"total_rows": 12500,
"ok": 9750,
"catch_all": 1250,
"invalid": 1000,
"unknown": 500,
"credit": 12500
}
3 · Download results
The filter parameter accepts ok, ok_and_catch_all, unknown, invalid or all. You can also stop a running job at any time — you're only charged for the emails already verified.
/v1/stop?key=…&file_id=…. Results for already-verified emails stay downloadable, and unused credits are never spent.Credits
Check your available credit balance programmatically.
{
"credits": 107255,
"bulk_credits": 107255,
"plan": "pro"
}
Zapier
No code? Connect BounceZip to 6,000+ apps with Zapier. Verify new leads from forms, CRMs and spreadsheets automatically, and route them based on the result.
Add BounceZip
Create a Zap and choose BounceZip as an action. Connect it with your API key.
Pick a trigger
Start from any app — new form submission, new CRM contact, new spreadsheet row.
Verify & route
Use the result field to filter valid emails, tag risky ones, or skip invalids.
Available actions
- Verify an email — returns the full real-time result for a single address.
- Check credits — read your remaining balance inside a Zap.