Web - DNS

Free Temporary DNS Name API Endpoint

The free Temporary DNS Name API endpoint puts a public hostname on an address you already control, for 24 hours. Send the address last in the path and the answer is a name on 53for24h.com that resolves through public resolvers and then expires on its own.

  • No API key
  • One GET request
  • 53for24h.com
  • 24-hour names

Create a DNS name

GET/dns/{ip}

https://aisenseapi.com/services/v1/dns/

Call the free Temporary DNS Name API endpoint

Put the address the name should point at straight after /dns/. It has to be a public unicast address, IPv4 or IPv6, and it is never taken from the caller, because the machine asking is usually not the machine the name should reach.

curl "https://aisenseapi.com/services/v1/dns/203.0.113.10"
{
  "ok": true,
  "name": "aisense-t1mpdqk.53for24h.com",
  "slug": "t1mpdqk",
  "ip": "203.0.113.10",
  "record": "A",
  "ttl": 60,
  "nameservers": ["ns1.aisenseapi.com", "ns2.aisenseapi.com"],
  "expire_at": "2026-09-24T18:42:17Z",
  "dns_token": "shown once",
  "serial": 9
}

The name is assigned, never chosen. Keep the dns_token: it is shown once and is the only way to move or remove the name before it expires.

The four calls

Every call is a GET with its arguments in the path. A seven character slug names an existing record; an address creates a new one. The two can never be confused, because a slug has no dots or colons.

CallTokenDoes
GET /dns/{ip}NoneCreates a name pointing at the address. 201 with the name and the token
GET /dns/{slug}NoneReads what the name points at and when it expires
GET /dns/{slug}/update/{ip}BearerMoves the name to another address. The expiry does not move
GET /dns/{slug}/deleteBearerRemoves the name; the primary at once, the secondary as replication reaches it

The token goes in an Authorization: Bearer header, never in the path, so it stays out of access logs. Only the holder of the token can move or delete a name. Reading is open, because everything a read returns is already public in DNS.

Response fields

FieldTypeDescription
namestringThe full hostname, aisense-<slug>.53for24h.com.
slugstringThe seven character handle used to read, move or delete the name.
ipstringThe address the name resolves to.
recordstringA for IPv4, AAAA for IPv6.
ttlintegerAlways 60. The served value never exceeds the time the name has left.
nameserversarrayThe two name servers that answer for the zone.
expire_atstringThe ISO 8601 instant the name stops answering, 24 hours after creation.
dns_tokenstringShown once on creation. The only key to move or delete the name.

The name dies after 24 hours

Every name stops answering 24 hours after it was created, and nothing extends that. Never print one on a poster, a slide or a badge. The TTL menu has one item, 60 seconds, because a short-lived name with a long TTL is a name that keeps answering after it is gone.

The countdown starts when the API answers. A name is for the length of a task, not for publishing. When the work is done, GET /dns/{slug}/delete with the token removes it early; otherwise it clears itself. A resolver that already holds the answer keeps it for the rest of its TTL, at most 60 seconds.

How the zone answers

  1. Send the address

    The endpoint assigns aisense-<slug>.53for24h.com and writes it to both name servers.

  2. It resolves everywhere

    The zone is delegated at the registry, so public resolvers answer the name within a second, not just our own servers.

  3. It expires

    Twenty-four hours later the name is gone from both servers, whether or not anyone deletes it.

The zone is served by ns1.aisenseapi.com and ns2.aisenseapi.com, on separate machines at separate sites. A create or a delete is applied to the primary at once and reaches the secondary by replication. A secondary that is briefly disconnected may keep answering an old name until it reconnects or the name expires. An unknown name in the zone answers NXDOMAIN; a name outside the zone answers REFUSED, which is what an authoritative server should say.

What the endpoint rejects

Failures arrive as JSON with an error string. Check the status code rather than the text.

StatusWhen
400The address is not a public unicast address: private, loopback, link-local, multicast or malformed
401An update or delete without a valid bearer token
403A token that does not match the name
404An unknown or expired name, or a route that is neither an address nor a slug
429More than 10 names from one address in an hour, or a change less than 10 seconds after the last
503The zone is briefly unavailable. Retry

A name, and nothing else

A name is a DNS record only: no tunnel, no hosting, no certificate and no HTTPS. The zone is not on the Public Suffix List, so every name shares one certificate quota and browsers treat them as one site. Do not put a login behind one.

Use it where a name, not a service, is what is missing: a webhook target someone has to type, a staging box whose address moves, a service two agents must reach by the same name. The address it points at is yours to run and to secure.

When a temporary name fits

Webhook targets

Hand a callback a name to type while the address behind it is still moving.

Staging and demos

Reach a box by name for a day without touching a registrar.

Agents that share a target

Let two agents reach the same machine by one name for the length of a job.

Short-lived tests

Point a name at a test host, run the test, and let the name expire.

Privacy and limits

Names are public. They are in DNS, anyone watching can enumerate them, and nothing private belongs in one. The zone is public and can be watched.

The pilot allows 10 names per client address per hour, one change per name per 10 seconds, and 100 active names in total. Responses set no-store cache headers. The service-wide ceiling is 5000 requests per IP per 24 hours across every endpoint.