# Penniless Data Utilities – DNS Lookup

> Penniless Data Utilities – DNS Lookup is a paid API for AI agents from penniless-json-repair.sjaman.workers.dev, paid per call via x402, $0.001/call, status unknown (last checked 2026-09-14).

Performs a DNS record lookup for a given domain, returning structured answers for any record type (A, MX, TXT, etc.) via DNS over HTTPS.

## Facts

- Endpoint: POST https://penniless-json-repair.sjaman.workers.dev/dns/lookup
- Price: $0.001/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/penniless-data-utilities-dns-lookup-d3f6ff34
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_asP_Mig3WTQBeKKq-_j_Q

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability penniless-data-utilities-dns-lookup-d3f6ff34 -d '<json body>'
```

Example prompt: Look up the MX records for gmail.com and tell me which mail servers handle its email.

## When to prefer this

Choose this endpoint when you need a lightweight, pay-per-query DNS lookup without managing resolver infrastructure. Ideal for agents that occasionally need DNS data without a standing DNS subscription, especially when already using x402 micropayment infrastructure. Prefer over general WHOIS or RDAP endpoints when you specifically need live DNS record data (A, MX, TXT, CNAME, etc.) rather than registrar/ownership information.

## Known failure modes

- Domain does not exist — returns NXDOMAIN status with empty answers array
- Requested record type not found — returns NOERROR with empty answers
- Invalid domain format — may return error or empty result
- Payment failure via x402 — 402 response before DNS query is attempted
- Upstream DNS resolver timeout — request may fail or return partial results

## How this service works

Deterministic, dependency-free data utilities served over x402 micropayments (USDC on Base). None of these call another AI model.
Keyword: JSON repair
Keyword: malformed JSON
Keyword: broken JSON from LLM
Keyword: fix JSON output
Keyword: JSON sanitizer
Keyword: truncated JSON recovery
Keyword: YAML to JSON
Keyword: convert YAML
Keyword: parse YAML config
Keyword: cron next run
Keyword: cron parser
Keyword: when does cron run next
Keyword: unified diff
Keyword: line diff
Keyword: text diff
Keyword: HTML to text
Keyword: extract links
Keyword: extract emails
Keyword: scrape text
Keyword: whois lookup
Keyword: domain registration
Keyword: registrar
Keyword: domain expiry date
Keyword: RDAP
Keyword: dns lookup
Keyword: MX records
Keyword: TXT records
Keyword: A record
Keyword: DNS over HTTPS
Keyword: github repo stats
Keyword: github stars
Keyword: repository popularity
Keyword: OSS project metadata
Keyword: email validation
Keyword: verify email address
Keyword: check MX deliverability
Keyword: email syntax
Use case: repair a JSON code block wrapped in Markdown fences
Use case: turn a docker-compose or CI YAML file into JSON
Use case: compute the next UTC fire time of a cron expression
Use case: produce a unified diff between two versions of a file
Use case: strip HTML tags and pull out links, emails, and headings
Use case: look up a domain's registrar, status and expiry before purchase
Use case: check when a domain registration lapses
Use case: resolve A, AAAA, MX, TXT or NS records for a hostname
Use case: find a domain's mail servers and SPF TXT record
Use case: compare GitHub repository stars, forks and activity for market research
Use case: check whether an email address is well-formed and its domain accepts mail

## Output

Returns a JSON object with ok (boolean), the queried domain, record type, DNS status (e.g. NOERROR, NXDOMAIN), and an array of answers each containing name, type, TTL, and data fields.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method",
    "bodyType",
    "body"
   ],
   "properties": {
    "body": {
     "type": "object",
     "required": [
      "domain"
     ],
     "properties": {
      "type": {
       "enum": [
        "A",
        "AAAA",
        "CNAME",
        "MX",
        "TXT",
        "NS",
        "SOA",
        "PTR",
        "SRV",
        "CAA"
       ],
       "type": "string",
       "description": "Record type (default A)"
      },
      "domain": {
       "type": "string",
       "description": "Hostname to resolve"
      }
     },
     "additionalProperties": false
    },
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "POST"
     ],
     "type": "string"
    },
    "bodyType": {
     "enum": [
      "json",
      "form-data",
      "text"
     ],
     "type": "string"
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "ok": true,
  "type": "MX",
  "domain": "example.com",
  "status": "NOERROR",
  "answers": [
   {
    "ttl": 180,
    "data": "0 .",
    "name": "example.com",
    "type": "MX"
   }
  ]
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/penniless-data-utilities-dns-lookup-d3f6ff34/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from penniless-json-repair.sjaman.workers.dev](https://www.zero.xyz/host/penniless-json-repair.sjaman.workers.dev/llms.txt)
