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:
- Your account has completed at least one checkout via the web dashboard (to establish a payment mandate)
- You have a valid payment method on file
- 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
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"}'
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.