---
name: "cloudflare-ddns"
section: "1"
platform: "linux"
package: "cloudflare-ddns"
version: "2.1.0-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/cloudflare-ddns"
---

# cloudflare-ddns(1)

dynamically update a DNS record

## NAME

**cloudflare-ddns** – dynamically update a DNS record

## SYNOPSIS

**cloudflare-ddns** \[*api\_token* *record\_name*\] \[**--config** *file*\]

## DESCRIPTION

**cloudflare-ddns** is a tool that can be used to dynamically update a DNS record using Cloudflare's API.

This tool is a oneshot program: you run it, it updates the DNS record, and it terminates. To make it run periodically you could use a systemd timer or a cron job.

To run the tool you'll need an *API token:* **https://dash.cloudflare.com/profile/api-tokens**; **cloudflare-ddns** only needs the Zone.DNS edit permission.

You can run **cloudflare-ddns** in two different ways: you can pass the API Token and the record name as command line arguments, or you can use the ini configuration file located in */etc/cloudflare-ddns/config.ini* by passing no arguments at all. If you prefer, you can even use a configuration file in a custom location, using **--config** *file*.

## EXIT STATUS

The **cloudflare-ddns** utility exits 0 on success, and \>0 if an error occurs.

## EXAMPLES

```
$ cloudflare-ddns
New IP: 149.20.4.15
```

## SEE ALSO

[cron(8)](/cron/8.md) [systemd.timer(5)](/systemd.timer/5.md)

## AUTHORS

Andrea Pappacoda ⟨*andrea@pappacoda.it*⟩
