Register a new domain with WHOIS contact info and Stripe billing.
First request a quote (quote_only=True), present registration_cad,
privacy_cad, total_cad, term and privacy choice, and obtain customer consent.
Then repeat the same input with quote_only=False and the quote_token.
Never automatically accept a replacement token after a price change.
Included annual registration covers registration only; selected privacy
uses the same BoC daily USD/CAD rate, rounded to CAD cents, no markup.
Registration/renewal convert their actual operation-specific USD cost first,
then apply 10% and round up to CAD .95. Rates older than four days refuse.
Requires: API key with write scope.
Args:
whois_privacy: Explicit privacy choice; defaults selected only for supported paid TLDs.
quote_only: True returns a quote without registration or payment.
quote_token: Signed five-minute quote accepted by the customer.
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:
"CCT" (Canadian citizen), "RES" (permanent resident),
"CCO" (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:
Quote request: {"quote": {"registration_cad": "...",
"privacy_cad": "...", "total_cad": "...", "currency": "CAD",
"period": 1, "whois_privacy": false, "expires_at": "iso8601"},
"quote_token": "...", "privacy_explanation": "..."}
Purchase: {"name": "example.ca", "status": "registered",
"last_pricing_quote": {...}, ...}
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)