iDig API
iDig is a comprehensive DNS intelligence and domain security API. It wraps
dig, delv, WHOIS, RDAP, and certificate transparency logs into a single authenticated
REST API — designed for developers, security auditors, and AI agents.
https://api.softricks.net/idigOpenAPI
openapi.json
Quick Start
1. Get a Token
curl -X POST "https://api.softricks.net/idig/token?scope=api"
Returns a token hash you'll use for all subsequent requests. Free tier: 100 requests/month.
2. Make Your First Query
curl "https://api.softricks.net/idig/?d=example.com&rr=a&token=YOUR_TOKEN"
3. Check Your Usage
curl "https://api.softricks.net/idig/usage?token=YOUR_TOKEN"
Authentication
Every request requires a token query parameter. Tokens are scoped:
| Scope | Description | How to Get |
|---|---|---|
api |
General API access | Self-service via POST /token |
mobile |
Mobile app access | Self-service via POST /token |
agent |
AI agent access | Requires admin secret |
mcp |
MCP protocol access | Requires admin secret |
Plans & Rate Limits
| Plan | Monthly Requests | Batch Domains | Price |
|---|---|---|---|
| Free | 100 | N/A | $0 |
| Pro | 10,000 | Up to 10 | ~$9/mo |
| Business | 100,000 | Up to 50 | ~$29/mo |
| Unlimited | No cap | Up to 100 | Admin-only |
Usage headers returned with every response:
X-Idig-Used— requests used this monthX-Idig-Limit— monthly capX-Idig-Remaining— requests remaining
DNS Lookup GET /
example.com into a browser, DNS translates that name into an IP address like
93.184.216.34. DNS stores many record types beyond IP addresses — mail servers (MX), text data
(TXT), security policies (CAA), service locations (SRV), and more. Each record type serves a different purpose in
the internet's infrastructure.
The foundational endpoint. Query any DNS record type for any domain.
# A records (IPv4 addresses)
curl "https://api.softricks.net/idig/?d=example.com&rr=a&token=TOKEN"
# MX records (mail servers)
curl "https://api.softricks.net/idig/?d=example.com&rr=mx&token=TOKEN"
# All records at once
curl "https://api.softricks.net/idig/?d=example.com&rr=all&token=TOKEN"
Supported record types: a ns soa ds
txt cname caa srv tlsa https
svcb any all
Options:
ns=8.8.8.8— query a specific nameserverauth=yes— query authoritative nameservers directlyquadA=yes— include AAAA (IPv6) records alongside A
DNSSEC Validation GET /dnssec/validate
.) through the TLD
(.com) to the domain. Each level signs the level below it. The chain is: Root → TLD
→ Domain. If any link breaks, validation fails and the domain becomes "bogus."
Validates the full DNSSEC chain of trust using delv with a local Unbound resolver.
curl "https://api.softricks.net/idig/dnssec/validate?d=cloudflare.com&token=TOKEN"
Returns status (secure/insecure/bogus), validated boolean, reason_codes,
and remediation steps.
DNSSEC Health GET /dnssec/health
Deep key management audit — algorithm strength, key rollover readiness, signature lifetimes, DS/DNSKEY consistency, and NSEC3 exposure.
curl "https://api.softricks.net/idig/dnssec/health?d=example.com&token=TOKEN"
Chain of Trust
The response includes a chain array mapping the full DNSSEC trust path from root to your domain.
Each link contains the DNSKEY records at that zone, the DS records from the parent, and a
chain_intact flag indicating whether the DS→DNSKEY handoff is valid at that level.
"chain": [
{
"zone": ".",
"level": "root",
"dnskeys": [{"key_tag": "20326", "type": "KSK", "algorithm": "RSA/SHA-256"}, ...],
"chain_intact": true,
"ds_to_child": [{"key_tag": "19718", "algorithm": "ECDSAP256SHA256", "digest_type": "SHA-256"}]
},
{
"zone": "com.",
"level": "tld",
"dnskeys": [{"key_tag": "19718", "type": "KSK", ...}, ...],
"ds_from_parent": [{"key_tag": "19718", ...}],
"chain_intact": true,
"matching_key_tags": ["19718"],
"ds_to_child": [{"key_tag": "2371", ...}]
},
{
"zone": "example.com.",
"level": "domain",
"dnskeys": [{"key_tag": "2371", "type": "KSK", ...}, ...],
"ds_from_parent": [{"key_tag": "2371", ...}],
"chain_intact": true,
"matching_key_tags": ["2371"]
}
],
"chain_intact": true
chain_intact(top-level) —trueif every link validates end-to-endmatching_key_tags— which DNSKEY key tags match the DS from the parentbroken: true— appears on the first link where the chain fails, pinpointing the exact break- If a link breaks,
warningsandrecommendationsare added with actionable guidance
Email Security Audit GET /email/security
- SPF (Sender Policy Framework) — a DNS TXT record listing which IPs can send email for
your domain. The
-allqualifier means "reject everything else." - DKIM (DomainKeys Identified Mail) — the sending server cryptographically signs each email. The public key is in DNS. Receivers verify the signature to confirm the email wasn't altered.
- DMARC (Domain-based Message Authentication, Reporting & Conformance) — tells
receivers what to do when SPF and DKIM fail:
none(report),quarantine(spam), orreject(drop). Also enables aggregate reporting. - BIMI (Brand Indicators for Message Identification) — a DNS TXT record at
default._bimi.<domain>pointing to your brand's SVG logo and optional VMC certificate. Gmail, Yahoo, and Apple Mail display the logo next to authenticated emails.
Four-pillar email authentication check: SPF + DKIM + DMARC + BIMI. Returns an A–F grade.
curl "https://api.softricks.net/idig/email/security?d=example.com&token=TOKEN"
- SPF — record syntax, qualifier, DNS lookup count (max 10)
- DKIM — probes 20+ selectors including provider-specific ones, key type/size
- DMARC — policy enforcement, reporting addresses, alignment mode
- BIMI — brand logo URL and VMC presence
MX Health GET /mx/check
curl "https://api.softricks.net/idig/mx/check?d=example.com&token=TOKEN"
Blacklist Check GET /blacklist/check
curl "https://api.softricks.net/idig/blacklist/check?d=example.com&token=TOKEN"
SSL/TLS Certificate GET /ssl/check
curl "https://api.softricks.net/idig/ssl/check?d=example.com&token=TOKEN"
Returns issuer, validity window, SANs, chain depth, and days until expiry.
DANE/TLSA Validation GET /dane/validate
curl "https://api.softricks.net/idig/dane/validate?d=example.com&token=TOKEN"
HTTP/HTTPS Reachability GET /http/check
curl "https://api.softricks.net/idig/http/check?d=example.com&token=TOKEN"
WHOIS / RDAP GET /whois
curl "https://api.softricks.net/idig/whois?d=example.com&token=TOKEN"
Returns registrar, dates, nameservers, DNSSEC status, and a source field ("rdap" or "whois").
Domain Status GET /domain/status
clientTransferProhibited prevents unauthorized transfers.
serverDeleteProhibited locks against deletion at the registry level. Without these locks, a
compromised registrar account could transfer your domain in minutes.
curl "https://api.softricks.net/idig/domain/status?d=example.com&token=TOKEN"
IP Geolocation GET /geo
curl "https://api.softricks.net/idig/geo?d=example.com&token=TOKEN"
Returns country, city, ISP, ASN, and hosting provider detection.
DNS Propagation GET /propagation
curl "https://api.softricks.net/idig/propagation?d=example.com&token=TOKEN"
Checks answers across 8 global resolvers: Google, Cloudflare, Quad9, OpenDNS, and more.
Zone Consistency GET /zone/consistency
curl "https://api.softricks.net/idig/zone/consistency?d=example.com&token=TOKEN"
AXFR Zone Transfer GET /zone/axfr
curl "https://api.softricks.net/idig/zone/axfr?d=example.com&token=TOKEN"
TTL Advisory GET /ttl/check
curl "https://api.softricks.net/idig/ttl/check?d=example.com&token=TOKEN"
Subdomain Discovery GET /subdomains
mail, vpn, staging. (2) Certificate
Transparency logs are public records of every TLS certificate issued. Since certs list covered domains,
CT logs reveal subdomains no wordlist would guess. crt.sh is the most widely used CT search engine.
curl "https://api.softricks.net/idig/subdomains?d=example.com&token=TOKEN"
Results include source attribution: "wordlist", "crt.sh", or "both".
Resolution Health GET /resolve/check
curl "https://api.softricks.net/idig/resolve/check?d=example.com&token=TOKEN"
All-in-One Diagnostic GET /diagnose
/diagnose endpoint is the best starting point when you're
unsure what's wrong. It runs resolution checks and DNSSEC validation, synthesizing results into three yes/no
questions. This is the endpoint AI agents should call first.
Answers three questions:
- Are there resolution errors?
- Is DNSSEC validated?
- What should be fixed?
curl "https://api.softricks.net/idig/diagnose?d=example.com&token=TOKEN"
Batch Mode POST /batch
complete.
Run multiple checks across multiple domains. Requires Pro plan or higher.
curl -X POST "https://api.softricks.net/idig/batch?token=TOKEN" \
-H "Content-Type: application/json" \
-d '{
"domains": ["example.com", "example.org"],
"checks": ["dns", "ssl", "mx", "email"]
}'
All 19 checks: dns ssl mx email
geo ttl whois blacklist http
subdomains dane dnssec_validate dnssec_health
zone_consistency axfr propagation domain_status
resolve diagnose
Poll Results GET /batch/{job_id}
curl "https://api.softricks.net/idig/batch/JOB_ID?token=TOKEN"
Quota cost: 1 request per domain × check (deducted at submission).
Error Handling
| Status | Meaning |
|---|---|
400 |
Bad request (invalid domain, too many batch domains, etc.) |
403 |
Invalid or missing token |
429 |
Rate limit or monthly quota exceeded |
500 |
Server error (missing dependency, unexpected failure) |
503 |
Token store temporarily unavailable |
Tips for AI Agents
- Read
/openapi.jsonto discover all endpoints and parameters. - Use
/diagnoseas a first pass — covers resolution + DNSSEC in one call. - Use
/batchfor bulk analysis across multiple domains. - Check
/email/securityfor a complete email authentication profile. - The
rr=allparameter on/returns every DNS record type in one request. - BIMI recommendations only appear when SPF/DKIM/DMARC are already solid.
Architecture
| Component | Technology |
|---|---|
| Runtime | AWS Lambda (Python 3.11, ARM64) |
| Gateway | API Gateway HTTP API |
| DNS Tools | dig, delv, Unbound (local recursive resolver) |
| WHOIS/RDAP | RDAP primary (22 TLD bootstrap), whois fallback |
| Certificate Transparency | crt.sh JSON API |
| Batch Processing | SQS + DynamoDB for async job management |
| Token Store | DynamoDB with TTL-based auto-cleanup |
© Softricks — Swagger UI · OpenAPI Spec