Skip to main content

API reference

File upload verification

Upload a CSV, TSV 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", "file_size": '"$(wc -c < emails.csv)"'}'

file_size is the file's size in bytes, up to 50 MB: the upload URL accepts exactly that many bytes. 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-, semicolon- or tab-separated values with optional headers. The addresses are read from one column, which the response names in email_column; File upload says how it is chosen
  • TSV - Tab-separated values, read the same way
  • 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,
    "email_column": { "index": 0, "name": "Email" },
    "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