How to hit the DNS over HTTPS (Google, Cloudflare) API

Google Public DNS and Cloudflare 1.1.1.1 both answer DNS queries over HTTPS in JSON. Status 0 means success; answers carry the record type as a number (1 = A, 15 = MX, 16 = TXT).

Authentication

None — no key, no signup. Every example runs as-is.

Full reference: https://developers.google.com/speed/public-dns/docs/doh/json

A record (Google)

curl "https://dns.google/resolve?name=example.com&type=A"
Run in PostTaco
Example response (trimmed)
{
  "Status": 0,
  "TC": false,
  "RD": true,
  "RA": true,
  "AD": true,
  "CD": false,
  "Question": [
    {
      "name": "example.com.",
      "type": 1
    }
  ],
  "Answer": [
    {
      "name": "example.com.",
      "type": 1,
      "TTL": 300,
      "data": "104.20.23.154"
    },
    {
      "name": "example.com.",
      "type": 1,
      "TTL": 300,
      "data": "172.66.147.243"
    }
  ],
  "Comment": "Response from 108.162.192.162."
}

MX records (Google)

curl "https://dns.google/resolve?name=gmail.com&type=MX"
Run in PostTaco
Example response (trimmed)
{
  "Status": 0,
  "TC": false,
  "RD": true,
  "RA": true,
  "AD": false,
  "CD": false,
  "Question": [
    {
      "name": "gmail.com.",
      "type": 15
    }
  ],
  "Answer": [
    {
      "name": "gmail.com.",
      "type": 15,
      "TTL": 532,
      "data": "30 alt3.gmail-smtp-in.l.google.com."
    },
    {
      "name": "gmail.com.",
      "type": 15,
      "TTL": 532,
      "data": "5 gmail-smtp-in.l.google.com."
    }
  ]
}

TXT records (Cloudflare)

Cloudflare needs Accept: application/dns-json.

curl "https://cloudflare-dns.com/dns-query?name=google.com&type=TXT" \
  -H "Accept: application/dns-json"
Run in PostTaco
Example response (trimmed)
{
  "Status": 0,
  "TC": false,
  "RD": true,
  "RA": true,
  "AD": false,
  "CD": false,
  "Question": [
    {
      "name": "google.com",
      "type": 16
    }
  ],
  "Answer": [
    {
      "name": "google.com",
      "type": 16,
      "TTL": 8,
      "data": "\"MS=E4A68B9AB2BB9670BCE15412F62916164C0B20BB\""
    },
    {
      "name": "google.com",
      "type": 16,
      "TTL": 8,
      "data": "\"arcules-domain-verification=2R4t5G7nI6tRCo61lpxxbLksPYstxhGmtV75cpr8x9K\""
    }
  ]
}