# Set Domain WHOIS Contacts

> Set Domain WHOIS Contacts is a free API for AI agents from domains.rapidruntime.com, callable via MPP, Free, status unknown (last checked 2026-09-14).

Replace all four WHOIS contacts (registrant, admin, tech, billing) for a domain — full replacement only, no partial updates.

## Facts

- Endpoint: POST https://domains.rapidruntime.com/api/v1/domains/{domain}/contacts
- Price: Free
- Payment: MPP
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Provider: domains.rapidruntime.com
- Website: https://domains.rapidruntime.com
- Canonical page: https://www.zero.xyz/c/domains-rapidruntime-com-set-domain-whois-contacts-a8de62ce
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_1DytKNVxE-5TiTMrmD3pf

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 domains-rapidruntime-com-set-domain-whois-contacts-a8de62ce -d '<json body>'
```

Example prompt: Update all the WHOIS contacts for example.com — set the registrant, admin, tech, and billing contact to Jane Smith, 123 Main St, Austin, TX 78701, US, jane@example.com, +1.5125550100, company Acme Corp.

## When to prefer this

Use this endpoint when you need to update any WHOIS contact information for a registered domain. Since it requires all four contacts simultaneously, it is best suited for full contact record refreshes (e.g., company rebrand, new owner, address change). Not suitable for partial/single-contact updates as the API does not support them.

## Known failure modes

- Missing one or more of the four required contact objects returns a validation error — all four (registrant, admin, tech, billing) must be provided
- Missing required contact fields (e.g. firstName, lastName, address1, city, state, zip, country, email, phone) causes a 400 error
- Invalid domain name in path returns 404
- Domain not owned by authenticated user returns 403
- Malformed email or phone format may cause a validation error
- Domain is locked and cannot be modified

## How this service works

Replace all four WHOIS contacts (registrant, admin, tech, billing). All must be provided — partial updates are not supported.

## Output

Returns the full updated domain record including the newly set registrant, admin, tech, and billing contact objects, along with domain lock status, autorenew setting, expiry date, and creation date.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "contacts"
 ],
 "properties": {
  "contacts": {
   "type": "object",
   "required": [
    "registrant",
    "admin",
    "tech",
    "billing"
   ],
   "properties": {
    "tech": {
     "type": "object",
     "required": [
      "firstName",
      "lastName",
      "address1",
      "city",
      "state",
      "zip",
      "country",
      "email",
      "phone"
     ],
     "properties": {
      "fax": {
       "type": "string"
      },
      "zip": {
       "type": "string"
      },
      "city": {
       "type": "string"
      },
      "email": {
       "type": "string"
      },
      "phone": {
       "type": "string"
      },
      "state": {
       "type": "string"
      },
      "country": {
       "type": "string"
      },
      "address1": {
       "type": "string"
      },
      "address2": {
       "type": "string"
      },
      "lastName": {
       "type": "string"
      },
      "firstName": {
       "type": "string"
      },
      "companyName": {
       "type": "string"
      }
     }
    },
    "admin": {
     "type": "object",
     "required": [
      "firstName",
      "lastName",
      "address1",
      "city",
      "state",
      "zip",
      "country",
      "email",
      "phone"
     ],
     "properties": {
      "fax": {
       "type": "string"
      },
      "zip": {
       "type": "string"
      },
      "city": {
       "type": "string"
      },
      "email": {
       "type": "string"
      },
      "phone": {
       "type": "string"
      },
      "state": {
       "type": "string"
      },
      "country": {
       "type": "string"
      },
      "address1": {
       "type": "string"
      },
      "address2": {
       "type": "string"
      },
      "lastName": {
       "type": "string"
      },
      "firstName": {
       "type": "string"
      },
      "companyName": {
       "type": "string"
      }
     }
    },
    "billing": {
     "type": "object",
     "required": [
      "firstName",
      "lastName",
      "address1",
      "city",
      "state",
      "zip",
      "country",
      "email",
      "phone"
     ],
     "properties": {
      "fax": {
       "type": "string"
      },
      "zip": {
       "type": "string"
      },
      "city": {
       "type": "string"
      },
      "email": {
       "type": "string"
      },
      "phone": {
       "type": "string"
      },
      "state": {
       "type": "string"
      },
      "country": {
       "type": "string"
      },
 
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "domainName",
  "locked",
  "autorenewEnabled",
  "expireDate",
  "createDate"
 ],
 "properties": {
  "locks": {
   "type": "array",
   "items": {
    "type": "string"
   }
  },
  "locked": {
   "type": "boolean"
  },
  "contacts": {
   "type": "object",
   "required": [
    "registrant",
    "admin",
    "tech",
    "billing"
   ],
   "properties": {
    "tech": {
     "type": "object",
     "required": [
      "firstName",
      "lastName",
      "address1",
      "city",
      "state",
      "zip",
      "country",
      "email",
      "phone"
     ],
     "properties": {
      "fax": {
       "type": "string"
      },
      "zip": {
       "type": "string"
      },
      "city": {
       "type": "string"
      },
      "email": {
       "type": "string"
      },
      "phone": {
       "type": "string"
      },
      "state": {
       "type": "string"
      },
      "country": {
       "type": "string"
      },
      "address1": {
       "type": "string"
      },
      "address2": {
       "type": "string"
      },
      "lastName": {
       "type": "string"
      },
      "firstName": {
       "type": "string"
      },
      "companyName": {
       "type": "string"
      }
     }
    },
    "admin": {
     "type": "object",
     "required": [
      "firstName",
      "lastName",
      "address1",
      "city",
      "state",
      "zip",
      "country",
      "email",
      "phone"
     ],
     "properties": {
      "fax": {
       "type": "string"
      },
      "zip": {
       "type": "string"
      },
      "city": {
       "type": "string"
      },
      "email": {
       "type": "string"
      },
      "phone": {
       "type": "string"
      },
      "state": {
       "type": "string"
      },
      "country": {
       "type": "string"
      },
      "address1": {
       "type": "string"
      },
      "address2": {
       "type": "string"
      },
      "lastName": {
       "type": "string"
      },
      "firstName": {
       "type": "string"
      },
      "companyName": {
       "type": "string"
      }
     }
    },
    "billing": {
     "type": "object",
     "required": [
      "firstName",
      "lastName",
      "address1",
      "city",
      "state",
      "zip",
      "country",
      "email",
      "phone"
     ],
     "properties": {
      "fax": {
       "type": "string"
      },
      "zip": {
       "type": "string"
      },
      "city": {
       "type": "string"
      },
      "email": {

… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/domains-rapidruntime-com-set-domain-whois-contacts-a8de62ce/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from domains.rapidruntime.com](https://www.zero.xyz/host/domains.rapidruntime.com/llms.txt)
