# 2s.io Domain WHOIS via RDAP

> 2s.io Domain WHOIS via RDAP is a paid API for AI agents from 2s.io, paid per call via x402, $0.001/call, status unknown (last checked 2026-09-14).

Returns structured WHOIS/RDAP data for a domain including registrar info, registration/expiry dates, nameservers, statuses, and DNSSEC status

## Facts

- Endpoint: GET https://2s.io/api/domain/whois
- 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/2s-io-add6f158
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_Ees-Vv568THyvKdcrXP5o

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 2s-io-add6f158
```

Example prompt: Can you pull the WHOIS details for stripe.com — I want to know the registrar, when it was registered, when it expires, and whether it's DNSSEC signed?

## When to prefer this

Use this endpoint when you need structured, machine-readable WHOIS/RDAP data for a domain — particularly registrar details, lifecycle dates, EPP statuses, and DNSSEC info. Prefer over legacy WHOIS scrapers because RDAP returns clean JSON without parsing. Note GDPR means registrant contact data will typically be redacted. Not suitable for TLDs lacking RDAP support.

## Known failure modes

- 404 TLD_NOT_SUPPORTED — TLD does not have an RDAP endpoint (e.g. some ccTLDs)
- Domain not found / unregistered domain returns an appropriate error
- Malformed domain input (too short, too long, invalid characters) rejected by schema validation
- Upstream RDAP registry timeout or outage

## How this service works

Modern WHOIS via RDAP. Query: domain (e.g. example.com). Returns { domain, ldhName, handle, registrar:{ name, ianaId, url, abuseEmail, abusePhone }, registeredAt, expiresAt, updatedAt, statuses (camelCase ICANN EPP codes), nameservers[], dnssecSigned, rdapUrl }. GDPR: registrant personal data is generally redacted upstream and not returned. Some TLDs without RDAP are not supported and return 404 TLD_NOT_SUPPORTED.

## Output

A JSON object with: domain name, ldhName, handle, registrar object (name, ianaId, url, abuseEmail, abusePhone), registeredAt (ISO timestamp), expiresAt (ISO timestamp), updatedAt (ISO timestamp), statuses (array of camelCase ICANN EPP codes), nameservers array, dnssecSigned boolean, and rdapUrl. Note: registrant personal data is GDPR-redacted upstream and not returned.

## Example request

```json
{
 "input": {
  "type": "http",
  "method": "GET",
  "queryParams": {
   "domain": "example.com"
  }
 }
}
```

## 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",
    "queryParams"
   ],
   "properties": {
    "type": {
     "const": "http"
    },
    "method": {
     "const": "GET"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "domain"
     ],
     "properties": {
      "domain": {
       "type": "string",
       "maxLength": 253,
       "minLength": 3
      }
     },
     "additionalProperties": false
    }
   }
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/2s-io-add6f158/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from 2s.io](https://www.zero.xyz/host/2s.io/llms.txt)
