openapi: 3.2.0
info:
title: Apifreaks Api Hub For Developers DNS APIs API
version: 1.0.0
contact:
name: APIFreaks Support
url: https://apifreaks.com/contact
email: support@apifreaks.com
description: 'Operations tagged DNS APIs across 4 of this provider''s published API definitions: apifreaks-api-hub-for-developers-bulk-dns-lookup-openapi.json, apifreaks-api-hub-for-developers-dns-history-lookup-openapi.json, apifreaks-api-hub-for-developers-dns-lookup-openapi.json, apifreaks-api-hub-for-developers-reverse-dns-lookup-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.apifreaks.com/v1.0
description: Bulk DNS Lookup API Server
security:
- ApiKeyAuthHeader: []
- ApiKeyAuthQuery: []
tags:
- name: DNS APIs
paths:
/domain/dns/live:
servers:
- url: https://api.apifreaks.com/v1.0
description: Bulk DNS Lookup API Server
post:
tags:
- DNS APIs
summary: Retrieve A, AAAA, MX, NS, SOA, SPF, TXT, and CNAME DNS records of multiple hostnames in a single request
description: Perform DNS lookups for multiple hostnames in a single request. Supports up to 100 hostnames per request and returns DNS records including A, AAAA, MX, NS, SOA, SPF, TXT, and CNAME records.
operationId: bulkDnsLookup
parameters:
- name: format
in: query
required: false
description: Format of the response.
schema:
type: string
enum:
- json
- xml
default: json
- name: type
in: query
required: true
description: A comma-separated list of DNS record types for lookup.
schema:
type: string
enum:
- A
- AAAA
- MX
- NS
- SOA
- SPF
- TXT
- CNAME
- all
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BulkDNSLookupRequest'
examples:
typicalRequest:
summary: Bulk lookup for two domains and one IP
value:
domainNames:
- google.com
- example.com
ipAddresses:
- 8.8.8.8
responses:
'200':
description: Successful DNS lookup response. Each entry in the bulk_dns_info array corresponds to one queried domain or IP address, in request order.
content:
application/json:
schema:
$ref: '#/components/schemas/BulkDNSLookupResponse'
examples:
default:
summary: Bulk DNS lookup with domain and IP entries
value:
bulk_dns_info:
- status: true
queryTime: '2026-06-17 09:43:40'
ipAddress: 8.8.8.8
dnsTypes:
PTR: 12
dnsRecords:
- name: 8.8.8.8.in-addr.arpa
type: 12
dnsType: PTR
ttl: 3933
rawText: "8.8.8.8.in-addr.arpa.\t3933\tIN\tPTR\tdns.google."
rRsetType: 12
singleName: dns.google.
- status: true
queryTime: '2026-06-17 09:43:40'
domainName: google.com
domainRegistered: true
dnsTypes:
A: 1
NS: 2
SOA: 6
MX: 15
TXT: 16
AAAA: 28
SPF: 99
dnsRecords:
- name: google.com
type: 1
dnsType: A
ttl: 266
rawText: "google.com.\t\t266\tIN\tA\t142.250.27.113"
rRsetType: 1
address: 142.250.27.113
- name: google.com
type: 1
dnsType: A
ttl: 266
rawText: "google.com.\t\t266\tIN\tA\t142.250.27.100"
rRsetType: 1
address: 142.250.27.100
- name: google.com
type: 1
dnsType: A
ttl: 266
rawText: "google.com.\t\t266\tIN\tA\t142.250.27.101"
rRsetType: 1
address: 142.250.27.101
- name: google.com
type: 2
dnsType: NS
ttl: 21600
rawText: "google.com.\t\t21600\tIN\tNS\tns3.google.com."
rRsetType: 2
singleName: ns3.google.com.
- name: google.com
type: 2
dnsType: NS
ttl: 21600
rawText: "google.com.\t\t21600\tIN\tNS\tns4.google.com."
rRsetType: 2
singleName: ns4.google.com.
- name: google.com
type: 2
dnsType: NS
ttl: 21600
rawText: "google.com.\t\t21600\tIN\tNS\tns2.google.com."
rRsetType: 2
singleName: ns2.google.com.
- name: google.com
type: 2
dnsType: NS
ttl: 21600
rawText: "google.com.\t\t21600\tIN\tNS\tns1.google.com."
rRsetType: 2
singleName: ns1.google.com.
- name: google.com
type: 6
dnsType: SOA
ttl: 20
rawText: "google.com.\t\t20\tIN\tSOA\tns1.google.com. dns-admin.google.com. 932992649 900 900 1800 60"
rRsetType: 6
admin: dns-admin.google.com.
host: ns1.google.com.
expire: 1800
minimum: 60
refresh: 900
retry: 900
serial: 932992649
- name: google.com
type: 15
dnsType: MX
ttl: 198
rawText: "google.com.\t\t198\tIN\tMX\t10 smtp.google.com."
rRsetType: 15
target: smtp.google.com.
priority: 10
- name: google.com
type: 16
dnsType: TXT
ttl: 300
rawText: "google.com.\t\t300\tIN\tTXT\t\"google-site-verification=TV9-DBe4R80X4v0M4U_bd_J9cpOJM0nikft0jAgjmsQ\""
rRsetType: 16
strings:
- google-site-verification=TV9-DBe4R80X4v0M4U_bd_J9cpOJM0nikft0jAgjmsQ
- name: google.com
type: 28
dnsType: AAAA
ttl: 106
rawText: "google.com.\t\t106\tIN\tAAAA\t2a00:1450:4025:401:0:0:0:8b"
rRsetType: 28
address: 2a00:1450:4025:401:0:0:0:8b
- name: google.com
type: 99
dnsType: SPF
ttl: 300
rawText: "google.com.\t\t300\tIN\tSPF\t\"v=spf1 include:_spf.google.com ~all\""
rRsetType: 99
strings:
- v=spf1 include:_spf.google.com ~all
- status: true
queryTime: '2026-06-17 09:43:40'
domainName: example.com
domainRegistered: true
dnsTypes:
A: 1
NS: 2
SOA: 6
MX: 15
TXT: 16
AAAA: 28
SPF: 99
dnsRecords:
- name: example.com
type: 1
dnsType: A
ttl: 300
rawText: "example.com.\t\t300\tIN\tA\t104.20.23.154"
rRsetType: 1
address: 104.20.23.154
- name: example.com
type: 2
dnsType: NS
ttl: 21600
rawText: "example.com.\t\t21600\tIN\tNS\telliott.ns.cloudflare.com."
rRsetType: 2
singleName: elliott.ns.cloudflare.com.
- name: example.com
type: 6
dnsType: SOA
ttl: 1800
rawText: "example.com.\t\t1800\tIN\tSOA\telliott.ns.cloudflare.com. dns.cloudflare.com. 2405749864 10000 2400 604800 1800"
rRsetType: 6
admin: dns.cloudflare.com.
host: elliott.ns.cloudflare.com.
expire: 604800
minimum: 1800
refresh: 10000
retry: 2400
serial: 2405749864
- name: example.com
type: 15
dnsType: MX
ttl: 86
rawText: "example.com.\t\t86\tIN\tMX\t0 ."
rRsetType: 15
target: .
priority: 0
- name: example.com
type: 16
dnsType: TXT
ttl: 300
rawText: "example.com.\t\t300\tIN\tTXT\t\"_k2n1y4vw3qtb4skdx9e7dxt97qrmmq9\""
rRsetType: 16
strings:
- _k2n1y4vw3qtb4skdx9e7dxt97qrmmq9
- name: example.com
type: 28
dnsType: AAAA
ttl: 300
rawText: "example.com.\t\t300\tIN\tAAAA\t2606:4700:10:0:0:0:ac42:93f3"
rRsetType: 28
address: 2606:4700:10:0:0:0:ac42:93f3
- name: example.com
type: 99
dnsType: SPF
ttl: 300
rawText: "example.com.\t\t300\tIN\tSPF\t\"v=spf1 -all\""
rRsetType: 99
strings:
- v=spf1 -all
'400':
description: Bad Request — Missing type parameter or malformed request body
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
missingTypeParam:
summary: Missing type query parameter
value:
timestamp: '2026-07-23T09:52:48.563Z'
path: /v1.0/domain/dns/live
status: 400
error: Invalid Param Exception
message: please pass correct parameters
malformedBody:
summary: Missing or malformed request body
value:
error: Invalid request body Exception
message: Please provide data in required format in request body
path: /v1.0/domain/dns/live
status: 400
timestamp: '2026-07-23T09:52:49.074Z'
'413':
description: Payload Too Large — Request exceeds the 100-hostname batch limit
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
payloadTooLarge:
summary: More than 100 domain names submitted
value:
error: Payload too large Exception
message: Maximum request body size limit exceeded
path: /v1.0/domain/dns/live
status: 413
timestamp: '2026-07-23T09:52:49.621Z'
get:
tags:
- DNS APIs
summary: Perform a live DNS lookup for any hostname or IP address
description: Retrieve real-time DNS records for any hostname or IP address. Returns A, AAAA, MX, NS, SOA, SPF, TXT, CNAME, and PTR records with full parsed fields.
operationId: dnsLookup
parameters:
- name: format
in: query
required: false
schema:
type: string
enum:
- json
- xml
default: json
description: Format of the response.
- name: host-name
in: query
required: true
schema:
type: string
description: Hostname or URL whose DNS records are required.
- name: ipAddress
in: query
required: false
schema:
type: string
description: The IP address for requested DNS's PTR record. 'type' parameter must be set to 'all'.
- name: type
in: query
required: true
schema:
type: string
enum:
- A
- AAAA
- MX
- NS
- SOA
- SPF
- TXT
- CNAME
- all
description: 'A comma-separated list of DNS record types for lookup. Possible values: A, AAAA, MX, NS, SOA, SPF, TXT, CNAME, or all. When ipAddress is provided, type must be "all".'
responses:
'200':
description: Successful DNS lookup response
content:
application/json:
schema:
$ref: '#/components/schemas/DNSLookupResponse'
examples:
default:
value:
status: true
queryTime: '2026-06-06 10:43:05'
domainName: example.com
domainRegistered: true
dnsTypes:
A: 1
NS: 2
SOA: 6
MX: 15
TXT: 16
AAAA: 28
SPF: 99
dnsRecords:
- name: example.com
type: 1
dnsType: A
ttl: 300
rawText: "example.com.\t\t300\tIN\tA\t104.20.23.154"
rRsetType: 1
address: 104.20.23.154
- name: example.com
type: 1
dnsType: A
ttl: 300
rawText: "example.com.\t\t300\tIN\tA\t172.66.147.243"
rRsetType: 1
address: 172.66.147.243
- name: example.com
type: 2
dnsType: NS
ttl: 21600
rawText: "example.com.\t\t21600\tIN\tNS\telliott.ns.cloudflare.com."
rRsetType: 2
singleName: elliott.ns.cloudflare.com.
- name: example.com
type: 2
dnsType: NS
ttl: 21600
rawText: "example.com.\t\t21600\tIN\tNS\thera.ns.cloudflare.com."
rRsetType: 2
singleName: hera.ns.cloudflare.com.
- name: example.com
type: 6
dnsType: SOA
ttl: 1800
rawText: "example.com.\t\t1800\tIN\tSOA\telliott.ns.cloudflare.com. dns.cloudflare.com. 2405749864 10000 2400 604800 1800"
rRsetType: 6
admin: dns.cloudflare.com.
host: elliott.ns.cloudflare.com.
expire: 604800
minimum: 1800
refresh: 10000
retry: 2400
serial: 2405749864
- name: example.com
type: 15
dnsType: MX
ttl: 236
rawText: "example.com.\t\t236\tIN\tMX\t0 ."
rRsetType: 15
target: .
priority: 0
- name: example.com
type: 16
dnsType: TXT
ttl: 300
rawText: "example.com.\t\t300\tIN\tTXT\t\"_k2n1y4vw3qtb4skdx9e7dxt97qrmmq9\""
rRsetType: 16
strings:
- _k2n1y4vw3qtb4skdx9e7dxt97qrmmq9
- name: example.com
type: 28
dnsType: AAAA
ttl: 300
rawText: "example.com.\t\t300\tIN\tAAAA\t2606:4700:10:0:0:0:ac42:93f3"
rRsetType: 28
address: 2606:4700:10:0:0:0:ac42:93f3
- name: example.com
type: 28
dnsType: AAAA
ttl: 300
rawText: "example.com.\t\t300\tIN\tAAAA\t2606:4700:10:0:0:0:6814:179a"
rRsetType: 28
address: 2606:4700:10:0:0:0:6814:179a
- name: example.com
type: 99
dnsType: SPF
ttl: 300
rawText: "example.com.\t\t300\tIN\tSPF\t\"v=spf1 -all\""
rRsetType: 99
strings:
- v=spf1 -all
ptrLookup:
summary: PTR lookup via ipAddress
value:
status: true
queryTime: '2026-07-23 09:51:24'
ipAddress: 8.8.8.8
dnsTypes:
PTR: 12
dnsRecords:
- name: 8.8.8.8.in-addr.arpa
type: 12
dnsType: PTR
ttl: 16954
rawText: "8.8.8.8.in-addr.arpa.\t16954\tIN\tPTR\tdns.google."
rRsetType: 12
singleName: dns.google.
'400':
description: Bad Request — Missing or invalid parameters
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse_3'
examples:
missingParams:
summary: Missing required parameter
value:
error: Invalid Param Exception
message: please pass correct parameters
path: /v1.0/domain/dns/live
status: 400
timestamp: '2026-07-23T09:50:58.722Z'
invalidType:
summary: Unsupported DNS record type
value:
timestamp: '2026-07-23T09:51:08.447Z'
status: 400
error: Invalid Param Exception
message: 'Please provide correct dns records type(s) [For Technical Support: support@whoisfreaks.com]'
path: /v2.0/dns/live
malformedHostname:
summary: Hostname missing a valid TLD
value:
timestamp: '2026-07-23T09:54:13.140Z'
status: 400
error: Invalid Param Exception
message: 'Please pass domain param correct value[For Technical Support: support@whoisfreaks.com]'
path: /v2.0/dns/live
/domain/dns/history:
servers:
- url: https://api.apifreaks.com/v1.0
description: DNS History API Server
get:
tags:
- DNS APIs
summary: Get all historical A, AAAA, MX, NS, SOA, SPF, TXT, and CNAME DNS records of a hostname
description: 'Retrieve historical DNS records for any hostname. Access unique historical data for A, AAAA, MX, NS, SOA, SPF, TXT, and CNAME records,
including subdomains. Results are paginated with up to 100 unique records per page.
'
operationId: dnsHistoryLookup
parameters:
- name: format
in: query
required: false
schema:
type: string
enum:
- json
- xml
default: json
description: Format of the response.
- name: host-name
in: query
required: true
schema:
type: string
description: Hostname or URL whose historical DNS records are required
- name: type
in: query
required: true
schema:
type: string
enum:
- A
- AAAA
- MX
- NS
- SOA
- SPF
- TXT
- CNAME
- all
description: 'A comma-separated list of DNS record types for lookup.
Possible values: A, AAAA, MX, NS, SOA, SPF, TXT, CNAME, or all
'
- name: page
in: query
required: false
schema:
type: integer
minimum: 1
default: 1
description: Page number for paginated results.
responses:
'200':
description: Successful DNS history lookup response
content:
application/json:
schema:
$ref: '#/components/schemas/DNSHistoryLookupResponse'
examples:
default:
summary: DNS history lookup for example.com
value:
totalRecords: 46
totalPages: 1
currentPage: 1
historicalDnsRecords:
- queryTime: '2025-12-16'
domainName: example.com.
dnsTypes:
SOA: 6
AAAA: 28
A: 1
NS: 2
dnsRecords:
- name: example.com
type: 1
dnsType: A
ttl: 4
rawText: "example.com.\t\t4\tIN\tA\t23.192.228.84"
rRsetType: 1
address: 23.192.228.84
- name: example.com
type: 1
dnsType: A
ttl: 4
rawText: "example.com.\t\t4\tIN\tA\t23.215.0.136"
rRsetType: 1
address: 23.215.0.136
- name: example.com
type: 1
dnsType: A
ttl: 278
rawText: "example.com.\t\t278\tIN\tA\t23.220.75.245"
rRsetType: 1
address: 23.220.75.245
- name: example.com
type: 1
dnsType: A
ttl: 278
rawText: "example.com.\t\t278\tIN\tA\t23.220.75.232"
rRsetType: 1
address: 23.220.75.232
- name: example.com
type: 1
dnsType: A
ttl: 4
rawText: "example.com.\t\t4\tIN\tA\t23.215.0.138"
rRsetType: 1
address: 23.215.0.138
- name: example.com
type: 1
dnsType: A
ttl: 4
rawText: "example.com.\t\t4\tIN\tA\t23.192.228.80"
rRsetType: 1
address: 23.192.228.80
- name: example.com
type: 28
dnsType: AAAA
ttl: 89
rawText: "example.com.\t\t89\tIN\tAAAA\t2600:1406:5e00:6:0:0:17ce:bc12"
rRsetType: 28
address: 2600:1406:5e00:6:0:0:17ce:bc12
- name: example.com
type: 28
dnsType: AAAA
ttl: 202
rawText: "example.com.\t\t202\tIN\tAAAA\t2600:1406:bc00:53:0:0:b81e:94ce"
rRsetType: 28
address: 2600:1406:bc00:53:0:0:b81e:94ce
- name: example.com
type: 28
dnsType: AAAA
ttl: 89
rawText: "example.com.\t\t89\tIN\tAAAA\t2600:1406:5e00:6:0:0:17ce:bc1b"
rRsetType: 28
address: 2600:1406:5e00:6:0:0:17ce:bc1b
- name: example.com
type: 28
dnsType: AAAA
ttl: 202
rawText: "example.com.\t\t202\tIN\tAAAA\t2600:1408:ec00:36:0:0:1736:7f31"
rRsetType: 28
address: 2600:1408:ec00:36:0:0:1736:7f31
- name: example.com
type: 28
dnsType: AAAA
ttl: 202
rawText: "example.com.\t\t202\tIN\tAAAA\t2600:1408:ec00:36:0:0:1736:7f24"
rRsetType: 28
address: 2600:1408:ec00:36:0:0:1736:7f24
- name: example.com
type: 28
dnsType: AAAA
ttl: 202
rawText: "example.com.\t\t202\tIN\tAAAA\t2600:1406:bc00:53:0:0:b81e:94c8"
rRsetType: 28
address: 2600:1406:bc00:53:0:0:b81e:94c8
- name: example.com
type: 6
dnsType: SOA
ttl: 3600
rawText: "example.com.\t\t3600\tIN\tSOA\tns.icann.org. noc.dns.icann.org. 2022091323 7200 3600 1209600 3600"
rRsetType: 6
admin: noc.dns.icann.org.
host: ns.icann.org.
expire: 1209600
minimum: 3600
refresh: 7200
retry: 3600
serial: 2022091323
- name: example.com
type: 2
dnsType: NS
ttl: 21600
rawText: "example.com.\t\t21600\tIN\tNS\ta.iana-servers.net."
rRsetType: 2
singleName: a.iana-servers.net.
- name: example.com
type: 2
dnsType: NS
ttl: 21600
rawText: "example.com.\t\t21600\tIN\tNS\tb.iana-servers.net."
rRsetType: 2
singleName: b.iana-servers.net.
- queryTime: '2025-12-17'
domainName: example.com.
dnsTypes:
AAAA: 28
A: 1
NS: 2
dnsRecords:
- name: example.com
type: 1
dnsType: A
ttl: 300
rawText: "example.com.\t\t300\tIN\tA\t104.20.34.220"
rRsetType: 1
address: 104.20.34.220
- name: example.com
type: 1
dnsType: A
ttl: 300
rawText: "example.com.\t\t300\tIN\tA\t172.66.144.113"
rRsetType: 1
address: 172.66.144.113
- name: example.com
type: 28
dnsType: AAAA
ttl: 300
rawText: "example.com.\t\t300\tIN\tAAAA\t2606:4700:10:0:0:0:ac42:9071"
rRsetType: 28
address: 2606:4700:10:0:0:0:ac42:9071
- name: example.com
type: 28
dnsType: AAAA
ttl: 300
rawText: "example.com.\t\t300\tIN\tAAAA\t2606:4700:10:0:0:0:6814:22dc"
rRsetType: 28
address: 2606:4700:10:0:0:0:6814:22dc
- name: example.com
type: 2
dnsType: NS
ttl: 128
rawText: "example.com.\t\t128\tIN\tNS\ta.iana-servers.net."
rRsetType: 2
singleName: a.iana-servers.net.
- name: example.com
type: 2
dnsType: NS
ttl: 128
rawText: "example.com.\t\t128\tIN\tNS\tb.iana-servers.net."
rRsetType: 2
singleName: b.iana-servers.net.
'400':
description: Bad Request — Invalid DNS type or malformed hostname
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse_2'
examples:
invalidType:
summary: Unsupported DNS record type
value:
timestamp: '2026-07-23T09:52:28.093Z'
status: 400
error: Invalid Param Exception
message: 'Please provide correct dns records type(s) [For Technical Support: support@whoisfreaks.com]'
path: /v2.0/dns/historical
malformedHostname:
summary: Hostname missing a valid TLD
value:
timestamp: '2026-07-23T09:54:17.353Z'
status: 400
error: Invalid Param Exception
message: 'Please pass domain param correct value[For Technical Support: support@whoisfreaks.com]'
path: /v2.0/dns/historical
'404':
description: Not Found — No DNS history records for the hostname
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse_2'
examples:
noRecords:
summary: No historical DNS records found
value:
timestamp: '2026-07-23T09:52:28.643Z'
status: 404
error: Record not Found
message: 'No Record Found across: zzsuperrandomnonexistent998877.com'
path: /v2.0/dns/historical
/domain/dns/reverse:
servers:
- url: https://api.apifreaks.com/v1.0
description: Reverse DNS Lookup API Server
get:
tags:
- DNS APIs
summary: Retrieve all hostnames associated with any A, AAAA, MX, NS, SOA, SPF, TXT, or CNAME DNS record
description: Perform a reverse DNS lookup by providing an IP or CIDR for A/AAAA lookups, or a hostname selector for MX, NS, SOA, SPF, TXT, and CNAME queries. Returns paginated results with dated DNS snapshots for each matched domain.
operationId: reverseDnsLookup
parameters:
- name: format
in: query
required: false
description: Format of the response.
schema:
type: string
enum:
- json
- xml
# --- truncated at 32 KB (56 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/apifreaks-api-hub-for-developers/refs/heads/main/openapi/apifreaks-api-hub-for-developers-dns-apis-api-openapi.yml