Integrate email verification directly into your application with our REST API. Simple authentication, predictable responses.
https://sendclean.app/api/v1All 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"}'All responses are returned as JSON. Successful requests return a 200 status code. Errors include a descriptive message.
{
"error": "Invalid API key",
"code": "UNAUTHORIZED"
}/api/v1/verifyVerify a single email address in real-time. Returns the verification result including deliverability status and metadata.
{
"email": "user@example.com"
}{
"email": "user@example.com",
"status": "valid",
"reason": "accepted_email",
"disposable": false,
"catchAll": false,
"mxRecords": [
"mx1.example.com",
"mx2.example.com"
],
"creditsUsed": 1,
"creditsRemaining": 4999
}/api/v1/batchSubmit 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.
{
"emails": [
"alice@example.com",
"bob@example.com",
"charlie@example.com"
]
}{
"batchId": "batch_abc123",
"totalEmails": 3,
"estimatedCredits": 3,
"status": "processing"
}/api/v1/batch/:idRetrieve the status and results of a batch verification job. Poll this endpoint until the status changes to 'completed' or 'failed'.
GET /api/v1/batch/batch_abc123{
"batchId": "batch_abc123",
"status": "completed",
"totalEmails": 3,
"results": {
"valid": 2,
"invalid": 1,
"risky": 0,
"unknown": 0
},
"creditsUsed": 3,
"completedAt": "2026-01-15T12:00:00Z"
}API requests are rate-limited based on your plan. The default limit is 10 requests per second. Enterprise plans can request custom limits.
| Plan | Rate Limit | Monthly Credits |
|---|---|---|
| Starter | 10 req/s | 5,000 |
| Growth | 10 req/s | 10,000 |
| Scale | 10 req/s | 50,000 |
| Pro | 10 req/s | 100,000 |
| Enterprise | Custom | 1,000,000 |
When you exceed your rate limit, requests return a 429 Too Many Requests status. Implement exponential backoff in your integration.