Queue validated DNS/NS/Cloudflare/redirect/glue operation
/api/v1/domains/{id}/operationsOperates on your account only. Send your API key in the Authorization header. Responses use JSON.
Request
Set BASE_URL to this website’s HTTPS origin and API_KEY to your private key. Replace RESOURCE_ID with the ID returned by the API.
curl --request POST "${BASE_URL}/api/v1/domains/RESOURCE_ID/operations" \
--header "Authorization: Bearer $API_KEY" \
--header "Content-Type: application/json" \
--header "Idempotency-Key: YOUR_UNIQUE_ACTION_UUID" \
--data '{"kind": "dns.sync", "payload": {}}'Headers & parameters
AuthorizationrequiredBearer YOUR_API_KEY
idpath · stringrequiredNumeric domain ID; UUID for an order, operation or request.
Idempotency-Keyheader · stringrequiredUnique action identifier. Reuse the same value and JSON on retries.
JSON body
Choose one operation. Each variant shows its own fields. Queueing does not mean the provider has applied the change.
dns.add
kindstringrequiredAction type; choose the appropriate variant below.
const: "dns.add"
payloadobjectrequiredParameters for the selected action.
payload.record_typestringrequiredDNS record type, such as A, AAAA, CNAME, TXT, MX or SRV.
payload.namestringrequired@ for the apex, * for wildcard, or a record name.
payload.contentstringrequiredRecord value matching its type.
payload.ttlintegerDNS cache lifetime in seconds; 1 means automatic.
payload.priorityintegerMX priority: lower values are preferred.
payload.proxiedbooleanProxy a compatible record through Cloudflare.
payload.commentstringRecord note; not published in DNS.
dns.update
kindstringrequiredAction type; choose the appropriate variant below.
const: "dns.update"
payloadobjectrequiredParameters for the selected action.
payload.record_idintegerrequiredRecord ID from GET /domains/{id}/dns.
payload.record_typestringrequiredDNS record type, such as A, AAAA, CNAME, TXT, MX or SRV.
payload.namestringrequired@ for the apex, * for wildcard, or a record name.
payload.contentstringrequiredRecord value matching its type.
payload.ttlintegerDNS cache lifetime in seconds; 1 means automatic.
payload.priorityintegerMX priority: lower values are preferred.
payload.proxiedbooleanProxy a compatible record through Cloudflare.
payload.commentstringRecord note; not published in DNS.
dns.delete
kindstringrequiredAction type; choose the appropriate variant below.
const: "dns.delete"
payloadobjectrequiredParameters for the selected action.
payload.record_idintegerrequiredRecord ID from GET /domains/{id}/dns.
dns.sync
kindstringrequiredAction type; choose the appropriate variant below.
const: "dns.sync"
payloadobjectrequiredParameters for the selected action.
dns.rrset
kindstringrequiredAction type; choose the appropriate variant below.
const: "dns.rrset"
payloadobjectrequiredParameters for the selected action.
payload.record_typestringrequiredDNS record type, such as A, AAAA, CNAME, TXT, MX or SRV.
payload.namestringrequired@ for the apex, * for wildcard, or a record name.
payload.valuesarrayrequiredComplete replacement values for this name and type. An empty array deletes the set.
maxItems: 50
payload.values[].contentstringrequiredRecord value matching its type.
payload.values[].ttlintegerDNS cache lifetime in seconds; 1 means automatic.
payload.values[].priorityintegerMX priority: lower values are preferred.
payload.values[].proxiedbooleanProxy a compatible record through Cloudflare.
payload.values[].commentstringRecord note; not published in DNS.
payload.expectedstringrequiredCurrent RRset signature from GET DNS. Prevents overwriting concurrent changes.
ns.set
kindstringrequiredAction type; choose the appropriate variant below.
const: "ns.set"
payloadobjectrequiredParameters for the selected action.
payload.nameserversarrayrequiredNameserver hostnames, not IP addresses.
minItems: 2 · maxItems: 20
native.configure
kindstringrequiredAction type; choose the appropriate variant below.
const: "native.configure"
payloadobjectrequiredParameters for the selected action.
cloudflare.connect
kindstringrequiredAction type; choose the appropriate variant below.
const: "cloudflare.connect"
payloadobjectrequiredParameters for the selected action.
payload.ipstringYour server’s public IPv4 address.
cloudflare.setting
kindstringrequiredAction type; choose the appropriate variant below.
const: "cloudflare.setting"
payloadobjectrequiredParameters for the selected action.
payload.settingstringrequiredSetting name from cloudflare.available_settings on the domain.
payload.valueobjectrequiredAllowed value for the selected setting from available_settings.
payload.countriesarrayGEO only: ISO 3166-1 alpha-2 country codes, e.g. ["US", "DE"]. Omit to reuse the domain’s saved list.
maxItems: 249
cloudflare.proxy
kindstringrequiredAction type; choose the appropriate variant below.
const: "cloudflare.proxy"
payloadobjectrequiredParameters for the selected action.
payload.enabledbooleanrequiredEnable or disable the selected feature.
cloudflare.purge
kindstringrequiredAction type; choose the appropriate variant below.
const: "cloudflare.purge"
payloadobjectrequiredParameters for the selected action.
glue.save
kindstringrequiredAction type; choose the appropriate variant below.
const: "glue.save"
payloadobjectrequiredParameters for the selected action.
payload.namestringrequired@ for the apex, * for wildcard, or a record name.
payload.ipstringYour server’s public IPv4 address.
payload.ip6stringYour server’s public IPv6 address.
glue.delete
kindstringrequiredAction type; choose the appropriate variant below.
const: "glue.delete"
payloadobjectrequiredParameters for the selected action.
payload.namestringrequired@ for the apex, * for wildcard, or a record name.
glue.sync
kindstringrequiredAction type; choose the appropriate variant below.
const: "glue.sync"
payloadobjectrequiredParameters for the selected action.
redirect.save
kindstringrequiredAction type; choose the appropriate variant below.
const: "redirect.save"
payloadobjectrequiredParameters for the selected action.
payload.slugstringrequiredRedirect identifier used to create or update it.
payload.targetstringrequiredDestination HTTP(S) URL.
payload.status_codeintegerHTTP status: 301/308 permanent, 302/307 temporary. 307/308 preserve the HTTP method.
payload.preserve_querybooleanPreserve query parameters in the destination URL.
payload.enabledbooleanEnable or disable the selected feature.
payload.source_patternstringSource URL pattern for the redirect.
redirect.delete
kindstringrequiredAction type; choose the appropriate variant below.
const: "redirect.delete"
payloadobjectrequiredParameters for the selected action.
payload.redirect_idintegerrequiredID from GET /domains/{id}/redirects.
Response
request_idstringrequiredIdentifier used to recover an outcome after a network failure.
idstringrequireddomain_idintegerkindstringAction type; choose the appropriate variant below.
statusstringrequiredCurrent state. An accepted job does not mean completion.
created_atstring | nullneeds_reviewbooleanrequiredAn uncertain outcome requires reconciliation, not a repeated operation.
messagestring | nullResponse structure example · illustrative values
{
"request_id": "00000000-0000-4000-8000-000000000001",
"id": "00000000-0000-4000-8000-000000000001",
"domain_id": 1,
"kind": "string",
"status": "string",
"created_at": "2026-10-02T12:00:00Z",
"needs_review": false,
"message": "string"
}Errors & statuses
error.code · error.message · request_id
401Invalid or revoked key.
404Resource not found in your account.
409Idempotency conflict or request in progress.
422Invalid parameters or business rule, including balance.
500Outcome may be uncertain. Poll the request.
503Temporarily unavailable. Respect Retry-After.