Transfer a registered domain to Cloud Domains

This page describes how to transfer in a registered domain from other registrars to Cloud Domains and how to cancel a pending transfer. When you transfer in a domain, Cloud Domains creates a new Registration resource with the existing domain name as the new resource's ID.

Limitations

  1. If your domain is already registered with Google Domains but is not yet available in Cloud Domains, the transfer process won't work for you.

  2. 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.

  3. Transferring in is not supported on the Cloud Console.

Before you begin

To complete a transfer, you need the following information.

  • Note the price and privacy modes, because you need them to complete the Transfer API call. For instructions about how to retrieve transfer parameters, see Retrieve transfer parameters.
  • If the transfer lock is enabled, visit your current registrar's site to remove the lock.
  • Visit the current registrar's site to obtain the authorization code.
  • 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.

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.

Retrieve transfer parameters

Before you transfer a domain, you can retrieve the following parameters for the domain:

  • Current registrar
  • Current name servers
  • Transfer lock state
  • Price
  • Supported privacy modes for the domain

To retrieve transfer parameters of the domain that you want to transfer, follow these steps.

gcloud

Run 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 as you need these 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.

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

  • Choose free nameservers provided by Google Domains. You cannot configure this option before the transfer, so services on your domain will stop working.

Transfer the domain

To transfer your domain registration from another registrar to Cloud Domains, follow these steps.

gcloud

Run the gcloud domains registrations transfer command:

gcloud domains registrations transfer DOMAIN_NAME

Replace the following:

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

In the 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 values:

  • AUTHORIZATION_CODE: the authorization code from your current registrar
  • NAME_SERVER_CHOICE: choose the name server option based on your DNS provider choice. For DNS provider options, see the 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": "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 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 on the available privacy options, see Contact privacy.

    Replace the following values for the registrantContact, adminContact and technicalContact:

    For detailed information on each type of contact, see the Contact information section.

  • 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, like 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

  • 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. et this value from the registrations.retrieveTransferParameters API call.

  • AUTHORIZATION_CODE: the domain's transfer authorization code. You can get this from the domain's current registrar.

Transfer status

Once you have run your transfer commands, keep in mind the following points.

  1. When the command completes, it initiates the transfer and creates a Registration resource in state TRANSFER_PENDING. It might take several days to complete the transfer and transition the resource state to ACTIVE.
  2. 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 they send you.
  3. If there is a problem with the transfer, the resource transitions to state TRANSFER_FAILED. To understand why a transfer might have failed, see the failure message for your transfer on the Google Domains registered domains page.

If you receive an error message during the transfer process, for details about the message that you received, see Error messages during domain transfer.

Cancel a pending transfer

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

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

What's next