Skip to main content

API reference

File upload verification

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

Endpoint

POST https://api.kawaa.com/v1/verify/file

Request

File verification is a two-step JSON flow. First request a presigned upload URL:

curl -X POST https://api.kawaa.com/v1/verify/file \
  -H "X-Api-Key: ev_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{"action": "get_upload_url", "filename": "emails.csv"}'

Then PUT your file to the returned upload_url (valid for 15 minutes) and start processing with the returned file_key:

curl -X PUT "UPLOAD_URL" --data-binary @emails.csv

curl -X POST https://api.kawaa.com/v1/verify/file \
  -H "X-Api-Key: ev_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{"action": "process", "file_key": "FILE_KEY"}'

Supported formats

  • CSV - Comma-separated values with optional headers
  • TXT - One email per line

File limits

PlanMax file sizeMax emails
Free50 MB100
Starter50 MB1,000
Professional / Business50 MB5,000
Enterprise50 MB10,000

Response

File uploads are processed asynchronously. You'll receive a job ID to check status:

{
  "success": true,
  "data": {
    "job_id": "9f8f6d2e-4c1b-4f6e-9a3b-2d1e5c7a8b90",
    "status": "processing",
    "total_submitted": 5000,
    "unique_emails": 4988,
    "credits_used": 4988,
    "message": "File verification started. Use GET /v1/jobs/{job_id} to check status."
  }
}

Something wrong or missing here?

Tell us what to fix. Your email goes to the support team with this article's title already filled in.

Send feedback

Still need help?

Email support@kawaa.com. If your question is about a bulk job, include its job ID from the dashboard.

Contact support