API Reference

DNS Checker

Query and validate DNS records for any domain

Look up and validate DNS records for any domain in seconds. Whether you are verifying MX records for email delivery, checking SPF and DKIM for authentication, or debugging propagation after a DNS change, the DNS Checker API returns A, AAAA, MX, TXT, CNAME, NS, and SOA records with full detail.

multi-record typeDNSSEC validationpropagation checkbulk lookup

Endpoint

POST /v1/dns/check
Authentication: Include your API key in the X-API-Key header with every request. All requests go through the API gateway which handles authentication, rate limiting, and usage tracking.
Open Swagger UI (interactive docs)

Request

{
  "domain": "example.com",
  "recordTypes": [
    "A",
    "MX",
    "TXT"
  ]
}

Request Fields

FieldTypeDescription
domain string Domain name extracted from the email
recordTypes array DNS record types to query (A, MX, TXT, CNAME, NS, SOA, AAAA)

Response

{
  "domain": "example.com",
  "records": {
    "A": [
      "93.184.216.34"
    ],
    "MX": [
      "mail.example.com"
    ],
    "TXT": [
      "v=spf1 include:_spf.example.com ~all"
    ]
  },
  "resolvedAt": "2026-03-25T14:30:00Z"
}

Response Fields

FieldTypeDescription
domain string Domain name extracted from the email
records object Nested object with properties
resolvedAt string Field value

Error Codes

StatusMeaning
200Request completed successfully
400Bad request — invalid or missing parameters
401Missing or invalid X-API-Key header
429Rate limit exceeded — check Retry-After header
500Internal server error

Common Error Scenarios

400 Invalid domain

Request that triggers this:

{"domain": "invalid..domain", "recordTypes": ["A"]}

Error response:

{"type": "/problems/validation-error", "title": "Invalid Domain", "status": 400, "detail": "'invalid..domain' is not a valid domain name"}

How to fix: Provide a valid domain name (e.g., example.com). Avoid special characters and consecutive dots.

503 DNS timeout

Request that triggers this:

{"domain": "example.com", "recordTypes": ["A", "MX", "TXT"]}

Error response:

{"type": "/problems/service-unavailable", "title": "DNS Timeout", "status": 503, "detail": "DNS query timed out after 10 seconds"}

How to fix: Retry the request. The domain may be unreachable. Check that the domain exists and nameservers are responding.

Code Examples

curl -X POST /v1/dns/check \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{
  "domain": "example.com",
  "recordTypes": [
    "A",
    "MX",
    "TXT"
  ]
}' 
// Node.js (18+) or modern browser
const response = await fetch("/v1/dns/check", {
  method: "POST",
  headers: {
    "X-API-Key": "YOUR_API_KEY",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "domain": "example.com",
    "recordTypes": [
        "A",
        "MX",
        "TXT"
    ]
}),
});

const data = await response.json();
console.log(response.status, data);
import requests

response = requests.post(
    "/v1/dns/check",
    headers={
        "X-API-Key": "YOUR_API_KEY",
        "Content-Type": "application/json",
    },
    json={
    "domain": "example.com",
    "recordTypes": [
        "A",
        "MX",
        "TXT"
    ]
},
)

print(response.status_code)
print(response.json())
package main

import (
	"fmt"
	"io"
	"net/http"
	"strings"
)

func main() {
	body := strings.NewReader(`{
  "domain": "example.com",
  "recordTypes": [
    "A",
    "MX",
    "TXT"
  ]
}`)
	req, _ := http.NewRequest("POST", "/v1/dns/check", body)
	req.Header.Set("X-API-Key", "YOUR_API_KEY")
	req.Header.Set("Content-Type", "application/json")

	resp, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer resp.Body.Close()

	data, _ := io.ReadAll(resp.Body)
	fmt.Println(resp.StatusCode)
	fmt.Println(string(data))
}
{
  "name": "dns_checker",
  "description": "Query and validate DNS records for any domain",
  "inputSchema": {
    "type": "object",
    "properties": {
      "api_key": {"type": "string", "description": "Your Orovai API key"},
      "request": {"type": "object", "description": "Request body"}
    },
    "required": ["api_key", "request"]
  },
  "endpoint": "/v1/dns/check",
  "method": "POST",
  "headers": {
    "X-API-Key": "{{api_key}}",
    "Content-Type": "application/json"
  }
}

API Reference