Get the DNS records to publish
/api/v1/domains/{domain}/dns-recordsThe records this domain needs, with their current observed state.
Sending needs SPF and DKIM; MX is only needed to receive. Mailyte tracks those
separately (dns_verified and mx_verified) precisely so a customer who sends through
us but keeps their mailboxes elsewhere is not blocked on an MX record they must not
publish.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
domainrequired | path | string | The domain id, or the domain name itself. |
Request
/api/v1/domains/{domain}/dns-recordscurl -X GET 'https://app.mailyte.com/api/v1/domains/yourdomain.com/dns-records' \
-H 'Authorization: Bearer mk_live_YOUR_API_KEY'const response = await fetch('https://app.mailyte.com/api/v1/domains/yourdomain.com/dns-records', {
method: 'GET',
headers: {
Authorization: 'Bearer mk_live_YOUR_API_KEY',
},
});
const { data } = await response.json();import requests
response = requests.get(
"https://app.mailyte.com/api/v1/domains/yourdomain.com/dns-records",
headers={"Authorization": "Bearer mk_live_YOUR_API_KEY"},
)
data = response.json()["data"]<?php
$response = Http::withToken('mk_live_YOUR_API_KEY')
->get('https://app.mailyte.com/api/v1/domains/yourdomain.com/dns-records');
$data = $response->json('data');require "net/http"
require "json"
uri = URI("https://app.mailyte.com/api/v1/domains/yourdomain.com/dns-records")
request = Net::HTTP::Get.new(uri)
request["Authorization"] = "Bearer mk_live_YOUR_API_KEY"
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(request) }Response
Success.
dataobjectobjectstringdns_recordsdomainstringThe domain these records belong to.
recordsarray<object>Every record to publish, required and optional together. Read `required_for` to tell them apart.
purposestringspf | dkim | mx | dmarc | autodiscover | autoconfig | _autodiscoverWhat the record is for. Joins to `checks` on the verification endpoint for the four that are checked. Never null: every record this endpoint builds is built with its purpose, and a record whose purpose could not be named would not be publishable advice. The set is closed -- a value outside it is a bug, not a new record type to guess at.
typestringtxt | mx | cname | srv | aThe DNS record type, lowercased. DNS is case-insensitive about these, so it can be pasted into any console as-is.
namestringThe fully qualified name to create.
valuestringThe value, verbatim. Do not reformat it.
priorityintegerMX and SRV only. Null where the type has no priority -- not 0, which is a real and highest priority.
required_forstringsending | receivingWhich capability this record unlocks. Null means optional: recommended, or a mail-client convenience, but nothing stops working without it.
descriptionstringOne line explaining what this record does, safe to show a customer. Never null -- every record is built with one. It explains the record's PURPOSE and says nothing about whether it has been published or has passed; that is `GET /domains/{domain}/verification-status`.
fetched_atstringWhen these values were last read from the mail server. They change rarely; null means they have never been fetched.
Returned inside the standard envelope.
Errors
| Status | When |
|---|---|
401 | The API key is missing, unknown, revoked or expired. All four answer identically, on purpose: distinguishing them would confirm which keys exist. |
403 | The key is valid but may not do this: it lacks the required scope, its IP allowlist does not include you, or this endpoint does not accept API keys. |
404 | No such resource in this organization. |
422 | The request was understood but the values were not acceptable. |
429 | Too many requests, or the organization has spent its sending allowance. `Retry-After` says how long to wait. |
Every status, with what causes it and what to do, is on the error reference.