/api/v2/domains/bulk/contacts 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 API verifies every submitted domain before queuing, so a foreign or invalid ID rejects the whole batch with Problem Details.
write:domains
Authenticate with an API key in the Authorization: Bearer <token> header.
Authorization Bearer <token> Accept application/json Content-Type application/json domainIds array<string> 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 not part of this bulk operation.
contacts.firstName string
· Example: Anna contacts.lastName string
· Example: Svensson contacts.companyName string
· Example: Example AB contacts.email string
· Example: domains@example.se contacts.phoneNumber string
· Example: +46700000000 contacts.street string
· Example: Examplegatan 1 contacts.address2 string
· Example: Suite 2 contacts.city string
· Example: Stockholm contacts.postalCode string
· Example: 12345 contacts.state string
· Example: Stockholm contacts.countryCode string
· Example: SE ISO-3166-1 alpha-2 country code.
operation.pollUrl for completion. 2 fields operation object operation.status string · enum required
· Example: queued Operation status. 202 Accepted responses only carry pending, queued, or in_progress; the terminal completed and failed values appear only in 200 OK responses for operations that finished within the request, or when polling pollUrl.
pending queued in_progress completed failed operation.jobId string required
· Example: job_01hxa3b4c5d6e7f8g9h0j1k2m3 operation.pollUrl string · nullable required
· Example: /api/jobs/job_01hxa3b4c5d6e7f8g9h0j1k2m3 URL to poll for progress while the operation is in flight. null when status is already terminal (completed or failed), so there is nothing left to poll.
domainsQueued integer · nullable
· 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 Retry-After seconds plus X-RateLimit-* headers. 10 fields 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"
}
}