Update DNS Record

PUT /v1/domains/self/{uuid}/dns-records/{record_id}

Edit an existing DNS record on a managed custom domain. Same body shape as create; the platform proxies the change to your DNS provider in real time. The record_id is whatever the provider returned at creation (Cloudflare/Route53/etc use opaque string IDs — they're not integers).

Different providers have different update semantics — Cloudflare and Route53 replace the entire record; cPanel does a remove-then-recreate. The platform abstracts this away, but mid-flight failures could leave the upstream record in an inconsistent state. Re-running the same call is safe.

Path parameters

uuid string (uuid) Req
Domain UUID.
record_id string Req
Provider-assigned record ID (from the create response or list).

Request body

Same fields as createtype, name, content, ttl, priority, proxied. All required for an update (replaces the record wholesale).

Response (200 OK)

Updated record in the normalised shape.

Errors

400 Bad Request
Invalid type, missing required fields, or domain has no provider.
401 Unauthorized
Missing auth.
404 Not Found
Domain or record doesn't exist on the provider.
502 Bad Gateway
Provider call failed. Retry; idempotent for these providers.
Request
curl -X PUT "https://api.ngris.com/v1/domains/self/<uuid>/dns-records/<record_id>" \ -H "X-API-KEY: <your_api_key>" \ -H "Content-Type: application/json" \ -d '{ "type": "CNAME", "name": "api", "content": "newhost.ngris.io", "ttl": 300 }'
Python
from ngris import Ngris client = Ngris(api_key="<your_api_key>") client.domains.update_dns_record( "<domain_uuid>", "<record_id>", {"type": "CNAME", "name": "api", "content": "newhost.ngris.io", "ttl": 300}, )
Response — 200 OK
{ "id": "abc123-from-cloudflare", "type": "CNAME", "name": "api", "content": "newhost.ngris.io", "ttl": 300, "proxied": false }
On this page
Update DNS Record
Iris