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.
Create an account
Sign up at app.endbounce.com and verify your email.
Get your API key
Navigate to Settings → API Keys, or call GET /api/integrations/key while logged in.
Make your first request
Send a POST to /v1/verify with your email to verify. See examples below.
https://api.endbounce.com/api/integrationsAuthentication
All /v1/* endpoints require an API key. Pass it as an x-api-key header or as a Bearer token in the Authorization header.
x-api-key: YOUR_API_KEYAuthorization: Bearer YOUR_API_KEYNote: 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
/api/integrations/keyGet or create your API key (requires login session).
/api/integrations/regenerateRegenerate your API key (requires login session).
/api/integrations/v1/verifyVerify one or more emails. Single email returns sync result; multiple emails return async job.
/api/integrations/v1/finderFind an email address from a person's name and company domain. Synchronous, returns immediately.
/api/integrations/v1/jobs/:requestId/statusCheck progress of a bulk verification or finder job.
/api/integrations/v1/jobs/:requestId/resultsRetrieve results of a completed job. Supports filtering by status, offset, and limit.
/api/integrations/v1/peekQuick lookup — check if a specific email was previously verified in your account.
/api/integrations/v1/meGet account info, name, email, company, and remaining credits. Used by Zapier for connection tests.
Email Verification
/v1/verifySend 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
Response (single, sync)
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
/v1/finderSyncFind 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
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
/v1/jobs/:requestId/statusReturns job progress: total, processed, valid, invalid, risky, accept_all, status.
/v1/jobs/:requestId/resultsReturns result rows. Query params: status (filter), offset, limit (max 5000).
Peek & Account
/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.
/v1/meReturns 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:
| Field | Type | Description |
|---|---|---|
email | string | The verified email address |
status | string | valid, invalid, risky, accept_all, or unknown |
reason | string | Human-readable explanation of the result |
score | number | Confidence score (0-100) |
is_catch_all | boolean | Domain accepts all addresses |
is_disposable | boolean | Temporary/throwaway email provider |
is_role | boolean | Role-based address (info@, admin@, etc.) |
duration_ms | number | Time taken for verification (sync mode) |
Error Codes
| Code | Status | Description |
|---|---|---|
200 | OK | Request processed successfully. |
400 | Bad Request | Invalid email format, missing fields, or exceeding limits (10K verify, 500 finder). |
401 | Unauthorized | Missing or invalid API key. |
403 | Forbidden | Not enough credits to process the request. |
404 | Not Found | Job or resource not found, or doesn't belong to your account. |
500 | Server Error | Internal error — retry the request. |
Rate Limits & Constraints
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.
