subdy docs
API reference

DNS records

List, set (upsert) and delete records on a subdomain.

$SUBDOMAIN_ID is the id from create or list. Record name is relative to the subdomain: @ (apex), www, *, _acme-challenge…

List records

curl -sS "https://api.subdy.io/v1/subdomains/$SUBDOMAIN_ID/records" \
  -H "Authorization: Bearer $SUBDY_TOKEN"
200 OK
{
  "records": [
    {
      "id": "c1a4e9d8-…",
      "subdomainId": "7f6b1a02-…",
      "type": "A",
      "name": "@",
      "value": "203.0.113.10",
      "ttl": 300,
      "createdAt": "2026-08-08T12:00:01.000Z",
      "updatedAt": "2026-08-08T12:00:01.000Z"
    }
  ]
}

Set a record (upsert)

PUT replaces the record with the same name + type — updating an IP is the same call as creating the record. A CNAME can't coexist with other types at the same name (409 cname_conflict).

curl -sS -X PUT "https://api.subdy.io/v1/subdomains/$SUBDOMAIN_ID/records" \
  -H "Authorization: Bearer $SUBDY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"type":"TXT","name":"@","value":"hello from docs","ttl":300}'
201 Created
{
  "id": "e7b02c11-…",
  "subdomainId": "7f6b1a02-…",
  "type": "TXT",
  "name": "@",
  "value": "hello from docs",
  "ttl": 300,
  "createdAt": "2026-08-08T12:03:00.000Z",
  "updatedAt": "2026-08-08T12:03:00.000Z"
}

The id of the record — $RECORD_ID below.

Delete a record

curl -sS -X DELETE "https://api.subdy.io/v1/subdomains/$SUBDOMAIN_ID/records/$RECORD_ID" \
  -H "Authorization: Bearer $SUBDY_TOKEN"
200 OK
{ "deleted": true }