Domains

Transfer domain from another provider

Initiate a domain transfer-in after planDomainAdoption and explicit price confirmation. Requires the authorization/EPP code from the current provider. The existing authoritative nameservers are preserved and verified. DNS migration is never implicit. Transfer typically takes 1-5 days to complete. Payment is charged upfront via card or USDC.

post/api/domains/transfer

Request

  • Base URL: https://domani.run
  • URL: https://domani.run/api/domains/transfer
  • Auth: HTTP bearer

Request body

domainstring required

Domain to transfer, e.g. mysite.com

auth_codestring required

Authorization/EPP code from the current provider

payment_method'card' | 'usdc' | 'balance'

Payment method: 'card' (default), 'usdc', or 'balance' (marketplace credit).

payment_txstring

Transaction hash of a USDC payment already sent on-chain.

payment_chain'base' | 'ethereum'

Chain the USDC payment was sent on.

extra_subdomainsstring[]

Additional subdomains to include in the pre-transfer DNS snapshot. We auto-discover subdomains via CT logs, SPF, MX/DKIM inference, and a common wordlist - use this for any custom subdomains we might miss.

max_pricenumber

Ceiling in USD for the transfer charge. If the real price exceeds it, the request fails with 400 PRICE_ABOVE_MAX and nothing is charged. Without max_price, the ceiling is the listed transfer price: when only a dearer registrar can take it, the transfer fails the same way. The error's price field is the total to accept; confirm it with the user before retrying with that max_price.

Example request

{
  "max_price": 20
}

Response

Transfer initiated

domainstring required
status'pending' | 'active' required
expiresstring date-time required
pricenumber required
currencystring required
payment_methodstring required
payment_txstring
auto_renewboolean
hintstring required
nameservers_preservedtrue required
dns_migration'not_requested' required

Changes

No recorded changes to this operation across all 2 revisions of this API.