Transfer a registered domain from another registrar

This page describes how to transfer a registered domain from a third-party domain registrar to Cloud Domains and how to cancel a pending transfer. When you transfer a domain from another registrar, Cloud Domains creates a new Registration resource by using the existing domain name as the new resource's ID.

Limitations

  • Currently, Cloud Domains does not support the transfer of the following domains, although these are supported by the registration flow:

    • .co.nz
    • .co.uk
    • .jp
    • .uk

    For a list of domains supported by Cloud Domains, see the Pricing table.

  • Transferring a domain from other registrars is not supported on the Google Cloud console.

  • Transferring a domain from other registrars is not supported for premium domains.

Before you begin

To complete a transfer, you need to do the following:

  • Retrieve transfer parameters:

    • Price and privacy modes. The price and supported privacy modes for the domain, which you need to complete the Transfer API call.
    • Transfer lock state. If the transfer lock is enabled, visit your current registrar's site to remove the lock.
    • Authorization code. Visit your current registrar's site to obtain the authorization code.
    • Current registrar and name servers
  • Provide DNS settings. Consider whether you want to change your DNS settings at the time of domain transfer. If your current name servers correspond to the DNS service provided by your current registrar, you must change your DNS settings.

Retrieve transfer parameters

To retrieve the parameters of the domain that you want to transfer, complete the following steps.

gcloud

Use the gcloud domains registrations get-transfer-parameters command:

gcloud domains registrations get-transfer-parameters DOMAIN_NAME

Replace DOMAIN_NAME with the name of the registered domain—for example, example.app.

API

Use the registrations.retrieveTransferParameters method with an empty body:

GET https://domains.googleapis.com/v1/projects/PROJECT_ID/locations/global/registrations:retrieveTransferParameters?domain_name=DOMAIN_NAME

Replace the following:

  • PROJECT_ID: the name of your project
  • DOMAIN_NAME: the name of the domain that you want to transfer

Save the output from the RetrieveTransferParameters call because you need this information to complete the transfer.

Provide your DNS settings

You can provide your DNS settings in one of the following ways:

  • Choose to keep the domain's DNS settings from its current registrar (recommended). This option ensures that services on your domain are not interrupted during the transfer.

    If your domain currently uses a free DNS service provided by the current registrar, it might not be safe to keep the domain's existing DNS settings because the free DNS service might cease following the transfer. In these cases, we recommend switching to a third-party DNS service such as Cloud DNS before the transfer. Configure your new DNS service to match the current DNS settings, and then change the domain's name servers at the current registrar. Wait a day to make sure that your domain continues to work as you expect. Afterwards, you can safely begin the transfer process, opting to keep the domain's current DNS settings during the transfer.

  • Specify the name of a Cloud DNS ManagedZone resource. To avoid interruption to services on your domain during the transfer, make sure that the zone is configured correctly before proceeding.

  • Choose free name servers provided by Google Domains. You cannot configure this option before the transfer. During the transfer, if you have any existing services on your domain, they will stop working until the Google Domains name servers are configured.

Transfer the domain

When you transfer a domain, for most TLDs, the domain's current expiration date is extended by a year following the transfer, and you are billed for one year of renewal at the price returned by RetrieveTransferParameters. No registration time is lost.

Domain transfers can take up to 7 days to complete. To complete the transfer, you might have to approve the transfer through an email sent by your current registrar. Follow the instructions provided in the email.

When transferring a domain that is owned by a company, the registrant must provide the company's contact details, such as the email address and phone number. If the registrant provides their personal contact details, the company might lose access to the domain when the registrant leaves.

To transfer your domain registration from another registrar to Cloud Domains, complete the following steps.

gcloud

Use the gcloud domains registrations transfer command:

gcloud domains registrations transfer DOMAIN_NAME

Replace DOMAIN_NAME with the name of the registered domain that you want to transfer—for example, example.app.

In interactive mode, your output is similar to the following:

Please provide the authorization code from the domain's current registrar to transfer the domain.
Authorization Code: AUTHORIZATION_CODE
Yearly price: 12.00 USD
Do you agree to pay this yearly price for your domain (y/N)?  y
You can specify a Cloud DNS Managed Zone name. To avoid downtime following
transfer, make sure the zone is configured correctly before proceeding.
You can select free name servers provided by Google Domains. This
blank-slate option cannot be configured before transfer.
You can also choose to keep the domain's DNS settings from its current registrar.
    [1] Provide Cloud DNS Managed Zone name
    [2] Use free name servers provided by Google Domains
    [3] Keep current DNS settings from current registrar
Please enter your numeric choice (3):  NAME_SERVER_CHOICE
Cloud DNS Managed Zone name:  CLOUD_DNS_ZONE
Contact data not provided using the --contact-data-from-file flag.
Do you want to enter it interactively (Y/n)?  y
Full name:  NAME
Organization (if applicable):  ORGANIZATION
Email:  EMAIL_ADDRESS
Enter phone number with country code, e.g. "+1.8005550123".
Phone number:  PHONE_NUMBER
Enter fax number with country code, e.g. "+1.8005550123".
Fax number (if applicable):  FAX_NUMBER
Enter two-letter Country / Region code, e.g. "US" or "PL".
Refer to the guidelines for entering address field information at https://support.google.com/business/answer/6397478.
Country / Region code:  COUNTRY_CODE
Postal / ZIP code:  ZIP_CODE
State / Administrative area (if applicable):  STATE
City / Locality:  CITY
Address Line 1:  ADDRESS_LINE_1
Address Line 2 (if applicable):  ADDRESS_LINE_2
Address Line 3 (if applicable):
Specify contact privacy
  [1] private-contact-data
  [2] public-contact-data
Please enter your numeric choice (1):  DATA_PRIVACY_CHOICE
Waiting for 'operation-1597880129306-5ad437580410d-2c65d582-0861c5b7' to
complete...done.
Created registration [example.com] Note:
The domain transfer has been initiated, but is not yet complete. The
registrant may need to follow instructions in a transfer confirmation email
sent by the current registrar in order for the transfer to proceed. Even
after confirmation, transfers can sometimes take several days to complete.
The transfer will be complete when the registration resource changes state
to ACTIVE.

Replace the following:

  • AUTHORIZATION_CODE: the authorization code from your current registrar
  • NAME_SERVER_CHOICE: the name server option that you choose based on your DNS provider choice

    For DNS provider options, see Provide your DNS settings.

  • CLOUD_DNS_ZONE: the Cloud DNS managed zone name

  • NAME: your full name—for example, Alice Smith

  • ORGANIZATION: (optional) your organization—for example, Doe Corp

  • EMAIL_ADDRESS: your email address for verification—for example alice@example.net

  • PHONE_NUMBER: the phone number of the contact in international format—for example, +1-800-555-0123

  • FAX_NUMBER: (optional) the fax number of the contact in international format—for example, +1-800-555-0123

  • COUNTRY_CODE: the country or region code of the address—for example, US for United States

  • ZIP_CODE: the postal code or ZIP code of the address—for example, 94043

  • STATE: the state or administrative area of the address—for example, CA

  • CITY: the city or locality of the address—for example, Mountain View

  • ADDRESS_LINE_1: the first address line of the registrant—for example, 1599 Bayview Parkway

    You can have up to three address lines, but only the first one is required.

  • ADDRESS_LINE_2: (optional) the second address line of the registrant—for example, APT. 123

  • DATA_PRIVACY_CHOICE: your data privacy choice

    For detailed information about privacy options, see Privacy protection.

API

Use the registrations.transfer method:

POST https://domains.googleapis.com/v1/projects/PROJECT_ID/locations/global/registrations:transfer
{
     "registration": {
       "domainName": "DOMAIN_NAME",
       "dnsSettings": {
         "customDns": {
           "nameServers": [
             "NAME_SERVERS"
           ]
         }
       },
       "contactSettings": {
         "privacy": "CONTACT_PRIVACY",
         "registrantContact": {
           "postalAddress": {
             "regionCode": "REGION_CODE",
             "postalCode": "POSTAL_CODE",
             "administrativeArea": "SUBDIVISION",
             "locality": "CITY",
             "addressLines": [
               "ADDRESS"
             ],
             "recipients": [
               "CONTACT_NAME"
             ],
             "organization": "ORGANIZATION"
           },
           "email": "EMAIL_ADDRESS",
           "phoneNumber": "PHONE_NUMBER",
           "faxNumber": "FAX_NUMBER"
         },
         "adminContact": {
           "postalAddress": {
             "regionCode": "REGION_CODE",
             "postalCode": "POSTAL_CODE",
             "administrativeArea": "SUBDIVISION",
             "locality": "CITY",
             "addressLines": [
               "ADDRESS"
             ],
             "recipients": [
               "CONTACT_NAME"
             ],
             "organization": "ORGANIZATION"
           },
           "email": "EMAIL_ADDRESS",
           "phoneNumber": "PHONE_NUMBER",
           "faxNumber": "FAX_NUMBER"
         },
         "technicalContact": {
           "postalAddress": {
             "regionCode": "REGION_CODE",
             "postalCode": "POSTAL_CODE",
             "administrativeArea": "SUBDIVISION",
             "locality": "CITY",
             "addressLines": [
               "ADDRESS"
             ],
             "recipients": [
               "CONTACT_NAME"
             ],
             "organization": "ORGANIZATION"
           },
           "email": "EMAIL_ADDRESS",
           "phoneNumber": "PHONE_NUMBER",
           "faxNumber": "FAX_NUMBER"
         }
       }
     },
     "yearlyPrice": {
       "currencyCode": "CURRENCY_CODE",
       "units": NUMBER_OF_UNITS
     },
     "authorizationCode": {
        "code": AUTHORIZATION_CODE
     }
   }

Replace the following:

  • PROJECT_ID: the ID of the project where you created the registration resource
  • DOMAIN_NAME: the domain name that you want to transfer—for example, example.com
  • NAME_SERVERS: the name servers that you want to use

    If you are using Cloud DNS, use the nameServers field output that you got from the managedZones.create or the managedZones.get API call.

  • CONTACT_PRIVACY: the preferred privacy setting for the contact data

    For detailed information about the available privacy options, see Contact privacy.

Replace the following values for registrantContact, adminContact, and technicalContact. For detailed information about each type of contact, see Contact information.

  • REGION_CODE: the region code of the address—for example, US for United States
  • POSTAL_CODE: the postal code of the address—for example, 94043
  • SUBDIVISION: the highest administrative subdivision of an address, such as a state, a province, an oblast, or a prefecture—for example, CA for the state of California
  • CITY: the name of the city or town of the address—for example, Mountain View
  • ADDRESS: the lower levels of an address—for example, 1599 Amphitheater Parkway
  • CONTACT_NAME: the name of the contact
  • ORGANIZATION: (optional) the name of the organization that is registering the domain—for example, Doe Corporation
  • EMAIL_ADDRESS: the email address of the contact—for example, john@example.com
  • PHONE_NUMBER: the phone number of the contact in international format—for example, +1-800-555-0123
  • FAX_NUMBER: (optional) the fax number of the contact in international format—for example, +1-800-555-0123

Replace the following pricing values:

  • CURRENCY_CODE: the three-letter currency code as defined in ISO 4217—for example, USD

    Get this value from the registrations.retrieveTransferParameters API call.

  • NUMBER_OF_UNITS: the whole units of the amount—for example, if currencyCode is USD, then one unit is one US dollar

    Get this value from the registrations.retrieveTransferParameters API call.

  • AUTHORIZATION_CODE: the domain's transfer authorization code

    Get this value from the domain's current registrar.

View transfer status

After you run your transfer commands, keep in mind the following:

  • When the command completes, it initiates the transfer and creates a Registration resource in the TRANSFER_PENDING state. It might take several days to complete the transfer and transition the resource state to ACTIVE.

  • You can sometimes speed up the process by explicitly approving the transfer on your old registrar's website or by following the instructions in an email that they send you.

  • If there is a problem with the transfer, the resource transitions to the TRANSFER_FAILED state. For details about why your transfer might have failed, view the error details on the domain. Refer to Error messages during domain transfer and then try the transfer again.

Cancel a pending transfer

If you have a pending transfer request for your domain, you have a Registration resource for it in the TRANSFER_PENDING state. At this stage, you can cancel the transfer either from the old registrar side or from Cloud Domains.

To use Cloud Domains to cancel your transfer, delete the Registration resource for your domain while the state is TRANSFER_PENDING.

In some cases, fully canceling the transfer process might take up to several minutes after you delete the resource. Until the transfer is fully cancelled, attempts to retry the transfer might fail.

What's next