Skip to main content

Documentation

Kawaa API documentation

Everything you need to integrate email verification into your application. Our REST API provides real-time and batch verification with layered DNS, MX, and risk checks.

Base URLhttps://api.kawaa.com

Get started

Machine-readable description

The core verification API is described by an OpenAPI 3.1 document at kawaa.com/openapi.json. Generate a client from it, load it into Postman or Insomnia, or hand it to an agent. It covers the endpoints a customer integration uses: verification, jobs, results, activity, deliverability, webhooks, keys and the billing catalogue.

Checked against the running code on every build

  • Every operation is a route the API actually serves.
  • Every operation lists the scopes it enforces.
  • Every error code is one the handlers emit.
  • Response shapes for credentials, billing fields and job results, where a mistake would cost most. Other fields are described, but not checked exhaustively.

It is not the whole surface: account administration, team management, integrations and the white-label API are documented on these pages but not modelled in the document.

API capabilities

  • Single email verification with real-time results
  • Batch verification for up to 10,000 emails (plan-dependent)
  • File upload processing (CSV, TXT)
  • Webhook notifications for async jobs
  • Activity data and engagement metrics
  • Deliverability tools and warmup guidance

Authentication

Every API request needs a credential: an API key in the X-Api-Key header (or as a bearer token), or the access token an agent receives by signing in with OAuth. See Authentication.

Example request
curl -X POST https://api.kawaa.com/v1/verify \
  -H "X-Api-Key: your_api_key" \
  -H "Content-Type: application/json" \
  -d '{"email": "test@example.com"}'

Get your API key from the Dashboard.

Response format

All responses are returned in JSON format with consistent structure.

Example response
{
  "success": true,
  "data": {
    "email": "test@example.com",
    "status": "risky",
    "quality_score": 72,
    "verification": {
      "syntax_valid": true,
      "domain_exists": true,
      "mx_found": true,
      "catch_all": false
    },
    "flags": {
      "disposable": false,
      "role_account": false,
      "free_provider": true,
      "spam_trap": false
    }
  }
}

Ready to get started?

Follow our quick start guide to make your first API call in under 5 minutes.