Skip to content

API reference

Set DNS record

domains.SetDnsRecordWriteAPI key

Create or replace a DNS record set for a hosted domain. Brigg-managed hosting and certificate records cannot be changed.

POST/v1/operations/domains.SetDnsRecord
On this page

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.

Set up authentication · Choose permissions

Request fields

Send a JSON object with the following fields. Required fields must be included; omit optional fields you do not need.

idstringRequired

Use 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.

namestringRequired

Record name relative to the domain: '@' for the domain itself, 'www', 'mail', '_dmarc', 'selector._domainkey'.

At most 253 characters.

typestringRequired

One of A, AAAA, CNAME, MX, TXT. The apex NS/SOA are Brigg's own and refused reserved.

At most 8 characters.

ttlintegerOptional

Seconds, 60–604800. Default 3600.

Default: 3600.

valuesarray of stringRequired

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).

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.

recordDnsRecordRequired

DNS record set after the requested change.

DnsRecord
namestringRequired

Record name relative to the hosted zone; @ names the zone apex. This is the normalized name saved by the service.

typestringRequired

DNS record type: A, AAAA, CNAME, MX or TXT.

Allowed: "A", "AAAA", "CNAME", "MX", "TXT".

ttlnumberRequired

DNS time to live in seconds.

valuesarray of stringRequired

Values published in this DNS record set; syntax depends on its record type.

aliasobjectOptional

Alias target used instead of ordinary DNS values, when present.

Nested fields
targetstringRequired

DNS 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

Download OpenAPI · Versioning & retirement

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](/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"
        ]
      }
    }
  ]
}

Search by operation name or what you want to build.

Use arrow keys to browse. Enter opens a result.