Retrieve DNS records for a given domain
curl --request POST \
--url https://api.geekflare.com/dnsrecord \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"url": "https://example.com",
"types": [
"A",
"MX"
]
}
'import requests
url = "https://api.geekflare.com/dnsrecord"
payload = {
"url": "https://example.com",
"types": ["A", "MX"]
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({url: 'https://example.com', types: ['A', 'MX']})
};
fetch('https://api.geekflare.com/dnsrecord', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.geekflare.com/dnsrecord",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'url' => 'https://example.com',
'types' => [
'A',
'MX'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.geekflare.com/dnsrecord"
payload := strings.NewReader("{\n \"url\": \"https://example.com\",\n \"types\": [\n \"A\",\n \"MX\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.geekflare.com/dnsrecord")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"url\": \"https://example.com\",\n \"types\": [\n \"A\",\n \"MX\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.geekflare.com/dnsrecord")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"url\": \"https://example.com\",\n \"types\": [\n \"A\",\n \"MX\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"timestamp": 1783943217189,
"apiStatus": "success",
"apiCode": 200,
"meta": {
"url": "example.com",
"types": [
"A",
"MX"
],
"test": {
"id": "zmkqoxxu075dwn4u61yoqhq2rwo0029m"
}
},
"data": {
"A": [
"172.67.70.213",
"104.26.11.88",
"104.26.10.88"
],
"MX": [
{
"exchange": "alt3.aspmx.l.google.com",
"priority": 10
},
{
"exchange": "aspmx.l.google.com",
"priority": 1
}
]
}
}{
"timestamp": 1700000000000,
"apiStatus": "failure",
"apiCode": 400,
"message": "INVALID_URL",
"details": "The URL must be a valid HTTP or HTTPS URL."
}{
"timestamp": 1700000000000,
"apiStatus": "failure",
"apiCode": 500,
"message": "DNS_LOOKUP_FAILED",
"details": "DNS lookup failed for the requested domain."
}Endpoint
DNS Records
Look up A, AAAA, CNAME, MX, CAA, NS, SOA, SRV, and TXT records for any domain. Query every supported type in one call, or pass types to fetch only the ones you need.
POST
/
dnsrecord
Retrieve DNS records for a given domain
curl --request POST \
--url https://api.geekflare.com/dnsrecord \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"url": "https://example.com",
"types": [
"A",
"MX"
]
}
'import requests
url = "https://api.geekflare.com/dnsrecord"
payload = {
"url": "https://example.com",
"types": ["A", "MX"]
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({url: 'https://example.com', types: ['A', 'MX']})
};
fetch('https://api.geekflare.com/dnsrecord', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.geekflare.com/dnsrecord",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'url' => 'https://example.com',
'types' => [
'A',
'MX'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.geekflare.com/dnsrecord"
payload := strings.NewReader("{\n \"url\": \"https://example.com\",\n \"types\": [\n \"A\",\n \"MX\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.geekflare.com/dnsrecord")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"url\": \"https://example.com\",\n \"types\": [\n \"A\",\n \"MX\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.geekflare.com/dnsrecord")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"url\": \"https://example.com\",\n \"types\": [\n \"A\",\n \"MX\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"timestamp": 1783943217189,
"apiStatus": "success",
"apiCode": 200,
"meta": {
"url": "example.com",
"types": [
"A",
"MX"
],
"test": {
"id": "zmkqoxxu075dwn4u61yoqhq2rwo0029m"
}
},
"data": {
"A": [
"172.67.70.213",
"104.26.11.88",
"104.26.10.88"
],
"MX": [
{
"exchange": "alt3.aspmx.l.google.com",
"priority": 10
},
{
"exchange": "aspmx.l.google.com",
"priority": 1
}
]
}
}{
"timestamp": 1700000000000,
"apiStatus": "failure",
"apiCode": 400,
"message": "INVALID_URL",
"details": "The URL must be a valid HTTP or HTTPS URL."
}{
"timestamp": 1700000000000,
"apiStatus": "failure",
"apiCode": 500,
"message": "DNS_LOOKUP_FAILED",
"details": "DNS lookup failed for the requested domain."
}Authorizations
API Key required for all endpoints
Body
application/json
Response
Successfully retrieved DNS records
Timestamp of the request in milliseconds
Example:
1783943217189
API status message
Available options:
success, failure Example:
"success"
API status code
Example:
200
Metadata about the request.
Show child attributes
Show child attributes
Example:
{
"url": "example.com",
"types": ["A", "MX"],
"test": { "id": "zmkqoxxu075dwn4u61yoqhq2rwo0029m" }
}
DNS records grouped by type.
Example:
{
"A": [
"172.67.70.213",
"104.26.11.88",
"104.26.10.88"
],
"MX": [
{
"exchange": "alt3.aspmx.l.google.com",
"priority": 10
},
{
"exchange": "aspmx.l.google.com",
"priority": 1
}
]
}
⌘I