Domainee Docs
DNS Checks

Check records exist

POST /v1/dns/check-records-exist — DNS lookup with "any match" semantics.

POST /v1/dns/check-records-exist

For each record entry, returns match: true if at least one of the values returned by DNS matches match_against. Use this when you want to confirm the customer published the right record without rejecting them for also having other records alongside it.

If you need the stricter "no other records" semantics, see Check records match exactly.

Request

curl -X POST https://api.domainee.dev/v1/dns/check-records-exist \
  -H "Authorization: Bearer $DOMAINEE_API_KEY" \
  -H "content-type: application/json" \
  -d '{
    "records": [
      {
        "address": "shop.acme.com",
        "type": "cname",
        "match_against": "edge.domainee.dev"
      }
    ]
  }'

Body parameters

FieldNotes
records[]Up to 50 entries per request.
records[].addressThe hostname to look up.
records[].typeOne of: a, aaaa, cname, mx, txt, ns, caa.
records[].match_againstThe expected value. Comparison is case-insensitive; trailing dots stripped.

Response — 200 OK

{
  "records": [
    {
      "address": "shop.acme.com",
      "type": "cname",
      "match_against": "edge.domainee.dev",
      "match": true,
      "actual_values": ["edge.domainee.dev"]
    }
  ]
}

Supported record types

typeLooks upNotes
aA recordsIPv4
aaaaAAAA recordsIPv6
cnameCNAMEDoesn't follow the chain — returns the immediate CNAME target
mxMX recordsFormat: "<priority> <exchange>"
txtTXT recordsEach TXT chunk is concatenated into a single string per record
nsNS records
caaCAA recordsFormat: "issue <ca>" / "issuewild <ca>" / "iodef <url>"

Rate limit

600/hour per workspace. See Rate limits.

Batch as many checks as you can into a single call (up to 50) to stay within the limit.

On this page