API Documentation

Register Domain

Register a new domain name. This endpoint creates an order, charges your saved payment method, and initiates domain provisioning. Use the Get Order Status endpoint to track progress.

Request

POST /api/v1/domains/register

Required scope: domains:provision

Headers

Header Required Value
Authorization Yes Bearer YOUR_API_KEY
Content-Type Yes application/json

Request Body

Parameter Required Description
domain Yes Full domain name to register (e.g. example.com)
period No Registration period in years (default: 1, max: 10)
nameservers No Array of custom nameservers (max 5). If omitted, Sitequest defaults are used.
whoisPrivacy No Enable WHOIS privacy protection (true or false)

Response

{
  "data": {
    "orderId": "507f1f77bcf86cd799439011",
    "orderToken": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "domain": "example.com",
    "status": "completed",
    "paymentId": "tr_abc123"
  }
}

Response Fields

Field Type Description
orderId string Order ID for tracking
orderToken string Order token (UUID) for tracking
domain string The domain that was registered
status string completed, payment_pending, or payment_failed
paymentId string Mollie payment ID

Status Values

Status Description
completed Payment succeeded, domain is being provisioned
payment_pending Payment initiated (e.g. SEPA direct debit), awaiting confirmation
payment_failed Payment was declined or failed

Prerequisites

Before using this endpoint, ensure:

  1. Your account has completed at least one checkout via the web dashboard (to establish a payment mandate)
  2. You have a valid payment method on file
  3. Your account is not suspended

Error Responses

Status Code Description
400 MISSING_DOMAIN The domain field is required
400 INVALID_DOMAIN Invalid domain format
400 PRICING_UNAVAILABLE TLD is not offered or pricing unavailable
403 account_suspended Account is suspended
403 no_valid_mandate No valid payment method on file
403 no_billing_address Billing address is missing
403 INSUFFICIENT_SCOPE API key lacks domains:provision scope
409 DOMAIN_UNAVAILABLE Domain is not available for registration
409 DUPLICATE_ORDER An identical order is already pending
502 DOMAIN_CHECK_FAILED Could not verify domain availability

Example

# Register a domain
curl -X POST https://hosting.site.quest/api/v1/domains/register \
  -H "Authorization: Bearer sq_live_a94ecfca096d..." \
  -H "Content-Type: application/json" \
  -d '{"domain": "example.com"}'

# Register with custom nameservers and 2-year period
curl -X POST https://hosting.site.quest/api/v1/domains/register \
  -H "Authorization: Bearer sq_live_a94ecfca096d..." \
  -H "Content-Type: application/json" \
  -d '{
    "domain": "example.com",
    "period": 2,
    "nameservers": ["ns1.custom.com", "ns2.custom.com"],
    "whoisPrivacy": true
  }'

MCP

This action is also available via the register_domain MCP tool.