Transfers

Create Internal Transfer In

Pulls a domain from another name.com account into your reseller (gaining) account using a valid authorization code. This is an internal name.com-to-name.com move; it is separate from Create Transfer, which brings domains in from external registrars. Check if a TLD is eligible for internal transfer in by calling Tld Requirements for the TLD and checking property supportsInternalTransfer. This API is only available to approved reseller accounts. Contact name.com support to request access.

Losing account (dashboard only)

The party that holds the domain today must use the name.com dashboard on the losing account to unlock the domain (remove registrar transfer lock) and to copy the authorization code to provide to your integration. This endpoint does not unlock the domain or retrieve the auth code for the losing account.

Gaining account (this API)

Call this endpoint with domainName, authCode, and optional contacts using the gaining reseller's API credentials.

Contacts and post-transfer lock

If contacts is omitted, the gaining account's default contacts are applied. If contacts is provided, any roles included in the request are applied and omitted roles use the gaining account's default contacts (same pattern as Create Domain and Set Contacts). The 60-day contact-change transfer lock is enforced based on the gaining account's settings, consistent with Set Contacts.

Access

Restricted to approved enterprise resellers; other callers receive 403 Forbidden.

post/core/v1/transfers/internal/in

Request body

domainNamestring required

Fully qualified domain name to transfer in. The domain must be registered in another name.com account (the losing account).

authCodestring required

Transfer authorization code (EPP/auth code) for the domain. The losing account holder must obtain this code from the name.com dashboard; it is not exposed by this API for the losing account.

contactsContactsRequest — unresolved $ref

Response

The domain was accepted into the gaining account. The response body matches the domain resource representation used elsewhere in the API (same shape as Get Domain / Set Contacts).

domainNamestring required

The punycode-encoded value of the domain name.

createDatestring date-time required

The date and time when the domain was created at the registry.

expireDatestring date-time required

The date and time when the domain will expire.

autorenewEnabledboolean required

Indicates whether the domain is set to renew automatically before expiration.

lockedboolean required

Indicates if the domain is transfer locked, preventing transfers to another registrar.

locksstring[]

List of all registry locking statuses currently applied to the domain. Use this to see which locks are active (e.g. clientTransferProhibited, clientHold). Empty when the domain has no locks applied.

transferLockExpiresAtstring date-time

When present, the domain has an active ICANN-mandated transfer lock (new registration, transfer-in, or material registrant contact change) that blocks client unlock via the API until this time. When omitted, there is no active policy transfer lock with a known expiry — the domain may still be locked (locked: true) due to a voluntary user lock. Does not represent RegistrarLock, AccountLock, verification holds, trademark-claim locks, or admin TransferLock with no expiry date.

privacyEnabledboolean required

Indicates if Whois Privacy is enabled for this domain.

nameserversstring[] required

The list of nameservers assigned to this domain. If unspecified, it defaults to the account's default nameservers.

renewalPricenumber double

The cost to renew the domain. This may be required for the RenewDomain operation.

Example response

{
  "domainName": "example.com",
  "createDate": "2023-01-15T14:30:00Z",
  "expireDate": "2025-01-15T14:30:00Z",
  "autorenewEnabled": true,
  "locked": true,
  "locks": [
    "clientTransferProhibited",
    "clientHold"
  ],
  "transferLockExpiresAt": "2023-03-16T14:30:00Z",
  "privacyEnabled": true,
  "contacts": {
    "admin": {
      "firstName": "John",
      "lastName": "Doe",
      "companyName": "Example Inc.",
      "address1": "123 Main Street",
      "address2": "Suite 400",
      "city": "New York",
      "state": "NY",
      "zip": "10001",
      "country": "US",
      "email": "john.doe@example.com",
      "phone": "+15551234567",
      "fax": "+15557654321",
      "isVerified": true,
      "verificationId": 12345
    },
    "billing": {
      "firstName": "John",
      "lastName": "Doe",
      "companyName": "Example Inc.",
      "address1": "123 Main Street",
      "address2": "Suite 400",
      "city": "New York",
      "state": "NY",
      "zip": "10001",
      "country": "US",
      "email": "john.doe@example.com",
      "phone": "+15551234567",
      "fax": "+15557654321",
      "isVerified": true,
      "verificationId": 12345
    },
    "registrant": {
      "firstName": "John",
      "lastName": "Doe",
      "companyName": "Example Inc.",
      "address1": "123 Main Street",
      "address2": "Suite 400",
      "city": "New York",
      "state": "NY",
      "zip": "10001",
      "country": "US",
      "email": "john.doe@example.com",
      "phone": "+15551234567",
      "fax": "+15557654321",
      "isVerified": true,
      "verificationId": 12345
    },
    "tech": {
      "firstName": "John",
      "lastName": "Doe",
      "companyName": "Example Inc.",
      "address1": "123 Main Street",
      "address2": "Suite 400",
      "city": "New York",
      "state": "NY",
      "zip": "10001",
      "country": "US",
      "email": "john.doe@example.com",
      "phone": "+15551234567",
      "fax": "+15557654321",
      "isVerified": true,
      "verificationId": 12345
    }
  },
  "nameservers": [
    "ns1.example.com",
    "ns2.example.com"
  ],
  "renewalPrice": 12.99
}

Changes