Queue an asynchronous DNS record mutation across multiple domain zones. Use action: "add" or "update" with records[]; use action: "delete" with deleteType. The request schema deliberately lists all action fields in one object so API tools see every allowed action value. domainNames are domain names, not…
Queue an asynchronous DNS record mutation across multiple domain zones. Use action: "add" or "update" with records[]; use action: "delete" with deleteType. The request schema deliberately lists all action fields in one object so API tools see every allowed action value. domainNames are domain names, not public dom_... IDs. The v2 boundary verifies every submitted domain before queuing; if any domain is not owned by the caller, the entire batch is rejected with Problem Details and errors[] pointers. Successful responses return a domain bulk job with a public dbj_... ID and pollUrl: "/api/jobs/{jobId}".
write:dns
Use Authorization: Bearer <token> for API keys. Dashboard sessions may also use hostup_session.
Accept Example Content-Type Example action string · enum required
· Example: add `add` and `update` require `records[]`. `delete` requires `deleteType` and, depending on that value, `recordType`, `recordName`, or `recordValue`.
add update delete domainNames array required
· Example: ["example.se","example.nu"] Domain names to mutate. These are plain domain names such as `example.se`, not public `dom_...` IDs.
records array Required when `action` is `add` or `update`. Omit this field for `action: "delete"`.
deleteType string · enum
· Example: by_type Required when `action` is `delete`. Use `all` to delete every record in each zone, `by_type` with `recordType`, `by_name` with `recordName`, or `by_value` with `recordValue`.
all by_type by_name by_value recordType string
· Example: TXT Required when `action` is `delete` and `deleteType` is `by_type`.
recordName string
· Example: _dmarc Required when `action` is `delete` and `deleteType` is `by_name`. Record owner name as understood by the DNS record APIs, normally relative to each zone.
recordValue string
· Example: v=DMARC1; p=none Required when `action` is `delete` and `deleteType` is `by_value`.
operation object operation.status string · enum required
· Example: queued pending queued in_progress completed failed operation.jobId string required
· Example: job_01hxa3b4c5d6e7f8g9h0j1k2m3 operation.pollUrl string required
· Example: /api/jobs/job_01hxa3b4c5d6e7f8g9h0j1k2m3 operation.result objectnull
· Example: null action string · enum add update delete domainsQueued integernull
· Example: 2 type string
· Example: https://developer.hostup.se/errors/invalid_request title string
· Example: Validation failed status integer
· Example: 400 detail string
· Example: The request body failed validation. code string
· Example: invalid_request Stable machine-readable code. Branch on this field, not on `detail`.
instance string
· Example: /api/v2/orders requestId string
· Example: req_01hxa3b4c5d6e7f8g9h0j1k2m3 timestamp string
· Example: 2026-04-27T12:34:56.000Z errors array<object> Field-level validation errors when `code` is `invalid_request`.
errors[].pointer string required
· Example: /items/0/eppCode errors[].detail string required
· Example: `eppCode` is required for this transfer. errors[].code string required
· Example: missing_required extensions object type string
· Example: https://developer.hostup.se/errors/invalid_request title string
· Example: Validation failed status integer
· Example: 400 detail string
· Example: The request body failed validation. code string
· Example: invalid_request Stable machine-readable code. Branch on this field, not on `detail`.
instance string
· Example: /api/v2/orders requestId string
· Example: req_01hxa3b4c5d6e7f8g9h0j1k2m3 timestamp string
· Example: 2026-04-27T12:34:56.000Z errors array<object> Field-level validation errors when `code` is `invalid_request`.
errors[].pointer string required
· Example: /items/0/eppCode errors[].detail string required
· Example: `eppCode` is required for this transfer. errors[].code string required
· Example: missing_required extensions object type string
· Example: https://developer.hostup.se/errors/invalid_request title string
· Example: Validation failed status integer
· Example: 400 detail string
· Example: The request body failed validation. code string
· Example: invalid_request Stable machine-readable code. Branch on this field, not on `detail`.
instance string
· Example: /api/v2/orders requestId string
· Example: req_01hxa3b4c5d6e7f8g9h0j1k2m3 timestamp string
· Example: 2026-04-27T12:34:56.000Z errors array<object> Field-level validation errors when `code` is `invalid_request`.
errors[].pointer string required
· Example: /items/0/eppCode errors[].detail string required
· Example: `eppCode` is required for this transfer. errors[].code string required
· Example: missing_required extensions object type string
· Example: https://developer.hostup.se/errors/invalid_request title string
· Example: Validation failed status integer
· Example: 400 detail string
· Example: The request body failed validation. code string
· Example: invalid_request Stable machine-readable code. Branch on this field, not on `detail`.
instance string
· Example: /api/v2/orders requestId string
· Example: req_01hxa3b4c5d6e7f8g9h0j1k2m3 timestamp string
· Example: 2026-04-27T12:34:56.000Z errors array<object> Field-level validation errors when `code` is `invalid_request`.
errors[].pointer string required
· Example: /items/0/eppCode errors[].detail string required
· Example: `eppCode` is required for this transfer. errors[].code string required
· Example: missing_required extensions object type string
· Example: https://developer.hostup.se/errors/invalid_request title string
· Example: Validation failed status integer
· Example: 400 detail string
· Example: The request body failed validation. code string
· Example: invalid_request Stable machine-readable code. Branch on this field, not on `detail`.
instance string
· Example: /api/v2/orders requestId string
· Example: req_01hxa3b4c5d6e7f8g9h0j1k2m3 timestamp string
· Example: 2026-04-27T12:34:56.000Z errors array<object> Field-level validation errors when `code` is `invalid_request`.
errors[].pointer string required
· Example: /items/0/eppCode errors[].detail string required
· Example: `eppCode` is required for this transfer. errors[].code string required
· Example: missing_required extensions object type string
· Example: https://developer.hostup.se/errors/invalid_request title string
· Example: Validation failed status integer
· Example: 400 detail string
· Example: The request body failed validation. code string
· Example: invalid_request Stable machine-readable code. Branch on this field, not on `detail`.
instance string
· Example: /api/v2/orders requestId string
· Example: req_01hxa3b4c5d6e7f8g9h0j1k2m3 timestamp string
· Example: 2026-04-27T12:34:56.000Z errors array<object> Field-level validation errors when `code` is `invalid_request`.
errors[].pointer string required
· Example: /items/0/eppCode errors[].detail string required
· Example: `eppCode` is required for this transfer. errors[].code string required
· Example: missing_required extensions object https://cloud.hostup.se/api/v2/domains/bulk/dns curl -X POST "https://cloud.hostup.se/api/v2/domains/bulk/dns" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"action": "add",
"domainNames": [
"example.se",
"example.nu"
],
"records": [
{
"type": "TXT",
"name": "_dmarc",
"value": "v=DMARC1; p=none",
"ttl": 3600
}
]
}' {
"operation": {
"status": "pending",
"jobId": "dbj_01hxa3b4c5d6e7f8g9h0j1k2m3",
"pollUrl": "/api/jobs/dbj_01hxa3b4c5d6e7f8g9h0j1k2m3"
},
"action": "add",
"domainsQueued": 2
} {
"action": "add",
"domainNames": [
"example.se",
"example.nu"
],
"records": [
{
"type": "TXT",
"name": "_dmarc",
"value": "v=DMARC1; p=none",
"ttl": 3600
}
]
}