Build with IntoDNS.AI
Integrate DNS security and email deliverability checks into your applications, CI/CD pipelines, and monitoring systems.
Quick Start
Your First API Call
curl "https://intodns.ai/api/scan/quick?domain=example.com"No authentication required. Free to use without registration.
Common Use Cases
CI/CD Integration
Validate DNS configuration before deploying to production
name: DNS Validation
on: [push]
jobs:
validate:
runs-on: ubuntu-latest
steps:
- name: Check DNS Security
run: |
SCORE=$(curl -s \
"https://intodns.ai/api/scan/quick?domain=$DOMAIN" \
| jq -r '.score')
if [ "$SCORE" -lt 80 ]; then
echo "DNS score too low: $SCORE"
exit 1
fi
env:
DOMAIN: ${{ secrets.DOMAIN }}dns-check:
script:
- apk add --no-cache curl jq
- RESULT=$(curl -s "https://intodns.ai/api/scan/quick?domain=$DOMAIN")
- SCORE=$(echo $RESULT | jq -r '.score')
- if [ "$SCORE" -lt 80 ]; then exit 1; fi
only:
- mainBlacklist Monitoring
Monitor your domain and mail servers for blacklist status
const cron = require('node-cron');
const axios = require('axios');
// Check every 6 hours
cron.schedule('0 */6 * * *', async () => {
const { data } = await axios.get(
'https://intodns.ai/api/scan/quick?domain=example.com'
);
if (data.critical_issues > 0) {
await sendAlert({
severity: 'critical',
message: `Domain has ${data.critical_issues} issues`,
details: data.categories
});
}
});import requests
import smtplib
def check_domain(domain):
r = requests.get(f'https://intodns.ai/api/scan/quick?domain={domain}')
data = r.json()
if data['critical_issues'] > 0:
send_alert(f"Critical issues found for {domain}")
return data['score']
if __name__ == '__main__':
score = check_domain('example.com')
print(f'Domain score: {score}')Domain Onboarding
Validate new customer domains before activation
async function validateDomain(domain: string) {
try {
const response = await fetch(
`https://intodns.ai/api/scan/quick?domain=${domain}`
);
const data = await response.json();
// Check minimum requirements
const issues = [];
if (data.score < 70) {
issues.push('Security score below minimum');
}
if (data.critical_issues > 0) {
issues.push('Critical security issues present');
}
if (!data.categories.email || data.categories.email.score < 60) {
issues.push('Email security insufficient');
}
return {
valid: issues.length === 0,
issues,
score: data.score
};
} catch (error) {
return { valid: false, issues: ['Domain unreachable'] };
}
}Bulk Domain Validation
Process multiple domains efficiently
import requests
import time
from typing import List, Dict
def validate_domains(domains: List[str]) -> List[Dict]:
results = []
for domain in domains:
try:
response = requests.get(
f'https://intodns.ai/api/scan/quick?domain={domain}',
timeout=30
)
data = response.json()
results.append({
'domain': domain,
'score': data.get('score', 0),
'status': 'success',
'critical_issues': data.get('critical_issues', 0)
})
# Be a good citizen: space requests
time.sleep(3)
except Exception as e:
results.append({
'domain': domain,
'status': 'error',
'error': str(e)
})
return results
# Example usage
domains = ['example.com', 'test.com', 'demo.org']
results = validate_domains(domains)
for result in results:
if result['status'] == 'success':
print(f"{result['domain']}: {result['score']}/100")
else:
print(f"{result['domain']}: ERROR - {result['error']}")Core API Endpoints
Quick Scan
GET /api/scan/quick?domain=example.comInstant security overview covering DNS, email, and basic security checks
{ score, categories: { dns, email, security }, critical_issues, warnings }Email Security Check
GET /api/email/check?domain=example.comComprehensive SPF, DKIM, DMARC, and MX record analysis
{ spf: {...}, dkim: {...}, dmarc: {...}, mx: {...}, score }DNS Lookup
GET /api/dns/lookup?domain=example.com&type=AQuery any DNS record type (A, AAAA, MX, TXT, NS, SOA, CAA, CNAME)
{ records: { [type]: [values] }, cached: boolean }DNSSEC Validation
GET /api/dns/dnssec?domain=example.comValidate DNSSEC chain of trust and signature integrity
{ secure: boolean, chain_valid: boolean, algorithms, ds_records }Developer Resources
OpenAPI Specification
Machine-readable API definition for code generation and API clients
Postman Collection
Pre-configured requests for testing all API endpoints in Postman
LLM Documentation
AI-optimized documentation for LLM assistants and chatbots
Interactive API Docs
Browse endpoints, try requests, and view responses in real-time
API Access
Free & Open
No Auth RequiredAll endpoints are freely accessible without API keys or registration. See the API documentation for details.
Need Help?
Questions about integration? Need dedicated support? We're here to help.
- Integration support
- White-label options