API Documentation
Integrate IntoDNS.ai's DNS and email security scanning into your applications. All endpoints are free to use with fair usage limits.
Fast & Free
No API key required for basic usage
HTTPS Only
All requests must use HTTPS
JSON Responses
All responses are in JSON format
Base URL
https://intodns.aiQuick Scan
Perform rapid DNS and email security analysis
/api/scan/quickPerform a quick scan of a domain, returning security scores and checks
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| domain | string | Required | The domain to scan (e.g., example.com) |
Example
Request
curl "https://intodns.ai/api/scan/quick?domain=example.com"Response
{
"domain": "example.com",
"timestamp": "2024-01-15T10:30:00Z",
"score": 85,
"maxScore": 100,
"percentage": 85,
"grade": "A",
"gradeInfo": {
"grade": "A",
"label": "Very Good",
"description": "Strong security posture"
},
"categories": {
"dns": { "score": 20, "maxScore": 20, "percentage": 100 },
"dnssec": { "score": 15, "maxScore": 20, "percentage": 75 },
"email": { "score": 25, "maxScore": 30, "percentage": 83 },
...
},
"issues": [...],
"recommendations": [...]
}DNS Lookup
Query DNS records and configuration
/api/dns/lookupLook up DNS records for a domain
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| domain | string | Required | The domain to query |
| type | string | Optional | Record type (A, AAAA, MX, TXT, NS, etc.). Defaults to A. |
Example
Request
curl "https://intodns.ai/api/dns/lookup?domain=example.com&type=MX"Response
{
"domain": "example.com",
"records": {
"MX": [
{ "type": "MX", "data": "10 mail.example.com", "ttl": 3600, "priority": 10 }
]
}
}/api/dns/dnssecCheck DNSSEC configuration and validation
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| domain | string | Required | The domain to check |
Example
Request
curl "https://intodns.ai/api/dns/dnssec?domain=example.com"Response
{
"domain": "example.com",
"signed": true,
"valid": true,
"ds": { "exists": true, "records": [...] },
"dnskey": { "exists": true, "records": [...] }
}/api/dns/propagationCheck DNS propagation across global resolvers
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| domain | string | Required | The domain to check |
| type | string | Optional | Record type (default: A) |
Example
Request
curl "https://intodns.ai/api/dns/propagation?domain=example.com"Response
{
"domain": "example.com",
"type": "A",
"results": [
{ "resolver": { "name": "Google", "location": "Global" }, "success": true, "records": [...] },
{ "resolver": { "name": "Cloudflare", "location": "Global" }, "success": true, "records": [...] }
]
}Email Security
Check email authentication and security configuration
/api/email/checkComplete email security check including SPF, DKIM, and DMARC
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| domain | string | Required | The domain to check |
Example
Request
curl "https://intodns.ai/api/email/check?domain=example.com"Response
{
"domain": "example.com",
"spf": { "exists": true, "valid": true, "record": "v=spf1 include:..." },
"dkim": { "found": true, "selectors": ["google", "selector1"] },
"dmarc": { "exists": true, "valid": true, "policy": "reject" }
}/api/email/spfCheck SPF record configuration
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| domain | string | Required | The domain to check |
/api/email/dkimDiscover DKIM records by testing common selectors
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| domain | string | Required | The domain to check |
| selector | string | Optional | Specific selector to check |
/api/email/dmarcCheck DMARC record and policy
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| domain | string | Required | The domain to check |
/api/email/sender-requirementsCheck Google/Yahoo 2024 sender requirements compliance
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| domain | string | Required | The domain to check |
Security Badge
Generate embeddable security badges
/api/badge/[domain]Get an SVG security badge for a domain
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| domain | path | Required | The domain (in URL path) |
| style | string | Optional | Badge style: flat, flat-square, plastic, large |
Example
Request
curl "https://intodns.ai/api/badge/example.com?style=flat"Response
<!-- SVG badge image -->Rate Limits
Fair usage limits to ensure availability for everyone
| Endpoint | Limit | Window |
|---|---|---|
| /api/scan/* | 10 requests | per minute |
| /api/dns/* | 30 requests | per minute |
| /api/email/* | 20 requests | per minute |
| /api/badge/* | 60 requests | per minute (cached) |
Need higher limits? Contact us for enterprise API access.
Error Responses
Standard error format for all endpoints
{
"error": "Error message describing what went wrong",
"code": "ERROR_CODE"
}400 - Bad Request (invalid parameters)
429 - Too Many Requests (rate limited)
500 - Internal Server Error