API Documentation

WorkEmailChecker REST API Reference

Overview

WorkEmailChecker API provides instant email validation and classification services. It can detect personal emails, corporate emails, disposable emails, and validate email syntax and domain deliverability.

Base URL

Base URL
https://workemailchecker.com/api

Authentication

No authentication is required. The API is free to use with rate limiting applied.

Rate Limiting

Limit: 5 requests per second per IP address

Burst: Up to 10 requests in a short period

AI Mode: 0.5 requests per second per IP, burst 1

If you exceed the rate limit, you'll receive a 429 status code with a retry message.

Endpoints

Check Email

POST

Endpoint

/check

Request Body

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

Request Body (AI Mode)

{
  "email": "user@example.com",
  "mode": "ai"
}

Response (Success)

{
  "email": "user@example.com",
  "valid": true,
  "syntax_valid": true,
  "domain_valid": true,
  "mx_records_found": true,
  "provider_name": "Google",
  "provider_type": "personal",
  "is_disposable": false,
  "is_corporate": false,
  "is_personal": true,
  "corporate_domain": null,
  "message": "Personal email detected"
}

Response (Corporate Email)

{
  "email": "employee@google.com",
  "valid": true,
  "syntax_valid": true,
  "domain_valid": true,
  "mx_records_found": true,
  "provider_name": "Google",
  "provider_type": "corporate",
  "is_disposable": false,
  "is_corporate": true,
  "is_personal": false,
  "corporate_domain": "google.com",
  "message": "Corporate email detected"
}

Health Check

GET

Endpoint

/health

Response

{
  "status": "healthy",
  "service": "WorkEmailChecker"
}

Response Fields

Field Type Description
email string The email address that was validated
valid boolean Overall validation result
syntax_valid boolean Email format validation
domain_valid boolean Domain validation status
mx_records_found boolean MX records availability
provider_name string Email service provider name
provider_type string Type: personal, corporate, disposable, unknown
is_disposable boolean Whether the email is from a disposable provider
is_corporate boolean Whether the email is a corporate email
is_personal boolean Whether the email is a personal email
corporate_domain string|null Corporate domain (if applicable)
message string Additional information or error message

Error Responses

Rate Limit Exceeded (429)

{
  "error": "Rate limit exceeded. Please try again later.",
  "retry_after": 60
}

AI Rate Limit Exceeded (429)

{
  "error": "AI rate limit exceeded",
  "retry_after": 2
}

Bad Request (400)

{
  "error": "Email is required"
}

Method Not Allowed (405)

{
  "error": "Method not allowed"
}

AI Upstream Error (502)

{
  "error": "AI check failed"
}

Usage Examples

cURL

curl -X POST https://workemailchecker.com/api/check \
  -H "Content-Type: application/json" \
  -d '{"email": "user@example.com"}'
curl -X POST https://workemailchecker.com/api/check \
  -H "Content-Type: application/json" \
  -d '{"email": "user@example.com", "mode": "ai"}'

JavaScript (fetch)

fetch('https://workemailchecker.com/api/check', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    email: 'user@example.com'
  })
})
.then(response => response.json())
.then(data => console.log(data));
fetch('https://workemailchecker.com/api/check', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    email: 'user@example.com',
    mode: 'ai'
  })
})
.then(response => response.json())
.then(data => console.log(data));

Python

import requests

response = requests.post(
    'https://workemailchecker.com/api/check',
    json={'email': 'user@example.com'}
)
data = response.json()
print(data)
import requests

response = requests.post(
    'https://workemailchecker.com/api/check',
    json={'email': 'user@example.com', 'mode': 'ai'}
)
print(response.json())
Back to Home