DuckDNS
duckdns.org · Domains and DNS · 1 record · JSON
DuckDNS Domains and DNS
caveatemailno cardMper-object-cap
| Free tier | subdomains under duckdns.org with a token API, IPv4, IPv6 and TXT support unit unlimited; metered on none |
|---|---|
| Price | none stated |
| Per-object cap | the number of subdomains per account is about 5, a third-party figure; DuckDNS publishes no number |
| Retention | a record persists until updated or cleared with clear=true, provided the account is used |
| Egress | no query cap published |
| Identity | email Google, GitHub or Reddit OAuth |
| Limits |
|
| Binding | per-object-cap |
| Interface | rest a single HTTPS GET per update; the token is a query parameter |
| Tooling | curl, any DDNS client, a router's built-in DuckDNS provider |
| Composes with | a name for a home IP or a tunnel endpoint, and nothing else: no certificate automation and no proxying |
| Reliability | a bad token returns HTTP 200 with the body KO, so a status-only check reports success on a failed update |
| Notes | A DuckDNS name cannot be a Cloudflare zone, so it cannot carry a Tunnel, Email Routing or Universal SSL. It is a dynamic-DNS tool, not a name a service can live on. |
| Evidence rung | measured the update endpoint was called today with an empty token and answered 200 KO, which proves both the endpoint and the failure shape. The subdomain cap is third-party. |
| Checked | 2026-10-23 (live); stale on 2027-01-21 |
Evidence (2)
| date | source | what it proved |
|---|---|---|
| 2026-10-22 | probe:https://www.duckdns.org/update?domains=example&token=&ip= | 200 with a two-byte body 'KO'. A 200 is not success; the rejection is in the body |
| 2026-10-22 | www.duckdns.org/spec.jsp | the update URL, IPv4 and IPv6 parameters, the TXT form, and clear=true to delete records; a TXT record applies to all sub-subdomains under the name |