DNS Records
curl --request GET \
--url https://app.pixie.ai/api/email/domains/{id}/dns-records \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.pixie.ai/api/email/domains/{id}/dns-records"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.pixie.ai/api/email/domains/{id}/dns-records', 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://app.pixie.ai/api/email/domains/{id}/dns-records",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.pixie.ai/api/email/domains/{id}/dns-records"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.pixie.ai/api/email/domains/{id}/dns-records")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.pixie.ai/api/email/domains/{id}/dns-records")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"domain": {
"id": "<string>",
"domain": "<string>",
"status": "<string>"
},
"cloudflare": {
"checked": true,
"zoneId": "<string>",
"zoneName": "<string>",
"error": "<string>"
},
"records": [
{
"id": "<string>",
"type": "<string>",
"name": "<string>",
"value": "<string>",
"priority": 123,
"ttl": 123,
"proxied": true
}
]
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Sending Domains
DNS Records
Get email domain DNS records
GET
/
api
/
email
/
domains
/
{id}
/
dns-records
DNS Records
curl --request GET \
--url https://app.pixie.ai/api/email/domains/{id}/dns-records \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.pixie.ai/api/email/domains/{id}/dns-records"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.pixie.ai/api/email/domains/{id}/dns-records', 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://app.pixie.ai/api/email/domains/{id}/dns-records",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.pixie.ai/api/email/domains/{id}/dns-records"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.pixie.ai/api/email/domains/{id}/dns-records")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.pixie.ai/api/email/domains/{id}/dns-records")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"domain": {
"id": "<string>",
"domain": "<string>",
"status": "<string>"
},
"cloudflare": {
"checked": true,
"zoneId": "<string>",
"zoneName": "<string>",
"error": "<string>"
},
"records": [
{
"id": "<string>",
"type": "<string>",
"name": "<string>",
"value": "<string>",
"priority": 123,
"ttl": 123,
"proxied": true
}
]
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}CLI:
pixie email domain dns-record --id <id>
Overview
Returns the live managed DNS records Pixie expects for one sending domain. The response includes the domain row, Cloudflare lookup metadata, and the DNS records to inspect. If the DNS provider cannot be reached, the endpoint still returns200 with cloudflare.checked: false and an error message so clients can explain that live DNS state was unavailable.
AI agent notes
Use this after creating or verifying a sending domain when a human needs the exact DNS records. Display recordtype, name, value, priority, and ttl exactly as returned.
Do not delete or recreate a domain just because cloudflare.checked is false; that usually means the DNS lookup failed, not that the domain configuration is invalid.Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Email domain (email_domains.id) UUID.
Minimum string length:
1Was this page helpful?