---
title: "Domain Intelligence"
method: POST
path: "/domain"
tags: ["Intelligence"]
---

# Domain Intelligence

`POST /domain`

## Request

- Base URL: `https://api.weblens.dev`
- URL: `https://api.weblens.dev/domain`
- Auth: API key in header `Payment-Signature`

Domain intelligence in one call: RDAP registration (registrar, age, expiry, status), live DNS (A/AAAA/MX/NS/TXT), the mail and DNS providers behind them, the SaaS vendors the domain's TXT verification tokens reveal, SPF/DMARC posture, and risk signals like newly-registered or no-registrar-lock. Price: $0.005.

## Request body

- object
  - `domain` string, required: Domain to inspect, e.g. "stripe.com". A full URL is accepted and reduced to its hostname.

## Response `200`

Who owns a domain, how old it is, what runs on it, and whether it looks risky — one call.

- object
  - `domain` string
  - `registration` object: RDAP registration facts. found=false when the registry has no RDAP service or did not answer.
    - `found` boolean
    - `registrar` string
    - `registeredAt` string: ISO date the domain was first registered
    - `expiresAt` string
    - `updatedAt` string
    - `status` string[]: EPP status codes, e.g. client transfer prohibited
    - `nameservers` string[]
    - `rdapServer` string: Registry RDAP base URL that answered
  - `dns` object: Live records keyed by type (A, AAAA, MX, NS, TXT)
  - `email` object: provider, hasSpf, hasDmarc, dmarcPolicy
    - `provider` string: Mail platform identified from MX, e.g. Google Workspace, Microsoft 365, Proofpoint
    - `hasSpf` boolean
    - `hasDmarc` boolean
    - `dmarcPolicy` 'none' | 'quarantine' | 'reject'
  - `hosting` object: dnsProvider
    - `dnsProvider` string: DNS operator identified from NS, e.g. AWS Route 53, Cloudflare
  - `stack` string[]: SaaS vendors inferred from TXT domain-verification tokens the organisation published
  - `signals` string[]: Risk/posture flags: newly-registered, expiring-soon, expired, no-registrar-lock, no-spf, no-dmarc, dmarc-monitor-only, no-mx, registration-unavailable
  - `ageDays` number: Days since registration
  - `expiresInDays` number: Days until expiry (negative if expired)
  - `inspectedAt` string
  - `requestId` string

## Other responses

- `400`: The body failed validation
- `402`: Payment required — x402 v2 protocol. Parse the PAYMENT-REQUIRED response header (base64-encoded JSON), sign the payment with your wallet, then retry the request with the Payment-Signature request header.

---

[API](https://skmtc.dev/weblens/apis/weblens-api.md) · [All operations](https://skmtc.dev/weblens/apis/weblens-api/llms.txt) · [OpenAPI document](https://skmtc.dev/weblens/apis/weblens-api/revisions/63a7e81b6921?raw)
