register_domain
Register a new domain with WHOIS contact info and Stripe billing.
The domain cost is charged to the user's active subscription. Free domain if plan includes free_domain_annual + annual billing + first domain.
Requires: API key with write scope.
Args:
domain: Full domain name (e.g. "example.ca", "mybusiness.com")
first_name: Registrant first name
last_name: Registrant last name
email: Registrant email address
phone: Phone number in E.164 format: "+1.5145551234"
address1: Street address (e.g. "123 Rue Principale")
city: City (e.g. "Montreal")
state: Province/state code (e.g. "QC", "ON", "BC")
postal_code: Postal/ZIP code (e.g. "H2X 1Y4")
country: ISO 3166-1 alpha-2 country code (default: "CA")
period: Registration period in years (1–10, default: 1)
usage_mode: What the domain points at.
"site" (default) links it to the billing subscription's
site with automatic DNS + Nginx + SSL.
"external_ns" delegates it to nameservers — the domain is
registered here but hosted elsewhere; we manage no DNS.
"dns_only" keeps it on our DNS with no site behind it.
"forward" redirects visitors to forward_url.
nameservers: Ordered list of 2–6 nameserver hostnames. Required when
usage_mode="external_ns" (e.g. ["ns1.other.com", "ns2.other.com"])
forward_url: Redirect target, required when usage_mode="forward"
(e.g. "https://example.org")
forward_type: "301" permanent (default) or "302" temporary
forward_include_path: Append the visitor's path to the target (default: True)
ca_legal_type: Required for .ca domains. CIRA legal types:
"CCO" (Canadian citizen), "RES" (permanent resident),
"CCT" (corporation), "GOV" (government), "EDU" (education),
"ASS" (association), "HOP" (hospital), "PRT" (partnership),
"TDM" (trademark), "TRD" (trade union), "PLT" (political party),
"LAM" (library/archive/museum), "MAJ" (Her Majesty),
"INB" (Indian band), "ABO" (Aboriginal peoples),
"LGR" (legal representative)
Returns: {"domain": "example.ca", "status": "registered", "expires_at": "iso8601", "message": "Domain registered successfully"}
Errors: VALIDATION_ERROR: Missing required fields, invalid phone format, missing ca_legal_type for .ca domains NOT_FOUND: Domain not available (already registered by someone else)
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| city | Yes | ||
| Yes | |||
| phone | Yes | ||
| state | Yes | ||
| domain | Yes | ||
| period | No | ||
| country | No | CA | |
| address1 | Yes | ||
| last_name | Yes | ||
| first_name | Yes | ||
| usage_mode | No | site | |
| forward_url | No | ||
| nameservers | No | ||
| postal_code | Yes | ||
| forward_type | No | 301 | |
| ca_legal_type | No | ||
| forward_include_path | No |