Queue an asynchronous contact update for multiple domains. Send public dom_... IDs in domainIds and a flat contact patch object in contacts, for example contacts.email or contacts.phoneNumber. Do not nest fields under contact roles such as contacts.registrant; this bulk route applies the same ordinary…
Queue an asynchronous contact update for multiple domains. Send public dom_... IDs in domainIds and a flat contact patch object in contacts, for example contacts.email or contacts.phoneNumber. Do not nest fields under contact roles such as contacts.registrant; this bulk route applies the same ordinary contact fields to each selected domain. Use POST /api/v2/domains/{id}/contacts when you need role-specific registrant, admin, tech, or billing changes. Do not use this bulk route to change a registrant personal or organisation number; that requires the per-domain contacts route plus the identity-verification/ownership flow described by GET /api/v2/domains/{id}/contacts and POST /api/v2/domains/{id}/contacts. The v2 boundary verifies every submitted domain before queuing, so a foreign or invalid ID rejects the whole batch with Problem Details.
write:domains
Use Authorization: Bearer <token> for API keys. Dashboard sessions may also use hostup_session.
Accept Example Content-Type Example domainIds array required
· Example: ["dom_01hxa3b4c5d6e7f8g9h0j1k2m3","dom_01hxa3b4c5d6e7f8g9h0j1k2m4"] contacts object required Flat contact fields to apply to the selected domains. Use camelCase v2 names directly under `contacts`, for example `contacts.email`, `contacts.phoneNumber`, and `contacts.countryCode`. Do not send role wrappers such as `contacts.registrant`; use the per-domain contacts route for role-specific updates. `registrationIdentifier` is intentionally not part of this bulk operation.
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 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/contacts curl -X POST "https://cloud.hostup.se/api/v2/domains/bulk/contacts" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"domainIds": [
"dom_01hxa3b4c5d6e7f8g9h0j1k2m3",
"dom_01hxa3b4c5d6e7f8g9h0j1k2m4"
],
"contacts": {
"email": "domains@example.se",
"phoneNumber": "+46700000000",
"countryCode": "SE"
}
}' {
"operation": {
"status": "pending",
"jobId": "dbj_01hxa3b4c5d6e7f8g9h0j1k2m3",
"pollUrl": "/api/jobs/dbj_01hxa3b4c5d6e7f8g9h0j1k2m3"
},
"domainsQueued": 2
} {
"domainIds": [
"dom_01hxa3b4c5d6e7f8g9h0j1k2m3",
"dom_01hxa3b4c5d6e7f8g9h0j1k2m4"
],
"contacts": {
"email": "domains@example.se",
"phoneNumber": "+46700000000",
"countryCode": "SE"
}
}