Batch & File Verification

Verify large lists of emails asynchronously. Submit up to 10,000 emails per batch or upload CSV/TXT files.

Batch Verification

POST/v1/verify/batch

Submit an array of emails for asynchronous verification. Returns a job ID to track progress.

Request Body

ParameterTypeRequiredDescription
emailsstring[]YesArray of email addresses (max 10,000)
webhook_urlstringNoURL to receive completion notification
namestringNoCustom name for the job

Example Request

curl -X POST https://api.kawaa.com/v1/verify/batch \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "emails": [
      "user1@example.com",
      "user2@example.com",
      "user3@example.com"
    ],
    "webhook_url": "https://your-app.com/webhook",
    "name": "January Newsletter List"
  }'

Response

{
  "success": true,
  "data": {
    "job_id": "job_abc123xyz",
    "status": "processing",
    "total_emails": 3,
    "created_at": "2026-02-03T14:30:00.000Z"
  }
}

File Upload

POST/v1/verify/file

Upload a CSV or TXT file containing email addresses for verification.

Request

curl -X POST https://api.kawaa.com/v1/verify/file \
  -H "X-Api-Key: YOUR_API_KEY" \
  -F "file=@emails.csv" \
  -F "email_column=email" \
  -F "has_header=true"

Supported Formats

  • CSV: Comma-separated with optional headers
  • TXT: One email per line
  • Max file size: 50MB
  • Max emails: 500,000 per file

Check Job Status

GET/v1/jobs/{job_id}

Response

{
  "success": true,
  "data": {
    "job_id": "job_abc123xyz",
    "name": "January Newsletter List",
    "status": "completed",
    "progress": {
      "total": 1000,
      "processed": 1000,
      "valid": 850,
      "invalid": 100,
      "risky": 30,
      "unknown": 20
    },
    "created_at": "2026-02-03T14:30:00.000Z",
    "completed_at": "2026-02-03T14:35:42.000Z"
  }
}

Job Status Values

  • pending - Job queued for processing
  • processing - Verification in progress
  • completed - All emails verified
  • failed - Job failed (check error field)

Download Results

GET/v1/jobs/{job_id}/download

Query Parameters

  • format - csv or json (default: csv)
  • filter - Filter by status: valid, invalid, risky, all

Example

curl -X GET "https://api.kawaa.com/v1/jobs/job_abc123xyz/download?format=csv&filter=valid" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -o results.csv

List All Jobs

GET/v1/jobs

List all verification jobs for your account with pagination.

Query Parameters

  • limit - Number of results (default: 20, max: 100)
  • offset - Pagination offset
  • status - Filter by job status

Credits

  • 1 credit per email in batch
  • Credits deducted upfront when job is created
  • Failed verifications are not refunded