API Reference

Integrate email verification directly into your application with our REST API. Simple authentication, predictable responses.

Overview

Base URL

https://sendclean.app/api/v1

Authentication

All API requests require an API key passed via the x-api-key header. Generate keys from the API Keys page in your dashboard.

curl -X POST https://sendclean.app/api/v1/verify \
  -H "Content-Type: application/json" \
  -H "x-api-key: your_api_key_here" \
  -d '{"email": "user@example.com"}'

Response Format

All responses are returned as JSON. Successful requests return a 200 status code. Errors include a descriptive message.

{
  "error": "Invalid API key",
  "code": "UNAUTHORIZED"
}

Endpoints

POST/api/v1/verify

Verify Single Email

Verify a single email address in real-time. Returns the verification result including deliverability status and metadata.

Request

{
  "email": "user@example.com"
}

Response

{
  "email": "user@example.com",
  "status": "valid",
  "reason": "accepted_email",
  "disposable": false,
  "catchAll": false,
  "mxRecords": [
    "mx1.example.com",
    "mx2.example.com"
  ],
  "creditsUsed": 1,
  "creditsRemaining": 4999
}
POST/api/v1/batch

Create Batch Verification

Submit a list of emails for batch verification. Returns a batch ID that can be used to poll for results. Emails are deduplicated and checked against your suppression list before processing.

Request

{
  "emails": [
    "alice@example.com",
    "bob@example.com",
    "charlie@example.com"
  ]
}

Response

{
  "batchId": "batch_abc123",
  "totalEmails": 3,
  "estimatedCredits": 3,
  "status": "processing"
}
GET/api/v1/batch/:id

Get Batch Results

Retrieve the status and results of a batch verification job. Poll this endpoint until the status changes to 'completed' or 'failed'.

Request

GET /api/v1/batch/batch_abc123

Response

{
  "batchId": "batch_abc123",
  "status": "completed",
  "totalEmails": 3,
  "results": {
    "valid": 2,
    "invalid": 1,
    "risky": 0,
    "unknown": 0
  },
  "creditsUsed": 3,
  "completedAt": "2026-01-15T12:00:00Z"
}

Rate Limits

API requests are rate-limited based on your plan. The default limit is 10 requests per second. Enterprise plans can request custom limits.

PlanRate LimitMonthly Credits
Starter10 req/s5,000
Growth10 req/s10,000
Scale10 req/s50,000
Pro10 req/s100,000
EnterpriseCustom1,000,000

When you exceed your rate limit, requests return a 429 Too Many Requests status. Implement exponential backoff in your integration.

Ready to integrate?

Create an account and generate your first API key in minutes.