High-Throughput WorkerPOST/api/v1/verify/bulk

Bulk Verification Studio API

Asynchronously verify lists of up to 100,000 email addresses via parallel worker clusters with progress tracking, CSV export, and job cancellation.

Endpoints Overview

MethodEndpointDescriptionCost
`POST`/api/v1/verify/bulkCreate a new bulk verification job from JSON list or CSV file.1 Credit per processed address
`GET`/api/v1/verify/bulk/{job_id}Poll progress percentage, total emails, processed count, and deliverability tally.0 Credits (Free)
`GET`/api/v1/verify/bulk/{job_id}/download?format=csvDownload cleansed spreadsheet with original columns preserved plus verification tags.0 Credits (Free)
`POST`/api/v1/verify/bulk/{job_id}/cancelImmediately halt an in-progress verification queue and refund unverified credits.0 Credits (Free)

Step 1: Submitting a Bulk Job

Option A: JSON Body

bash
curl -X POST https://api.bouncelayer.com/v1/verify/bulk \
  -H "X-API-Key: bl_live_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "emails": [
      "sarah@acme.com",
      "john@initech.org",
      "burner@mailinator.com"
    ],
    "webhook_url": "https://your-domain.com/webhooks/bouncelayer"
  }'

Option B: Multipart CSV File Upload

bash
curl -X POST https://api.bouncelayer.com/v1/verify/bulk \
  -H "X-API-Key: bl_live_your_api_key_here" \
  -F "file=@leads.csv" \
  -F "webhook_url=https://your-domain.com/webhooks/bouncelayer"

Initial Response (200 OK)

json
{
  "success": true,
  "job_id": "01923a1f-829d-7b20-91fc-982348a201b9",
  "status": "processing",
  "total_emails": 15000,
  "credits_reserved": 15000,
  "created_at": "2026-10-24T10:12:00Z"
}

Step 2: Polling Job Progress

bash
curl https://api.bouncelayer.com/v1/verify/bulk/01923a1f-829d-7b20-91fc-982348a201b9 \
  -H "X-API-Key: bl_live_your_api_key_here"
json
{
  "job_id": "01923a1f-829d-7b20-91fc-982348a201b9",
  "status": "processing",
  "progress_percent": 68.4,
  "total_emails": 15000,
  "processed_emails": 10260,
  "valid_count": 9480,
  "invalid_count": 520,
  "catch_all_count": 180,
  "disposable_count": 80,
  "credits_used": 10260
}

Step 3: Cancelling a Job

If you uploaded an incorrect file or wish to stop an active queue, invoke the cancel endpoint. Remaining unverified credits are instantly refunded to your active balance:

bash
curl -X POST https://api.bouncelayer.com/v1/verify/bulk/01923a1f-829d-7b20-91fc-982348a201b9/cancel \
  -H "X-API-Key: bl_live_your_api_key_here"
json
{
  "success": true,
  "job_id": "01923a1f-829d-7b20-91fc-982348a201b9",
  "status": "cancelled",
  "processed_emails": 10260,
  "unverified_emails_refunded": 4740
}