EndBounce
Developer Docs

API Documentation

Everything you need to integrate email verification, email finding, and list enrichment into your application.

Email Verification

Verify singles or bulk up to 10K emails per request

Email Finder

Find emails from name + domain, single or bulk up to 500

Jobs & Results

Track async jobs, poll results, peek cached verifications

Getting Started

EndBounce provides a REST API for email verification and email finding. All API endpoints are prefixed with /api/integrations. Authentication is via API key passed in the x-api-key header.

1

Create an account

Sign up at app.endbounce.com and verify your email.

2

Get your API key

Navigate to Settings → API Keys, or call GET /api/integrations/key while logged in.

3

Make your first request

Send a POST to /v1/verify with your email to verify. See examples below.

Base URL
https://api.endbounce.com/api/integrations

Authentication

All /v1/* endpoints require an API key. Pass it as an x-api-key header or as a Bearer token in the Authorization header.

Option 1 — x-api-key header (recommended)
x-api-key: YOUR_API_KEY
Option 2 — Bearer token
Authorization: Bearer YOUR_API_KEY

Note: The /key and /regenerate endpoints use session-based auth (browser login), not API keys. These are for the dashboard UI.

All Endpoints

8 endpoints · Base: /api/integrations

GET
/api/integrations/key

Get or create your API key (requires login session).

Session
POST
/api/integrations/regenerate

Regenerate your API key (requires login session).

Session
POST
/api/integrations/v1/verify

Verify one or more emails. Single email returns sync result; multiple emails return async job.

API Key
POST
/api/integrations/v1/finder

Find an email address from a person's name and company domain. Synchronous, returns immediately.

API Key
GET
/api/integrations/v1/jobs/:requestId/status

Check progress of a bulk verification or finder job.

API Key
GET
/api/integrations/v1/jobs/:requestId/results

Retrieve results of a completed job. Supports filtering by status, offset, and limit.

API Key
GET
/api/integrations/v1/peek

Quick lookup — check if a specific email was previously verified in your account.

API Key
GET
/api/integrations/v1/me

Get account info, name, email, company, and remaining credits. Used by Zapier for connection tests.

API Key

Email Verification

POST/v1/verify

Send a single email or an array of up to 10,000 emails. Single emails return synchronously (waits up to 45s for Brain to process). Multiple emails are queued asynchronously — poll the job status endpoint for progress.

Request Body

{
"email": "user@example.com"
// OR
"emails": ["a@x.com", "b@y.com"]
}

Response (single, sync)

{
"mode": "sync",
"email": "user@example.com",
"status": "valid",
"score": 95,
"is_catch_all": false,
"is_disposable": false,
"is_role": false,
"duration_ms": 2340
}

Credits: Each email costs 1 credit. Credits are held when the job is created and deducted as results arrive from Brain. If you don't have enough credits, the request returns 403.

Email Finder

POST/v1/finderSync

Find a person's email from their full name and company domain. Costs 5 credits per lookup. Returns the best-matching email with a confidence level (valid, risky, or not_found).

Request Body

{
"name": "John Smith",
"domain": "acme.com"
}

Finder statuses: found (SMTP verified), risky (catch-all or low confidence), accept_all (domain accepts everything), no_mx (no mail server), protected (Mimecast/Proofpoint blocked), not_found.

Jobs & Results

GET/v1/jobs/:requestId/status

Returns job progress: total, processed, valid, invalid, risky, accept_all, status.

GET/v1/jobs/:requestId/results

Returns result rows. Query params: status (filter), offset, limit (max 5000).

Peek & Account

GET/v1/peek?email=...

Quick check if an email was previously verified in your account. Returns cached result without using credits. Pass email as a query parameter.

GET/v1/me

Returns your account info: id, name, email, company, and remaining credits. Used internally by Zapier for connection testing.

Code Examples

# Single email — returns result synchronously
curl -X POST https://api.endbounce.com/api/integrations/v1/verify \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"email": "john@acme.com"}'

# Response:
# {
#   "mode": "sync",
#   "email": "john@acme.com",
#   "status": "valid",
#   "reason": "SMTP verified",
#   "score": 95,
#   "is_catch_all": false,
#   "is_disposable": false,
#   "is_role": false,
#   "duration_ms": 2340
# }

Response Format

All responses are JSON. Verification results include these fields:

FieldTypeDescription
emailstringThe verified email address
statusstringvalid, invalid, risky, accept_all, or unknown
reasonstringHuman-readable explanation of the result
scorenumberConfidence score (0-100)
is_catch_allbooleanDomain accepts all addresses
is_disposablebooleanTemporary/throwaway email provider
is_rolebooleanRole-based address (info@, admin@, etc.)
duration_msnumberTime taken for verification (sync mode)

Error Codes

CodeStatusDescription
200OKRequest processed successfully.
400Bad RequestInvalid email format, missing fields, or exceeding limits (10K verify, 500 finder).
401UnauthorizedMissing or invalid API key.
403ForbiddenNot enough credits to process the request.
404Not FoundJob or resource not found, or doesn't belong to your account.
500Server ErrorInternal error — retry the request.

Rate Limits & Constraints

Max emails per verify request
10,000
Single verify timeout
45 seconds
Single finder timeout
60 seconds
Verify credit cost
1 credit/email
Finder credit cost
5 credits/lookup

Deadlock protection: Database operations use automatic retry with exponential backoff (up to 3 attempts) to handle concurrent request contention. Your request will succeed even under high load.

Ready to integrate?

Get your API key and start verifying emails in minutes.

Get API Key