fshy

Home / Domains and DNS

DuckDNS

www.duckdns.org/spec.jspFree dynamic subdomaindomains-dns/duckdnsJSONcomparereport an errorprovider JSON

Free allowance
Subdomains under duckdns.org with a token API, IPv4, IPv6 and TXT support
Verdict
caveatusable, with a named limit or an unprobed read path
Cost
free tier
Identity
emailno card, no phone
Binding limit
per-object-capabout 5 subdomains, a third-party figure; DuckDNS publishes no number
Evidence
measured5 sources; a live request was made and its output kept
Freshness
stale on 2027-02-01checked 2026-11-02 (live); stale on 2027-02-01
Free tiersubdomains under duckdns.org with a token API, IPv4, IPv6 and TXT support
unit unlimited; metered on none
Pricenone stated
Limits
  • per-object-cap (binding) about 5 subdomains, a third-party figure; DuckDNS publishes no number source
Identityemail Google, GitHub or Reddit OAuth
Egressno query cap published
Per-object capthe number of subdomains per account is about 5, a third-party figure; DuckDNS publishes no number
Retentiona record persists until updated or cleared with clear=true, provided the account is used
Interfacerest a single HTTPS GET per update; the token is a query parameter
Toolingcurl, any DDNS client, a router's built-in DuckDNS provider
Composes witha name for a home IP or a tunnel endpoint, and nothing else: no certificate automation and no proxying
Reliabilitya bad token returns HTTP 200 with the body KO, so a status-only check reports success on a failed update
NotesA 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 notemeasured 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.
Parsed numbers
  • has-free-tier 1
Evidence 5
datesourcewhat it proved
2026-10-22probe: 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-22www.duckdns.org/spec.jspthe 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
2026-11-02www.duckdns.org/spec.jspthe update is a single HTTPS GET to DuckDNS
2026-11-02www.duckdns.org/spec.jspclear=true makes the update call clear the IPv4 and IPv6 values of the named subnames instead of setting them
2026-11-02www.duckdns.org/spec.jspthe update call is a GET to duckdns.org/update with the subnames and the account token as query parameters