Skip to main content
Developer Domains1.0.0-beta.1

Replace custom domain nameservers

Replaces the complete custom delegation for an active registrar-linked domain in the token’s Space. Use two to ten distinct lowercase hostnames. Supply public glue only for nameservers within the domain being delegated. Disable DNSSEC before changing delegation. Select managed Dashio nameserver sets in the Portal. A successful result confirms the registrar accepted the set and Dashio saved it.

PUT/api/v1/domains/{domain}/nameservers

Workspace automation for approved Dashio products. Each token is scoped to one Space and independently granted operations. Requests spend shared minute credits, and selected operation groups also share hourly quotas.

Required token scope is domains:nameservers:write. Scopes are independent.

This operation uses 8 credits from a shared budget of 60 credits per token and 300 per Space each UTC minute. The provider group shares 40 requests per token and 100 per Space each UTC hour.

Run these examples on a trusted server with DASHIO_API_TOKEN configured. Use a private terminal when inspecting response data. Examples send one request with a bounded timeout and do not retry automatically.

Set DASHIO_IDEMPOTENCY_KEY to the persisted key for this logical write. Reuse it only for an identical retry.

Authentication

Dashio developer token (HTTP Bearer) API authentication guide

Path parameters

domainstringRequired

Registered domain in lowercase ASCII or punycode. Minimum length: 3. Maximum length: 253.

Query parameters

None documented.

Header parameters

Idempotency-KeystringRequired

Unique key for this exact request. Use the same key and body when retrying. Minimum length: 16. Maximum length: 128. Pattern: ^[A-Za-z0-9_-]{16,128}$.

Request body

application/json · Required

The complete custom nameserver set. The JSON request is limited to 8,192 bytes.

nameserversarray of objectRequired

Minimum items: 2. Maximum items: 10.

Responses

Headers on every response

X-Request-Idstring (uuid)Optional

Server-generated ID to include in a support request.

200

Confirmed delegation, or the previous result of an identical request.

Response headers

RateLimit-LimitintegerOptional

Per-token capacity in the reported gateway window, expressed in requests of this operation. A shared Space budget also applies. Present when the request reaches the authenticated gateway. Minimum: 1.

RateLimit-RemainingintegerOptional

Requests of this operation remaining under the current token, Space and applicable operation-group quotas. Present when the request reaches the authenticated gateway. Minimum: 0.

RateLimit-ResetintegerOptional

Unix timestamp in seconds when the reported gateway quota resets. Present when the request reaches the authenticated gateway. Minimum: 0.

X-Mutation-Request-Idstring (uuid)Optional

Original mutation identifier for support.

Idempotency-ReplayedstringOptional

True when returning an existing result. Required value: "true".

application/json

nameserversarray of objectRequired

Minimum items: 2. Maximum items: 10.

400

Invalid domain, nameserver set, JSON, idempotency key, or query parameters.

application/json

statusCodeintegerRequired

Minimum: 400. Maximum: 599.

statusMessagestringOptional

A safe explanation suitable for display.

dataobjectRequired

No field description supplied.

401

A valid developer token is required.

Response headers

WWW-AuthenticatestringOptional

Bearer authentication challenge. A rejected token can include the invalid_token error.

application/json

Uses the same response body schema as HTTP 400.

403

The token lacks domains:nameservers:write, the issuer’s access changed, or the domain is restricted.

application/json

Uses the same response body schema as HTTP 400.

404

The domain is unavailable in the token’s Space.

application/json

Uses the same response body schema as HTTP 400.

408

The request body timed out.

application/json

Uses the same response body schema as HTTP 400.

409

DNSSEC is enabled or unconfirmed, another domain change is in progress, or the key conflicts or expired.

application/json

Uses the same response body schema as HTTP 400.

413

The JSON body exceeds the request limit.

application/json

Uses the same response body schema as HTTP 400.

415

Use application/json.

application/json

Uses the same response body schema as HTTP 400.

422

An active registrar-linked domain is required.

application/json

Uses the same response body schema as HTTP 400.

429

The token or Space request budget is exhausted. Edge traffic limits can also return 429.

Response headers

RateLimit-LimitintegerOptional

Per-token capacity in the reported gateway window, expressed in requests of this operation. A shared Space budget also applies. Present when the request reaches the authenticated gateway. Minimum: 1.

RateLimit-RemainingintegerOptional

Requests of this operation remaining under the current token, Space and applicable operation-group quotas. Present when the request reaches the authenticated gateway. Minimum: 0.

RateLimit-ResetintegerOptional

Unix timestamp in seconds when the reported gateway quota resets. Present when the request reaches the authenticated gateway. Minimum: 0.

Retry-AfterintegerOptional

Seconds to wait before retrying, when the limiting policy supplies a retry time. Minimum: 1.

application/json

Uses the same response body schema as HTTP 400.

502

The change may have reached the registrar. Contact support using X-Mutation-Request-Id before trying a new change.

Response headers

X-Mutation-Request-Idstring (uuid)Optional

Original mutation identifier for support.

application/json

Uses the same response body schema as HTTP 400.

503

Registrar or domain settings are temporarily unavailable.

application/json

Uses the same response body schema as HTTP 400.

Was this helpful?