Access & visibility
Allow domains.SetDnsRecord on your API key.
Workspace access by default. Private member data requires approved member delegation through Brigg-Act-As; the key supplies permissions while private ownership and project boundaries remain enforced.
Request fields
Send a JSON object with the following fields. Required fields must be included; omit optional fields you do not need.
idstringRequiredUse the hosted domain's id; record_types and ttl_options in that listing provide supported DNS settings. domains.ListHostedDomains.
At least 1 character. At most 80 characters.
namestringRequiredRecord name relative to the domain: '@' for the domain itself, 'www', 'mail', '_dmarc', 'selector._domainkey'.
At most 253 characters.
typestringRequiredOne of A, AAAA, CNAME, MX, TXT. The apex NS/SOA are Brigg's own and refused reserved.
At most 8 characters.
ttlintegerOptionalSeconds, 60–604800. Default 3600.
Default: 3600.
valuesarray of stringRequiredALL values for this name+type — a set is replaced whole. MX values are '<priority> <host>' ('10 mail.example.com'); TXT values are the bare text (no quotes).
At least 1 item. At most 50 items.
Change a hosted DNS record set
Select the domain's id from List hosted domains. The domain must be active and DNS-hosted by Brigg. A website hostname or app ID is not a hosted-domain ID.
Set replaces every value for one name/type pair. Read the current set first and include values you want to retain. Delete removes that whole set. Use @ for the apex, www for a subdomain, and bare TXT text without surrounding quotes. MX values contain a numeric priority followed by the mail hostname. TTL is in seconds.
A successful response confirms the stored change, not global DNS propagation; caches can retain the old value until its TTL expires. Brigg-managed website aliases, certificate records and zone records are protected. A CNAME cannot coexist with another record type at the same name. Use the website connection operations to manage Brigg-hosted sites.
Response
Returns 200 OK with a JSON body.
recordDnsRecordRequiredDNS record set after the requested change.
DnsRecord
namestringRequiredRecord name relative to the hosted zone; @ names the zone apex. This is the normalized name saved by the service.
typestringRequiredDNS record type: A, AAAA, CNAME, MX or TXT.
Allowed: "A", "AAAA", "CNAME", "MX", "TXT".
ttlnumberRequiredDNS time to live in seconds.
valuesarray of stringRequiredValues published in this DNS record set; syntax depends on its record type.
aliasobjectOptionalAlias target used instead of ordinary DNS values, when present.
Nested fields
targetstringRequiredDNS target hostname for this alias.
Errors & retries
Set BRIGG_REQUEST_ID once for each logical action. The samples send it as Idempotency-Key. Reuse the same value and body on retries, including after a timeout; a missing response does not prove the action failed.
For rate limits, follow the server’s retry guidance and back off. See HTTP errors and safe retries and limits.
| HTTP status | Code | What to do |
|---|---|---|
| 400 | invalid_json |
Send a JSON object with Content-Type: application/json. |
| 400 | invalid_input |
Check the request fields and types. Supply a stable Idempotency-Key containing 1–200 characters. |
| 401 | invalid_key |
The workspace API key is missing, invalid or revoked. |
| 403 | forbidden |
Check the key’s operation and resource grants. If Brigg-Act-As is supplied, the key must be authorized to delegate to that member. |
| 404 | not_found |
The requested operation or resource is not available to this credential. |
| 429 | rate_limited |
Wait for Retry-After before retrying. Reuse the original Idempotency-Key. |
Next steps
JSON schemas
Use the complete schemas for validation or client generation.
Full request JSON schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"description": "Use the hosted domain's id; record_types and ttl_options in that listing provide supported DNS settings. [domains.ListHostedDomains](/developers/reference/domains/ListHostedDomains)."
},
"name": {
"type": "string",
"maxLength": 253,
"description": "Record name relative to the domain: '@' for the domain itself, 'www', 'mail', '_dmarc', 'selector._domainkey'."
},
"type": {
"type": "string",
"maxLength": 8,
"description": "One of A, AAAA, CNAME, MX, TXT. The apex NS/SOA are Brigg's own and refused `reserved`."
},
"ttl": {
"type": "integer",
"default": 3600,
"description": "Seconds, 60–604800. Default 3600."
},
"values": {
"type": "array",
"items": {
"type": "string",
"maxLength": 4096
},
"minItems": 1,
"maxItems": 50,
"description": "ALL values for this name+type — a set is replaced whole. MX values are '<priority> <host>' ('10 mail.example.com'); TXT values are the bare text (no quotes)."
}
},
"required": [
"id",
"name",
"type",
"values"
],
"additionalProperties": false,
"examples": [
{
"id": "domain_example",
"name": "www",
"type": "CNAME",
"ttl": 3600,
"values": [
"sites.example.net"
]
}
]
}Full response JSON schema
{
"type": "object",
"properties": {
"record": {
"description": "DNS record set after the requested change.",
"title": "DnsRecord",
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Record name relative to the hosted zone; @ names the zone apex. This is the normalized name saved by the service."
},
"type": {
"type": "string",
"enum": [
"A",
"AAAA",
"CNAME",
"MX",
"TXT"
],
"description": "DNS record type: A, AAAA, CNAME, MX or TXT."
},
"ttl": {
"type": "number",
"description": "DNS time to live in seconds."
},
"values": {
"type": "array",
"items": {
"type": "string"
},
"description": "Values published in this DNS record set; syntax depends on its record type."
},
"alias": {
"type": "object",
"properties": {
"target": {
"type": "string",
"description": "DNS target hostname for this alias."
}
},
"required": [
"target"
],
"additionalProperties": false,
"description": "Alias target used instead of ordinary DNS values, when present."
}
},
"required": [
"name",
"type",
"ttl",
"values"
],
"additionalProperties": false
}
},
"required": [
"record"
],
"additionalProperties": false,
"examples": [
{
"record": {
"name": "www",
"type": "CNAME",
"ttl": 3600,
"values": [
"sites.example.net"
]
}
}
]
}