Verify an email address
POST/v1/verify
Checks one address before you send to it: that it is well formed, that its domain exists and accepts mail, whether it is a throwaway inbox or a role address such as info@, whether the domain looks like a typo of a popular one (with a suggestion), and whether it is on your suppression list. It does not contact the recipient’s mail server, so valid means worth sending to, not guaranteed to arrive. Results: valid, invalid (will bounce), risky (see reasons) and unknown (DNS did not answer; try again). Each address uses one of your plan’s monthly verifications.
Required scope: emails:verify
Request body
| Field | Type |
|---|---|
emailrequired | string |
Unknown fields are rejected, so a typo never silently does nothing.
Example
curl -X POST 'https://api.sendsend.email/v1/verify' \
-H "Authorization: Bearer $SENDSEND_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"email": "maria@example.com"
}'Response 200
{
"object": "email_verification",
"email": "maria@example.com",
"result": "valid",
"reasons": [],
"suggestion": null,
"free_provider": false,
"role_account": false,
"disposable": false,
"mail_servers": [
"mx1.example.com"
],
"verifications": {
"used": 12,
"limit": 5000
}
}Errors
| Status | Code | When |
|---|---|---|
| 400 | validation_error | The request body or parameters are invalid. The message says which field. |
| 401 | unauthorized | The API key is missing, invalid or revoked. |
| 403 | forbidden | The key does not have the scope this endpoint needs. |
| 429 | quota_exhausted | The month’s verifications for your plan are used up. |
| 429 | rate_limited | Too many requests. Wait for the number of seconds in the Retry-After header. |
Every error has the same shape. See Errors.