| .gitignore | ||
| apicalls.py | ||
| app.py | ||
| config_sample.json | ||
| LICENSE | ||
| Pipfile | ||
| Pipfile.lock | ||
| README.md | ||
cloudflare-delete-all-dns-records
Delete all the DNS records in a domain in Cloudflare.
This program will delete all the DNS records in a given domain. Before deletion, it'll also take a backup of the existing DNS records and save it as a .txt file in BIND format.
Prerequisites
-
Pip
sudo apt install python3-pip
-
pip install requests
-
CloudFlare API key
You need a CloudFlare API key with access to edit zone DNS access for the domain:
- Go to your Cloudflare profile and then API Tokens
- Click on Create Token
- You can use the template Edit Zone DNS
- Enter the of the domain(s) you want to delete DNS from in Zone Resources
- Click Continue to summary and the Create Token
- You should get an API Token now.
Running the program
-
Download and extract the zip file or Clone this repository:
git clone https://git.pavakpaul.com/pavak/cloudflare-delete-all-dns-records.git
-
cd to the directory:
cd cloudflare-delete-all-dns-records
-
Run app.py using python3 and follow the instructions
python3 app.py
Using a config file to pass the API credentials
If you want to delete all the DNS records from multiple domains, it is a good idea to use a single token for mutiple domains. In that case, you can use save your credentials in config.json. Simply rename config_sample.json to config.json: mv config_sample.json config.json and save your configuration there. To load the config file, simply pass the argument loadconfig:
python3 app.py loadconfig
You still can't delete DNS from multiple domains to reduce accidental removals of DNS. To be safe, it's always a good idea to just create a token for a single domain.