Register Domain

Registering a New Domain: Submits a registration request for a new domain name. This performs a transactional deduction from the USD wallet and immediately interfaces with the registrar (Dynadot). If the upstream registration fails, the deduction is kept but the internal state stays pending. For standard domains, the standard length-based flat rate is computed internaly. For premium domains, registration is strictly limited to 1 year and renewals are processed at the regular TLD standard price. For premium domains, you must explicitly pass the is_premium flag and the exact initial premium_price obtained from the search API endpoint.

Endpoint: POST /register

Parameters:

  • domain (required, string): Full domain name to register (e.g., example.com)
  • period (optional, integer, min 1, max 6): Registration period in years. Must be 1 for premium domains. Defaults to 1.
  • is_premium (optional, boolean): Set to true if registering a premium domain.
  • premium_price (optional, numeric): The exact initial registration price from the search response. Required if is_premium is true. Note: Values less than 0 will be rejected with an `HTTP 500` Invalid pricing error.

Example Request (Standard Domain):

curl -X POST "https://umva.net/api/domain/register" 
  -H "X-API-Key: your_api_key_here" 
  -H "Content-Type: application/json" 
  -d '{"domain": "example.com", "period": 1}'

Example Request (Premium Domain):

curl -X POST "https://umva.net/api/domain/register" 
  -H "X-API-Key: your_api_key_here" 
  -H "Content-Type: application/json" 
  -d '{"domain": "premium.com", "is_premium": true, "premium_price": 1050.00}'

Success Response Example (Active - HTTP 200):

{
  "success": true,
  "message": "Domain registered successfully!",
  "data": {
    "domain_id": 123,
    "domain": "example.com",
    "period": "1 year(s)",
    "amount_charged": 10.99,
    "expiry_date": "2024-10-12",
    "status": "active"
  }
}

Success Response Example (Pending manual review - HTTP 200):

{
  "success": true,
  "message": "Domain registered and awaiting activation. Will be activated within 24 hours.",
  "data": {
    "domain_id": 123,
    "domain": "example.com",
    "amount_charged": 10.99,
    "status": "pending"
  }
}

Error Response Example (Insufficient Balance - HTTP 400):

{
  "success": false,
  "message": "Insufficient USD balance. Required: $10.99, Available: $5.00"
}