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.ai

Quick Scan

Perform rapid DNS and email security analysis

GET
/api/scan/quick

Perform a quick scan of a domain, returning security scores and checks

Parameters

NameTypeRequiredDescription
domainstring
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

GET
/api/dns/lookup

Look up DNS records for a domain

Parameters

NameTypeRequiredDescription
domainstring
Required
The domain to query
typestring
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 }
    ]
  }
}
GET
/api/dns/dnssec

Check DNSSEC configuration and validation

Parameters

NameTypeRequiredDescription
domainstring
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": [...] }
}
GET
/api/dns/propagation

Check DNS propagation across global resolvers

Parameters

NameTypeRequiredDescription
domainstring
Required
The domain to check
typestring
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

GET
/api/email/check

Complete email security check including SPF, DKIM, and DMARC

Parameters

NameTypeRequiredDescription
domainstring
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" }
}
GET
/api/email/spf

Check SPF record configuration

Parameters

NameTypeRequiredDescription
domainstring
Required
The domain to check
GET
/api/email/dkim

Discover DKIM records by testing common selectors

Parameters

NameTypeRequiredDescription
domainstring
Required
The domain to check
selectorstring
Optional
Specific selector to check
GET
/api/email/dmarc

Check DMARC record and policy

Parameters

NameTypeRequiredDescription
domainstring
Required
The domain to check
GET
/api/email/sender-requirements

Check Google/Yahoo 2024 sender requirements compliance

Parameters

NameTypeRequiredDescription
domainstring
Required
The domain to check

Security Badge

Generate embeddable security badges

GET
/api/badge/[domain]

Get an SVG security badge for a domain

Parameters

NameTypeRequiredDescription
domainpath
Required
The domain (in URL path)
stylestring
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

EndpointLimitWindow
/api/scan/*10 requestsper minute
/api/dns/*30 requestsper minute
/api/email/*20 requestsper minute
/api/badge/*60 requestsper 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