Skip to content

Instantly share code, notes, and snippets.

@slayer
Last active March 21, 2024 10:17
Show Gist options
  • Star 67 You must be signed in to star a gist
  • Fork 20 You must be signed in to fork a gist
  • Save slayer/442fa2fffed57f8409e0b23bd0673a92 to your computer and use it in GitHub Desktop.
Save slayer/442fa2fffed57f8409e0b23bd0673a92 to your computer and use it in GitHub Desktop.
Delete all DNS records for specified zone
#!/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
)
@mkostrikin
Copy link

Initial code has jq so I've used as well. But agree that extra tool could be missed at user's shell.

@pr4ns
Copy link

pr4ns commented Jan 29, 2023

do you have script to delete specific domain ?

@kylefmohr
Copy link

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 👍

@yuriybeck
Copy link

thanks a lot. it works for me

@artembokhan
Copy link

Thanks

@bjzhush
Copy link

bjzhush commented Apr 28, 2023

works perfect and thanks a lot !

@aianus
Copy link

aianus commented Jul 23, 2023

Thank you! Ridiculous that you can't add a new zone without copying all the old DNS records from the previous domain owner.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment