Cloudflare Domain Registrar is a privacy focused no markup price domain registrar provider which can reduce your domain renewal costs significantly. However, a requirement is that you use their Cloudflare nameservers and have onboarded your domain(s) to their service first. This guide will show how you can bulk domain transfer many domains including onboarding to Cloudflare service and nameservers.
- Cloudflare Add New Sites
- Cloudflare Domain Registrar Transfer Process
- Cloudflare Domain Registrar Transfer Process Completion
- Bulk Cloudflare Domain Zone API Updates
- Cloudflare Domain Registrar Costs versus Namecheap Costs
- Namesilo.com to Cloudflare Domain Registrar Transfers Via APIs
- Cloudflare Registrar FAQ & Notes
Step 1. Cloudflare Add New Sites
For this domain registrar transfer process, I signed up a separate and new free Cloudflare plan account. You don’t need to sign up a new Cloudflare account, you can use your existing account if you want.
To meet Cloudflare Domain Registrar requirements, need to first have the intended domains being transferred running using Cloudflare’s own DNS nameservers before initiating the domain registrar transfer process. I used Cloudflare’s API to bulk add the intended domains to my newly signed up Cloudflare account’s global API key. You could of course just do manual add site process for Cloudflare account too but it would be more time consuming if you have dozens or hundreds of domains to add compared to using Cloudflare API to bulk add all domains.
To do this I’d need access to SSH terminal of a server or local computer and first export Cloudflare API key and CF_ACCOUNT_ID which is your Cloudflare Account ID which you can find on CF domain zone’s Overview right side column and user variables and install jq package. This was done on CentOS 7 server
yum -y install jq export CF_API_EMAIL=you@example.com export CF_API_KEY=abc123def456ghi789 export CF_ACCOUNT_ID=your_cloudflare_account_id
Then setup domains.txt file with one domain per line for domains you intend to setup initially for Cloudflare account
touch domains.txt
add to domains.txt file one per line, the intended domains you want to transfer to Cloudflare Domain Registrar
domain1.xyz domain2.xyz domain3.xyz domain4.xyz domain5.xyz domain6.xyz
Add domains in domain.txt to your Cloudflare account via CF API and populate JSON output into the result.txt text file
for domain in $(cat domains.txt); do \ curl -sX POST -H "X-Auth-Key: $CF_API_KEY" -H "X-Auth-Email: $CF_API_EMAIL" \ -H "Content-Type: application/json" \ "https://api.cloudflare.com/client/v4/zones" \ --data '{"name":"'$domain'","account":{"id":"'$CF_ACCOUNT_ID'"},"jump_start":true,"type":"full"}' | tee -a result.txt; done
You will be able to see pretty json output for populated result.txt file using command
cat result.txt | jq
You will be able to inspect and extract the Cloudflare DNS nameservers via the result.txt file contents. The outputted DNS nameservers are the ones you need to update with their existing domain registrars for each intended domain you want to transfer to Cloudflare Domain Registrar for this Cloudflare account. Example further below is of using Namesilo’s API to bulk update domains’ nameservers.
cat result.txt | jq -r '.result | [.name, .name_servers[]]'
Example output for the above command
cat result.txt | jq -r '.result | [.name, .name_servers[]]' [ "domain1.xyz", "arch.ns.cloudflare.com", "nelly.ns.cloudflare.com" ] [ "domain2.xyz", "arch.ns.cloudflare.com", "nelly.ns.cloudflare.com" ] [ "domain3.xyz", "arch.ns.cloudflare.com", "nelly.ns.cloudflare.com" ] [ "domain4.xyz", "arch.ns.cloudflare.com", "nelly.ns.cloudflare.com" ] [ "domain5.xyz", "arch.ns.cloudflare.com", "nelly.ns.cloudflare.com" ] [ "domain6.xyz", "arch.ns.cloudflare.com", "nelly.ns.cloudflare.com" ]
Or in comma separated values.
cat result.txt | jq -r '.result | [.name, .name_servers[]] | @csv'
Output
cat result.txt | jq -r '.result | [.name, .name_servers[]] | @csv' "domain1.xyz","arch.ns.cloudflare.com","nelly.ns.cloudflare.com" "domain2.xyz","arch.ns.cloudflare.com","nelly.ns.cloudflare.com" "domain3.xyz","arch.ns.cloudflare.com","nelly.ns.cloudflare.com" "domain4.xyz","arch.ns.cloudflare.com","nelly.ns.cloudflare.com" "domain5.xyz","arch.ns.cloudflare.com","nelly.ns.cloudflare.com" "domain6.xyz","arch.ns.cloudflare.com","nelly.ns.cloudflare.com"
You will also be able to use the result.txt info to extract the Cloudflare zoneid and domain name if for your records if you intend to further use the Cloudflare API to work with specific domains as you need the zoneid
cat result.txt | jq -r '.result | "\(.id) \(.name)"'
so something like this will be outputted
cat result.txt | jq -r '.result | "\(.id) \(.name)"' yourzoneid1 domain1.xyz yourzoneid2 domain2.xyz yourzoneid3 domain3.xyz yourzoneid4 domain4.xyz yourzoneid5 domain5.xyz yourzoneid6 domain6.xyz
Step 2. Cloudflare Domain Registrar Transfer Process
Now wait for each domain’s listing in your Cloudflare account to go from nameserver pending to Active status – you may need to wait up to 24hrs for Cloudflare to detect the DNS nameserver changes for each domain you intend to transfer over. Once updated, you will see the listed domains marked as = Active
You will see on Cloudflare Account Home page a top navigation link to the far right for = Domain Registration. This is where you initiate your domain transfer request process. The usual process for domain transfers is that you unlock your intended domains from existing domain registrar and obtain an EPP authorisation code first. You can see specific instructions for common domain registrars at Transfer Instructions – Cloudflare Registrar.
For my particular case of transferring domains from NameCheap to Cloudflare Domain Registrar, I followed instructions outlined at Namecheap – Cloudflare Registrar. For my 6x XYZ domains, cost based pricing is US$8.00 per domain with US$0.18 ICAAN fee per domain, so total cost is US$8.18×6 = US$49.08. Remember to add a payment method to be able to proceed.
Next is to confirm the domains and go to next step to enter EPP authorisation codes you obtained from your existing domain registrar.
Then after confirming the authorization codes, you will need to enter in contact information to confirm and finalize the domain transfers to Cloudflare Domain Registrar. Note you can’t leave Organization field blank as the confirm and finalize button is greyed out until that field is populated. For that I just added my first and last name.
Once you click confirm and finalize transfer you will get to the completion page
and then receive separate emails for each domain you’re transferring confirming the domain transfer request and the domain transfer initiated processes
Now to wait for the form of authorization emails to come in via your domain’s existing domain registrar contact email address for you to approve the initiated domain transfer to Cloudflare Domain Registrar.
On the Domain Registration page it will show status of transfer but confusing text is for
We’re unable to transfer the following domains
Some domains cannot be transferred to Cloudflare Registrar. If you registered, transferred, or modified the contact information on a domain in the last 60 days, we cannot transfer yet. In other cases, we do not yet support the TLD. We’re constantly working to improve that list, though. Check back soon.
When in fact we’re waiting on this form of authorization emails and clicking the approval links.
Step 3. Cloudflare Domain Registrar Transfer Process Completion
I approved all 6x form of authorization email’s approval links and already domains are starting to receive the Domain Transfer Complete emails.
Cloudflare domain overview page has a Domain Registrar status and shows the registrar, expiration date
Some transferred domains’ Overview page lists expiration date as invalid – apparently there can be delays in updating that for display. But you can check actual whois record for the domain to confirm the expiration date.
You can verify if your transferred domains’ whois info is redacted by Cloudflare via whois command in SSH terminal. If you used the Cloudflare API steps above to add domains listed in domains.txt file via curl command, you can also easily use that domains.txt file to run whois checks against whois.cloudflare.com nameservers.
cat domains.txt | while read d; do whois -h whois.cloudflare.com $d; done
This will run whois query against each domain listed in domains.txt file – example output
[Querying whois.cloudflare.com] [whois.cloudflare.com] Domain Name: DOMAIN1.XYZ Registry Domain ID: Registrar WHOIS Server: whois.cloudflare.com Registrar URL: https://www.cloudflare.com Updated Date: 2018-11-17T06:00:23Z Creation Date: 2018-11-17T03:38:44Z Registrar Abuse Contact Email: registrar-abuse@cloudflare.com Registrar Abuse Contact Phone: +1.4153197517 Registrar Registration Expiration Date: Registrar: Cloudflare, Inc. Registrar IANA ID: 1910 Registry Registrant ID: Registrant Name: DATA REDACTED Registrant Organization: DATA REDACTED Registrant Street: DATA REDACTED Registrant City: DATA REDACTED Registrant State/Province: DATA REDACTED Registrant Postal Code: DATA REDACTED Registrant Country: DATA REDACTED Registrant Phone: DATA REDACTED Registrant Phone Ext: DATA REDACTED Registrant Fax: DATA REDACTED Registrant Fax Ext: DATA REDACTED Registrant Email: DATA REDACTED Registry Admin ID: Admin Name: DATA REDACTED Admin Organization: DATA REDACTED Admin Street: DATA REDACTED Admin City: DATA REDACTED Admin State/Province: DATA REDACTED Admin Postal Code: DATA REDACTED Admin Country: DATA REDACTED Admin Phone: DATA REDACTED Admin Phone Ext: DATA REDACTED Admin Fax: DATA REDACTED Admin Fax Ext: DATA REDACTED Admin Email: DATA REDACTED Registry Tech ID: Tech Name: DATA REDACTED Tech Organization: DATA REDACTED Tech Street: DATA REDACTED Tech City: DATA REDACTED Tech State/Province: DATA REDACTED Tech Postal Code: DATA REDACTED Tech Country: DATA REDACTED Tech Phone: DATA REDACTED Tech Phone Ext: DATA REDACTED Tech Fax: DATA REDACTED Tech Fax Ext: DATA REDACTED Tech Email: DATA REDACTED Registry Billing ID: Billing Name: DATA REDACTED Billing Organization: DATA REDACTED Billing Street: DATA REDACTED Billing City: DATA REDACTED Billing State/Province: DATA REDACTED Billing Postal Code: DATA REDACTED Billing Country: DATA REDACTED Billing Phone: DATA REDACTED Billing Phone Ext: DATA REDACTED Billing Fax: DATA REDACTED Billing Fax Ext: DATA REDACTED Billing Email: DATA REDACTED URL of the ICANN WHOIS Data Problem Reporting System: http://wdprs.internic.net For more information on Whois status codes, please visit https://icann.org/epp Cloudflare provides more than 10 million domains with the tools to give their global users a faster, more secure, and more reliable internet experience. NOTICE: Data in the CloudFlare Registrar WHOIS database is provided to you by CloudFlare under the terms and conditions at https://www.cloudflare.com/domain-registration-agreement/ By submitting this query, you agree to abide by these terms. Register your domain name at https://www.cloudflare.com/registrar/
Step 4. Bulk Cloudflare Domain Zone API Updates
After you have your new domains set up in activated Cloudflare domain zones, you can now also use Cloudflare API to do bulk domain zone configuration changes that apply to all the newly added domains rather than manually updating the settings. There are various Cloudflare Zone settings you can change via API including default Cloudflare Browser Cache TTL of 8hrs to some other value and default Minimum TLS Version – changing from TLSv1.0 default to TLSv1.2 default etc. There are even undocumented Cloudflare API endpoints to enable Cloudflare Tiered Caching via bulk API updates.
Similar to step 1, you have exported your Cloudflare Global API key into your terminal/SSH session first.
export CF_API_EMAIL=you@example.com export CF_API_KEY=abc123def456ghi789
You can bulk change the default Cloudflare Browser Cache TTL value setting from default 8hrs (14400 seconds) to Respect Existing Headers origin cache control (0 seconds).
Get the default Cloudflare Browser Cache TTL value using the previous created result.txt
file’s saved output to get the domain’s Cloudflare ZoneID and domain name.
cat result.txt | jq -r '.result | "\(.id) \(.name)"' yourzoneid1 domain1.xyz yourzoneid2 domain2.xyz
Then feed that output into a while read loop and Cloudflare API endpoint to get the default Cloudflare Browser Cache TTL value.
cat result.txt | jq -r '.result | "\(.id) \(.name)"' | while read zid domain; do \ echo "$zid $domain"; echo "Get Cloudflare Browser Cache TTL value"; \ curl -s -X GET "https://api.cloudflare.com/client/v4/zones/${zid}/settings/browser_cache_ttl" \ -H "X-Auth-Email: ${CF_API_EMAIL}" -H "X-Auth-Key: ${CF_API_KEY}" \ -H "Content-Type: application/json" | jq; done
Example output showing the default 8hrs = 14400 seconds value.
cat result.txt | jq -r '.result | "\(.id) \(.name)"' | while read zid domain; do \ echo "$zid $domain"; echo "Get Cloudflare Browser Cache TTL value"; \ curl -s -X GET "https://api.cloudflare.com/client/v4/zones/${zid}/settings/browser_cache_ttl" \ -H "X-Auth-Email: ${CF_API_EMAIL}" -H "X-Auth-Key: ${CF_API_KEY}" \ -H "Content-Type: application/json" | jq; done yourzoneid1 domain1.xyz Get Cloudflare Browser Cache TTL value { "result": { "id": "browser_cache_ttl", "value": 14400, "modified_on": "2021-11-22T07:04:22.884557Z", "editable": true }, "success": true, "errors": [], "messages": [] } yourzoneid2 domain2.xyz Get Cloudflare Browser Cache TTL value { "result": { "id": "browser_cache_ttl", "value": 14400, "modified_on": "2021-11-22T07:13:37.486291Z", "editable": true }, "success": true, "errors": [], "messages": [] }
Then to make bulk changes to the default Cloudflare Browser Cache TTL value to equal 0.
cat result.txt | jq -r '.result | "\(.id) \(.name)"' | while read zid domain; do \ echo "$zid $domain"; echo "Set Cloudflare Browser Cache TTL value"; \ curl -s -X PATCH "https://api.cloudflare.com/client/v4/zones/${zid}/settings/browser_cache_ttl" \ -H "X-Auth-Email: ${CF_API_EMAIL}" -H "X-Auth-Key: ${CF_API_KEY}" \ -H "Content-Type: application/json" \ --data '{"value":0}' | jq; done
Example output for setting Cloudflare domain zone’s Browser Cache TTL to Respect Existing Headers value of 0.
cat result.txt | jq -r '.result | "\(.id) \(.name)"' | while read zid domain; do \ echo "$zid $domain"; echo "Set Cloudflare Browser Cache TTL value"; \ curl -s -X PATCH "https://api.cloudflare.com/client/v4/zones/${zid}/settings/browser_cache_ttl" \ -H "X-Auth-Email: ${CF_API_EMAIL}" -H "X-Auth-Key: ${CF_API_KEY}" \ -H "Content-Type: application/json" \ --data '{"value":0}' | jq; done yourzoneid1 domain1.xyz Set Cloudflare Browser Cache TTL value { "result": { "id": "browser_cache_ttl", "value": 0, "modified_on": "2021-11-22T07:04:22.884557Z", "editable": true }, "success": true, "errors": [], "messages": [] } yourzoneid2 domain2.xyz Set Cloudflare Browser Cache TTL value { "result": { "id": "browser_cache_ttl", "value": 0, "modified_on": "2021-11-22T07:13:37.486291Z", "editable": true }, "success": true, "errors": [], "messages": [] }
You can also do bulk updating of Cloudflare domain zone’s Minimum TLS Version value from TLSv1.0 to TLSv1.2.
First, get the current default values:
cat result.txt | jq -r '.result | "\(.id) \(.name)"' | while read zid domain; do \ echo "$zid $domain"; echo "Get Cloudflare Default Min TLS version value"; \ curl -s -X GET "https://api.cloudflare.com/client/v4/zones/${zid}/settings/min_tls_version" \ -H "X-Auth-Email: ${CF_API_EMAIL}" -H "X-Auth-Key: ${CF_API_KEY}" \ -H "Content-Type: application/json" | jq; done
Example output shows a value = 1.0 for TLSv1.0:
cat result.txt | jq -r '.result | "\(.id) \(.name)"' | while read zid domain; do \ echo "$zid $domain"; echo "Get Cloudflare Default Min TLS version value"; \ curl -s -X GET "https://api.cloudflare.com/client/v4/zones/${zid}/settings/min_tls_version" \ -H "X-Auth-Email: ${CF_API_EMAIL}" -H "X-Auth-Key: ${CF_API_KEY}" \ -H "Content-Type: application/json" | jq; done yourzoneid1 domain1.xyz Get Cloudflare Default Min TLS version value { "result": { "id": "min_tls_version", "value": "1.0", "modified_on": null, "editable": true }, "success": true, "errors": [], "messages": [] } yourzoneid2 domain2.xyz Get Cloudflare Default Min TLS version value { "result": { "id": "min_tls_version", "value": "1.0", "modified_on": null, "editable": true }, "success": true, "errors": [], "messages": [] }
Then bulk update them with a value of 1.2 for TLSv1.2:
cat result.txt | jq -r '.result | "\(.id) \(.name)"' | while read zid domain; do \ echo "$zid $domain"; echo "Set Cloudflare Default Min TLS version value = TLSv1.2"; \ curl -s -X PATCH "https://api.cloudflare.com/client/v4/zones/${zid}/settings/min_tls_version" \ -H "X-Auth-Email: ${CF_API_EMAIL}" -H "X-Auth-Key: ${CF_API_KEY}" \ -H "Content-Type: application/json" \ --data '{"value":"1.2"}' | jq; done
Example output:
cat result.txt | jq -r '.result | "\(.id) \(.name)"' | while read zid domain; do \ echo "$zid $domain"; echo "Set Cloudflare Default Min TLS version value = TLSv1.2"; \ curl -s -X PATCH "https://api.cloudflare.com/client/v4/zones/${zid}/settings/min_tls_version" \ -H "X-Auth-Email: ${CF_API_EMAIL}" -H "X-Auth-Key: ${CF_API_KEY}" \ -H "Content-Type: application/json" \ --data '{"value":"1.2"}' | jq; done yourzoneid1 domain1.xyz Set Cloudflare Default Min TLS version value = TLSv1.2 { "result": { "id": "min_tls_version", "value": "1.2", "modified_on": null, "editable": true }, "success": true, "errors": [], "messages": [] } yourzoneid2 domain2.xyz Set Cloudflare Default Min TLS version value = TLSv1.2 { "result": { "id": "min_tls_version", "value": "1.2", "modified_on": null, "editable": true }, "success": true, "errors": [], "messages": [] }
Step 5. Cloudflare Domain Registrar Costs versus Namecheap Costs
How does this pricing compared to renewal at NameCheap ? XYZ domain renewal pricing is US$12.88 + US$0.18 = US$13.06 per domain x 6 = US$78.36. So Cloudflare Domain Registrar’s XYZ domain cost pricing reduces my domain renewal costs by US$29.28 per year for those 6x XYZ domains. That’s a savings of just over 37% !
Step 5. Namesilo.com to Cloudflare Domain Registrar Transfers Via APIs
The above Cloudflare bulk domain addition via Cloudflare API prior to domain registrar transfer instructions are handy to have when you have dozens or hundreds of domains to transfer. However, you still need to bulk update on loosing domain registrar end a few settings to unlock domains, retrieve EPP codes and update Cloudflare name servers prior to being able to transfer domains to Cloudflare Domain Registrar.
Below is my latest attempt to transfer dozens of domains from Namesilo.com to Cloudflare Domain Registrar via Namesilo API end to bulk update domains to unlock domains, retrieve EPP codes, disable auto-renewal and update Cloudflare name servers prior
First this is to enable Namesilo API and whitelist your server IP you intend to run below API curl commands from so that you are able to run Namesilo API commands.
Second is retrieve and set Namesilo API key in variable in SSH command/session called nskey. This nskey variable is valid only for the SSH session. If you log out and log back in, you need to set it again by typing the below line.
nskey=your_namesilo_apikey
Install yq command to be able to prettify and parse Namesilo’s xml generated API output. The yq install also includes command xq which allows parsing xml output from API responses
pip install yq
Example to list all domains on in your Namesilo account via api would get the following API response output piped through xq command
curl -s "https://www.namesilo.com/api/listDomains?version=1&type=xml&key=$nskey" | xq . { "namesilo": { "request": { "operation": "listDomains", "ip": "xxx.xxx.xxx.xxx" }, "reply": { "code": "300", "detail": "success", "domains": { "domain": [ "domain.com", "domain.net" ] } } } }
To just list domains you can manipulate xq filter
curl -s "https://www.namesilo.com/api/listDomains?version=1&type=xml&key=$nskey" | xq -r '.namesilo.reply.domains.domain[]' domain.com domain.net
With the Namesilo API verified as working, we need to bulk unlock domains, retrieve EPP codes and update nameservers to Cloudflare bulk API derived nameservers outlined in above 1st step.
cat result.txt | jq -r '.result | [.name, .name_servers[]]'
Example output for the above command
cat result.txt | jq -r '.result | [.name, .name_servers[]]' [ "domain1.xyz", "arch.ns.cloudflare.com", "nelly.ns.cloudflare.com" ] [ "domain2.xyz", "arch.ns.cloudflare.com", "nelly.ns.cloudflare.com" ] [ "domain3.xyz", "arch.ns.cloudflare.com", "nelly.ns.cloudflare.com" ] [ "domain4.xyz", "arch.ns.cloudflare.com", "nelly.ns.cloudflare.com" ] [ "domain5.xyz", "arch.ns.cloudflare.com", "nelly.ns.cloudflare.com" ] [ "domain6.xyz", "arch.ns.cloudflare.com", "nelly.ns.cloudflare.com" ]
Or in comma separated values.
cat result.txt | jq -r '.result | [.name, .name_servers[]] | @csv'
Output
cat result.txt | jq -r '.result | [.name, .name_servers[]] | @csv' "domain1.xyz","arch.ns.cloudflare.com","nelly.ns.cloudflare.com" "domain2.xyz","arch.ns.cloudflare.com","nelly.ns.cloudflare.com" "domain3.xyz","arch.ns.cloudflare.com","nelly.ns.cloudflare.com" "domain4.xyz","arch.ns.cloudflare.com","nelly.ns.cloudflare.com" "domain5.xyz","arch.ns.cloudflare.com","nelly.ns.cloudflare.com" "domain6.xyz","arch.ns.cloudflare.com","nelly.ns.cloudflare.com"
You would of already created and populated the domains.txt file from above steps in 1st step
cd /root/tools mkdir cfdomains cd cfdomains touch domains.txt
domains.txt would contain all domains (one per line) you intend to update from Namesilo which are already added to Cloudflare account via API but not yet transferred domain registrar wise.
Now to domain unlock https://www.namesilo.com/api_reference.php#domainUnlock
for domain in $(cat domains.txt); do curl -s "https://www.namesilo.com/api/domainUnlock?version=1&type=xml&key=$nskey&domain=$domain" | tee -a unlock-result.txt; done
domain disable autorenewal https://www.namesilo.com/api_reference.php#removeAutoRenewal
for domain in $(cat domains.txt); do curl -s "https://www.namesilo.com/api/removeAutoRenewal?version=1&type=xml&key=$nskey&domain=$domain" | tee -a noautorenewal-result.txt; done
change nameservers https://www.namesilo.com/api_reference.php#changeNameServers
set nsone and nstwo variables to the Cloudflare namservers needed to activate/add your domains to Cloudflare account. If for some reason, not all domains have the same assigned Cloudflare nameservers, you can split the domains.txt into groupings of similar Cloudflare nameservers and just do the commands separately for each group.
nsone=arch.ns.cloudflare.com nstwo=nelly.ns.cloudflare.com
for domain in $(cat domains.txt); do curl -s "https://www.namesilo.com/api/changeNameServers?version=1&type=xml&key=$nskey&domain=$domain&ns1=$nsone&ns2=$nstwo" | tee -a nameserver-update-result.txt; done
retrieve EPP codes https://www.namesilo.com/api_reference.php#retrieveAuthCode which will be sent to domain’s admin email contact
for domain in $(cat domains.txt); do curl -s "https://www.namesilo.com/api/retrieveAuthCode?version=1&type=xml&key=$nskey&domain=$domain" | tee -a epp-result.txt; done
After this, you will receive lots of Namesilo emails especially if you have Domain Defender Alerts enabled. Some of the emails will be confirmation of actions for unlocking domains, retrieving EPP codes, disabling auto-renewal and updating nameservers in bulk via Namesilo API.
At this stage after you have done Cloudflare bulk API add from 1st step in this guide along with Namesilo API bulk changes outlined, you should have Cloudflare dashboard listing all your newly added domains as active in Cloudflare account. You will be then ready to do the domain registrar transfers from Namesilo to Cloudflare. Very handy if you have dozens, hundreds or thousands of domains you need to add to Cloudflare account + transfer from Namesilo to Cloudflare Domain Registrar.
The list of bulk domains added to my Cloudflare account from Namesilo prior to Cloudflare domain registrar transfer which I will be doing soon as domains up for renewal soon. Total cost saved from transferring the most recent above set of domains from Namesilo to Cloudflare Domain Registrar is US$31.80/yr !
Cloudflare Registrar FAQ & Notes
- Cloudflare Registrar FAQ
- Cloudflare Registrar Supported Domain TLDs
- Cloudflare Registrar Transfer Costs. You can also preview all the supported Cloudflare domain TLDs costs at https://github.com/judge2020/Actual-Domain-Prices.
- Cloudflare Registrar does not currently support email forwarding. If you require email forwarding from your registrar, you will need to use a third-party forwarding service and configure your MX record in the Cloudflare DNS setting for the domain.
- In future if you need to transfer your domains away from Cloudflare in bulk, check out my guide on doing bulk domain transfers out of Cloudflare via Cloudflare Registrar API.