Overview
The mailX API gives you free, programmatic access to all email deliverability and DNS tools. Every endpoint accepts a JSON body and returns a JSON response. No API key, no signup.
https://themailx.com/api/v1Method: POST for all endpoints
Content-Type:
application/json
All tool endpoints follow the same pattern:
POST https://themailx.com/api/v1/{endpoint}
Content-Type: application/json
{
"field_name": "value"
}
Authentication
None required. All endpoints are open and free.
DNS & Authentication Checkers
SPF spf-check
Use this when the user asks whether a domain's SPF record is valid, which servers may send email for a domain, or why SPF fails. Returns the live SPF record, a pass/fail status and a fix suggestion.
| Parameter | Type | Required | Description |
|---|---|---|---|
| domain_name | string | Yes | The domain to check SPF records for, e.g. example.com |
curl -X POST https://themailx.com/api/v1/spf-check \
-H "Content-Type: application/json" \
-d '{
"domain_name": "example.com"
}'
DKIM dkim-check
Use this when the user wants to verify DKIM for a domain. Pass the DKIM selector if known (for example google for Google Workspace, selector1 or selector2 for Microsoft 365). If the selector is unknown, omit it: mailX then tries common selectors and returns the ones it finds. Returns the published key and its status. A miss on common selectors does not prove DKIM is absent.
| Parameter | Type | Required | Description |
|---|---|---|---|
| domain_name | string | Yes | The domain to check DKIM records for, e.g. example.com |
| dkim_selector | string | No | The DKIM selector, e.g. google (Google Workspace), selector1 or selector2 (Microsoft 365). Optional: omit it to try common selectors. |
curl -X POST https://themailx.com/api/v1/dkim-check \
-H "Content-Type: application/json" \
-d '{
"domain_name": "example.com",
"dkim_selector": "google"
}'
DMARC dmarc-check
Use this when the user asks about DMARC, spoofing protection, or what happens to emails that fail authentication. Returns the live DMARC record, its policy and a fix suggestion.
| Parameter | Type | Required | Description |
|---|---|---|---|
| domain_name | string | Yes | The domain to check DMARC records for, e.g. example.com |
curl -X POST https://themailx.com/api/v1/dmarc-check \
-H "Content-Type: application/json" \
-d '{
"domain_name": "example.com"
}'
BIMI bimi-check
Use this when the user asks about BIMI or showing a brand logo next to their emails in inboxes. Returns the live BIMI record, the logo URL it declares, and a fix suggestion.
| Parameter | Type | Required | Description |
|---|---|---|---|
| domain_name | string | Yes | The domain to check BIMI records for, e.g. example.com |
curl -X POST https://themailx.com/api/v1/bimi-check \
-H "Content-Type: application/json" \
-d '{
"domain_name": "example.com"
}'
Deliverability Tools
SMTP Checker smtp-check
Use this only when the user explicitly asks to test an SMTP login for a mail account they control and provides its credentials. Connects to the SMTP server and reports whether connection, encryption and authentication succeed. If from_email and to_email are both given, it also sends one test email. Credentials are not stored.
| Parameter | Type | Required | Description |
|---|---|---|---|
| host | string | Yes | The SMTP server hostname, e.g. smtp.gmail.com |
| port | integer | Yes | The SMTP port number, e.g. 587 for TLS, 465 for SSL, 25 for unencrypted |
| username | string | Yes | The SMTP username for authentication |
| password | string | Yes | The SMTP password or app-specific password |
| encryption | string | Yes | The encryption protocol: ssl, tls, or none |
| from_email | string | No | Optional sender email address for sending a test email |
| to_email | string | No | Optional recipient email address for sending a test email |
curl -X POST https://themailx.com/api/v1/smtp-check \
-H "Content-Type: application/json" \
-d '{
"host": "smtp.gmail.com",
"port": "587",
"username": "user@gmail.com",
"password": "app-password",
"encryption": "tls",
"from_email": "value",
"to_email": "value"
}'
IMAP Checker imap-check
Use this only when the user explicitly asks to test an IMAP login for a mailbox they control and provides its credentials. Connects to the IMAP server and reports whether connection, encryption and authentication succeed. Credentials are not stored.
| Parameter | Type | Required | Description |
|---|---|---|---|
| imap_host | string | Yes | The IMAP server hostname, e.g. imap.gmail.com |
| imap_port | integer | Yes | The IMAP port number, e.g. 993 for SSL, 143 for unencrypted |
| username | string | Yes | The IMAP username for authentication |
| password | string | Yes | The IMAP password or app-specific password |
| imap_encryption | string | Yes | The encryption protocol: ssl, tls, or none |
curl -X POST https://themailx.com/api/v1/imap-check \
-H "Content-Type: application/json" \
-d '{
"imap_host": "imap.gmail.com",
"imap_port": "993",
"username": "user@gmail.com",
"password": "app-password",
"imap_encryption": "tls"
}'
Blacklist Checker blacklist-check
Use this when the user suspects their domain is blacklisted or blocked. Checks the domain against major DNS blocklists and returns the result for each list.
| Parameter | Type | Required | Description |
|---|---|---|---|
| domain_name | string | Yes | The domain name or IP address to check against blacklists, e.g. example.com or 1.2.3.4 |
curl -X POST https://themailx.com/api/v1/blacklist-check \
-H "Content-Type: application/json" \
-d '{
"domain_name": "example.com"
}'
Generators
DMARC Generator dmarc-generate
Use this when the user needs a DMARC record. Returns the record name, value and type ready to publish. mailX does not publish it.
| Parameter | Type | Required | Description |
|---|---|---|---|
| domain_name | string | Yes | The domain to generate a DMARC record for, e.g. example.com |
| string | Yes | The email address to receive DMARC aggregate reports, e.g. dmarc@example.com | |
| dmarc_policy | string | Yes | The DMARC policy: none (monitor only), quarantine (mark as spam), or reject (block entirely) |
curl -X POST https://themailx.com/api/v1/dmarc-generate \
-H "Content-Type: application/json" \
-d '{
"domain_name": "example.com",
"email": "admin@example.com",
"dmarc_policy": "quarantine"
}'
SPF Generator spf-generate
Use this when the user needs a new SPF record for their email provider. Returns a TXT record ready to publish, or explains what to set up instead when the provider does not need a root SPF include. mailX does not publish it.
| Parameter | Type | Required | Description |
|---|---|---|---|
| domain_name | string | Yes | The domain to generate an SPF record for, e.g. example.com |
| provider | string | Yes | The mail provider identifier, e.g. google, mailgun, sendgrid, postmark, amazon-ses |
| hard_fail_boolean | boolean | Yes | If true, uses strict -all policy (reject unauthorized senders). If false, uses soft ~all (mark but deliver). |
curl -X POST https://themailx.com/api/v1/spf-generate \
-H "Content-Type: application/json" \
-d '{
"domain_name": "example.com",
"provider": "Google Workspace",
"hard_fail_boolean": true
}'
BIMI Host bimi-host
Host and serve your BIMI SVG file for email authentication
| Parameter | Type | Required | Description |
|---|---|---|---|
| domain_name | string | Yes | eg. example.com |
| bimi_file | file | Yes | Upload your BIMI SVG file |
curl -X POST https://themailx.com/api/v1/bimi-host \
-H "Content-Type: application/json" \
-d '{
"domain_name": "example.com",
"bimi_file": "https://example.com/logo.svg"
}'
Server Finders
SMTP Finder smtp-finder
Use this when the user needs the outgoing mail (SMTP) server settings for an email provider or sending service, such as Gmail, Outlook, Microsoft 365, Zoho, Amazon SES or SendGrid. Returns the host, ports with encryption, what to use to log in, and the provider's setup guide. Never asks for the user's credentials.
| Parameter | Type | Required | Description |
|---|---|---|---|
| provider_name | string | Yes | The email provider name to look up, e.g. gmail, sendgrid, mailgun, outlook |
curl -X POST https://themailx.com/api/v1/smtp-finder \
-H "Content-Type: application/json" \
-d '{
"provider_name": "Google Workspace"
}'
IMAP Finder imap-finder
Use this when the user needs the incoming mail (IMAP) server settings for an email provider, such as Gmail, Outlook, Yahoo, iCloud or Zoho. Returns the host, ports with encryption and the provider's setup guide. Never asks for the user's credentials.
| Parameter | Type | Required | Description |
|---|---|---|---|
| imap_provider_name | string | Yes | The email provider name to look up, e.g. gmail, outlook, yahoo |
curl -X POST https://themailx.com/api/v1/imap-finder \
-H "Content-Type: application/json" \
-d '{
"imap_provider_name": "Google Workspace"
}'
Combined Test
Run multiple tools at once against a domain. Returns individual results for each tool.
curl -X POST https://themailx.com/api/v1/combine \
-H "Content-Type: application/json" \
-d '{
"inputs": {
"domain_name": "google.com"
},
"tools": ["spf-check", "dmarc-check", "bimi-check", "blacklist-check"]
}'
| Parameter | Type | Required | Description |
|---|---|---|---|
| inputs | object | Yes | Key-value pairs of input fields (shared across tools) |
| tools | array | Yes | Array of tool endpoint names to run |
single_request ID at /api/v1/requests/{id} for the result.
Error Handling
All endpoints return standard HTTP status codes:
| Status | Meaning |
|---|---|
| 200 | Success — result is in the response body |
| 422 | Validation error — check messages in the response body |
| 429 | Rate limited — too many requests, retry after the Retry-After header value |
| 500 | Server error — the tool encountered an unexpected failure |
Validation errors return a structured response:
{
"messages": {
"domain_name": ["The domain name field is required."]
}
}