API Documentation

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:

  1. Obtain the auth code from your current registrar
  2. Unlock the domain at the current registrar (disable transfer lock)
  3. Ensure the domain is not within 60 days of registration or a previous transfer (ICANN lock period)
  4. 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.