Last active
September 19, 2024 10:48
-
-
Save slayer/442fa2fffed57f8409e0b23bd0673a92 to your computer and use it in GitHub Desktop.
Delete all DNS records for specified zone
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
TOKEN="xxxxxxxxxxxxxxxxxxx" | |
ZONE_ID=2222222222222222222222222 | |
# EMAIL=me@gmail.com | |
# KEY=11111111111111111111111111 | |
# Replace with | |
# -H "X-Auth-Email: ${EMAIL}" \ | |
# -H "X-Auth-Key: ${KEY}" \ | |
# for old API keys | |
curl -s -X GET https://api.cloudflare.com/client/v4/zones/${ZONE_ID}/dns_records?per_page=500 \ | |
-H "Authorization: Bearer ${TOKEN}" \ | |
-H "Content-Type: application/json" | jq .result[].id | tr -d '"' | ( | |
while read id; do | |
curl -s -X DELETE https://api.cloudflare.com/client/v4/zones/${ZONE_ID}/dns_records/${id} \ | |
-H "Authorization: Bearer ${TOKEN}" \ | |
-H "Content-Type: application/json" | |
done | |
) | |
Initial code has jq
so I've used as well. But agree that extra tool could be missed at user's shell.
do you have script to delete specific domain ?
@pr4ns sure, I wrote this for you based on the Cloudflare REST API docs here
#!/bin/bash
# permission needed: #zone:edit
TOKEN="xxxxxxxxxxxxxxxxxxx"
ZONE_ID=2222222222222222222222222
# EMAIL=me@gmail.com
# KEY=11111111111111111111111111
# Replace with
# -H "X-Auth-Email: ${EMAIL}" \
# -H "X-Auth-Key: ${KEY}" \
# for old API keys
curl -X DELETE "https://api.cloudflare.com/client/v4/zones/${ZONE_ID}" \
-H "Authorization: Bearer ${TOKEN}" \
-H "Content-Type: application/json"
Tested and working 👍
thanks a lot. it works for me
Thanks
works perfect and thanks a lot !
Thank you! Ridiculous that you can't add a new zone without copying all the old DNS records from the previous domain owner.
Thanks,
The code works like a charm on wsl ubuntu
It took 3min to remove 600+ dns records
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Worked a treat; thanks. But note that almost nobody will have 'jq' installed, or have even heard of it. On Deb/Ubuntu, 'apt install jq'.