Communicating with Cloudflare API through command line interface
Download latest binary from github at
For Windows x64
Download latest build for Windows amd64 at this addess cloudflare-windows-amd64-{release version}.zip
Extract zip file, rename to cloudflare.exe
and copy it to \Windows\system32\cloudflare
set PATH to C:\Windows\system32\cloudflare
For Linux amd64
release_version="v0.0.x"
curl -OL "https://github.com/epiHATR/cloudflare-cli/releases/download/$release_version/cloudflare-linux-amd64-$release_version"
sudo mv cloudflare-linux-amd64-$release_version /usr/local/bin/cloudflare
sudo chmod +x /usr/local/bin/cloudflare
For MacOS arm64
release_version="v0.0.x"
curl -OL "https://github.com/epiHATR/cloudflare-cli/releases/download/$release_version/cloudflare-linux-arm64-$release_version"
sudo mv cloudflare-linux-arm64-$release_version /usr/local/bin/cloudflare
sudo chmod +x /usr/local/bin/cloudflare
command | descriptions |
---|---|
cloudflare | show cli introductions & starter command |
cloudflare version | display cli version and Cloudflare API version |
cloudflare login | login into Cloudflare API |
cloudflare zone list | list Cloudflare zone in account |
cloudflare zone show | show Cloudflare zone common information |
cloudflare zone create | create new Cloudflare zone |
cloudflare zone setting pause | pause a cloudflare zone |
cloudflare zone setting unpause | unpause a cloudflare zone |
cloudflare zone settings set-type | set Cloudflare zone type (parital, full, delegated) |
cloudflare zone plan list | list all Cloudflare plan for zone |
cloudflare zone plan show | show a Cloudflare plan details |
cloudflare zone plan upgrade | upgrade Cloudflare zone to a specified plan |
cloudflare zone delete | delete a Cloudflare zone |
cloudflare zone dns list | list DNS records on a Cloudflare zone |
cloudflare zone dns show | show a DNS records details of a Cloudflare zone |
cloudflare zone dns add | add a DNS records on a Cloudflare zone |
cloudflare zone dns update | change/update DNS records value on Cloudflare zone |
cloudflare zone dns delete | delete a DNS records on a Cloudflare zone |
show cli introductions & starter command
cloudflare [ --help | -h ]
[ --debug ]
Login into Cloudflare API using API Token (--token | -t) or Email/ApiKey (--email|-e and --key|-k)
cloudflare login [ --token | -t ]
[ --email | -e ]
[ --key | -k ]
#global flags
[ --help | -h ]
[ --debug ]
Show current CLI version and Cloudflare API version
cloudflare version [ --short | -s ]
#global flags
[ --help | -h ]
[ --debug ]
List all Cloudflare zone under account
cloudflare zone list [ --account-id ]
[ --name | -n ]
#global flags
[ --query | -q ]
[ --output |-o ]
[ --help | -h ]
[ --debug ]
List all Cloudflare zone under account
cloudflare zone show [ --id | -i]
[ --name | -n ]
#global flags
[ --query | -q ]
[ --output |-o ]
[ --help | -h ]
[ --debug ]
List all DNS records in a Cloudflare zone
cloudflare zone dns list [ --zone-id | -i]
[ --type | -t ]
#global flags
[ --query | -q ]
[ --output |-o ]
[ --help | -h ]
[ --debug ]
Show details of a Cloudflare DNS record
cloudflare zone dns show [ --id | -i ]
[ --zone-id | -i]
#global flags
[ --query | -q ]
[ --output |-o ]
[ --help | -h ]
[ --debug ]
Add a Cloudflare DNS record and return its result
See data payload format at Cloudflare API documentation - create DNS record
cloudflare zone dns add [ --zone-id | -i]
[ --data|-d ]
#global flags
[ --query | -q ]
[ --output |-o ]
[ --help | -h ]
[ --debug ]
Pause a Cloudfalre zone
cloudflare zone setting pause [ --zone-id | -i]
#global flags
[ --query | -q ]
[ --output |-o ]
[ --help | -h ]
[ --debug ]
UnPause a Cloudfalre zone
cloudflare zone setting unpause [ --zone-id | -i]
#global flags
[ --query | -q ]
[ --output |-o ]
[ --help | -h ]
[ --debug ]
Change Cloudflare zone type (full, partial)
cloudflare zone setting set-type [ --zone-id]
[ --type| -t ]
#global flags
[ --query | -q ]
[ --output |-o ]
[ --help | -h ]
[ --debug ]
List all Cloudflare zone's plan
cloudflare zone zone plan list [ --zone-id]
[ --all-available|-a ]
[ --rate-plan-only ]
#global flags
[ --query | -q ]
[ --output |-o ]
[ --help | -h ]
[ --debug ]
Show details of a zone's plan
cloudflare zone zone plan show [ --zone-id ]
[ --id | -i]
#global flags
[ --query | -q ]
[ --output |-o ]
[ --help | -h ]
[ --debug ]
Upgrade a Clouddflare zone plan
cloudflare zone zone plan upgrade [ --zone-id ]
[ --plan-id | -i]
[ --plan-name | -n]
#global flags
[ --query | -q ]
[ --output |-o ]
[ --help | -h ]
[ --debug ]
- add --output|-o flag to allow output as json, yaml
- enable --query|-q flag to allow JMESpath based queries
- enable login with email & key
Following command running on MACOS M1 which will create a release version of cloudflare-cli, targeting for: Windows exe
version="v0.0.x"
GOOS=windows GOARCH=amd64 go build -o "release/windows-amd64-$version/cloudflare.exe" cloudflare
For Linux 64 binary
GOOS=linux GOARCH=amd64 go build -o "release/linux-amd64-$version/cloudflare" cloudflare
cd release/linux-amd64-$version
tar -czvf linux-amd64-$version.tar.gz cloudflare
For MacOS binary
GOOS=darwin GOARCH=arm64 go build -o "release/darwin-arm64-$version/cloudflare" cloudflare
cd release/darwin-arm64-$version
tar -czvf darwin-arm64-$version.tar.gz cloudflare