Developer Documentation

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

GitHub Actions
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 }}
GitLab CI
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:
    - main

Blacklist Monitoring

Monitor your domain and mail servers for blacklist status

Node.js Cron
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
    });
  }
});
Python Script
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

TypeScript / React
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

Python
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.com
Fast

Instant security overview covering DNS, email, and basic security checks

Returns:
{ score, categories: { dns, email, security }, critical_issues, warnings }

Email Security Check

GET /api/email/check?domain=example.com
Detailed

Comprehensive SPF, DKIM, DMARC, and MX record analysis

Returns:
{ spf: {...}, dkim: {...}, dmarc: {...}, mx: {...}, score }

DNS Lookup

GET /api/dns/lookup?domain=example.com&type=A
Flexible

Query any DNS record type (A, AAAA, MX, TXT, NS, SOA, CAA, CNAME)

Returns:
{ records: { [type]: [values] }, cached: boolean }

DNSSEC Validation

GET /api/dns/dnssec?domain=example.com
Security

Validate DNSSEC chain of trust and signature integrity

Returns:
{ secure: boolean, chain_valid: boolean, algorithms, ds_records }

API Access

Free & Open

No Auth Required

All 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
Contact Cobytes