● Free · IPv4 & IPv6 · since 2017

Stable names for every IoT device.

dns-me gives each of your devices a name like smart-me_12345678.dns-me.com that always points to its current public or local IP – made for device makers, secure by default and free.

# device reports its address (or let us use the caller IP)
$ curl -X POST https://api.dns-me.com/v2/devices/sensor-42/update \
    -H "Authorization: Bearer $SECRET" \
    -d '{"ipv4":"192.168.1.42","ipv6":"auto"}'
{"fqdn":"sensor-42.dns-me.com","ipv4":"192.168.1.42","changed":true}

# reach it by name – from anywhere in the LAN
$ ping sensor-42.dns-me.com
PING sensor-42.dns-me.com (192.168.1.42): 56 data bytes
64 bytes from 192.168.1.42: icmp_seq=0 ttl=64 time=2.1 ms

Everything a connected device needs

Built for fleets of meters, chargers, gateways and sensors – not just a single home router.

⧉

Device groups

Zero provisioning: one master key per product line. Each device derives its own password, names are created on first update.

⌂

Public or LAN address

Publish the public IP or the local address of a device – IPv4 and IPv6, with a short 60 s TTL.

🔒

HTTPS for devices

ACME DNS-01 endpoint: devices can get real Let's Encrypt certificates for their name – even inside a LAN.

⇄

Works with routers

dyndns2 compatible /nic/update – use it with FRITZ!Box, ddclient, inadyn, OpenWrt or ESPHome.

⛨

Secure by default

HTTPS, hashed secrets, brute-force protection, response rate limiting, no open resolver, no tracking.

⚡

Fast & redundant

Own authoritative name servers with instant NOTIFY/AXFR replication. Answers come straight from memory.

How it works

Three steps from unboxing to a reachable device.

Create an account

Sign up for free and create single devices or a device group with a name prefix.

Update the IP

The device (or your cloud) calls the API whenever its address changes.

Use the name

Every device is reachable as <name>.dns-me.com – worldwide, within a minute.

Simple API

Pick what fits your firmware. Full reference in the API docs.

# use the caller's IP
curl -X POST -H "Authorization: Bearer $SECRET" https://api.dns-me.com/v2/devices/sensor-42/update

# or set explicit addresses (null removes a record, omitted = unchanged)
curl -X POST -H "Authorization: Bearer $SECRET" -H "Content-Type: application/json" \
     -d '{"ipv4":"192.168.1.42","ipv6":null}' https://api.dns-me.com/v2/devices/sensor-42/update

Trusted by