Transfer Domain
Transfer an existing domain from another registrar to Sitequest. This endpoint creates an order, charges your saved payment method, and initiates the domain transfer. Use the Get Order Status endpoint to track progress.
Domain transfers typically take 5-7 days to complete depending on the TLD and the current registrar's transfer release process.
Request
POST /api/v1/domains/transfer
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 transfer (e.g. example.com) |
authCode |
Yes | The domain's auth code (transfer key) from the current registrar |
period |
No | Registration period in years (default: 1, max: 10) |
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 being transferred |
status |
string | completed, payment_pending, or payment_failed |
paymentId |
string | Mollie payment ID |
Status Values
| Status | Description |
|---|---|
completed |
Payment succeeded, transfer has been initiated at the registrar |
payment_pending |
Payment initiated (e.g. SEPA direct debit), awaiting confirmation |
payment_failed |
Payment was declined or failed |
Prerequisites
Before transferring a domain:
- Obtain the auth code from your current registrar
- Unlock the domain at the current registrar (disable transfer lock)
- Ensure the domain is not within 60 days of registration or a previous transfer (ICANN lock period)
- Your Sitequest account must have a valid payment method on file
Error Responses
| Status | Code | Description |
|---|---|---|
| 400 | MISSING_DOMAIN |
The domain field is required |
| 400 | INVALID_DOMAIN |
Invalid domain format |
| 400 | MISSING_AUTHCODE |
The authCode field is required for transfers |
| 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 | INSUFFICIENT_SCOPE |
API key lacks domains:provision scope |
| 409 | DUPLICATE_ORDER |
An identical order is already pending |
Example
# Transfer a domain
curl -X POST https://hosting.site.quest/api/v1/domains/transfer \
-H "Authorization: Bearer sq_live_a94ecfca096d..." \
-H "Content-Type: application/json" \
-d '{"domain": "example.com", "authCode": "Xy9!kL3mN"}'
# Transfer with 2-year renewal
curl -X POST https://hosting.site.quest/api/v1/domains/transfer \
-H "Authorization: Bearer sq_live_a94ecfca096d..." \
-H "Content-Type: application/json" \
-d '{"domain": "example.com", "authCode": "Xy9!kL3mN", "period": 2}'
MCP
This action is also available via the transfer_domain MCP tool.