/api/v2/support/tickets Create a support ticket in a customer-facing department.
First call GET /api/v2/support/departments and use one returned departments[].slug value as departmentSlug; do not guess department slugs from names.
For VPS, IP address, or VPS network help, use the returned vps department slug.
To link a service, send context.serviceType and context.serviceId; do not send accountId at the top level.
For shared-hosting accounts, use context.serviceType: "hosting" with the acct_... id returned by GET /api/v2/shared-hosting; shared_hosting is accepted only as a compatibility alias and is normalized to hosting.
Attachments are not accepted in this request body; add files through the support attachment flow when available.
priority: "critical" has extra requirements: the ticket must link an affected service via context, criticalReason must be at least 15 characters, the account must be established or BankID-verified (403 otherwise), and one pre-purchased critical support credit is required (402 payment_required when the balance is empty).
Critical alerts are also rate limited: one per hour, five per 24 hours, and no repeat of a similar subject within 30 minutes (429 rate_limited).
write:support
Authenticate with an API key in the Authorization: Bearer <token> header.
Authorization Bearer <token> Accept application/json Content-Type application/json departmentSlug string required
· Example: general-web-hosting Support department slug returned by GET /api/v2/support/departments. Use vps for VPS, IP address, and VPS network requests.
subject string required
· Example: Question about my hosting account message string required
· Example: Hello, I need help with my website. priority string · enum
· Example: medium low medium high urgent critical ccEmails array<string>
· Example: ["ops@example.com"] context object
· Example: {"serviceType":"hosting","serviceId":"acct_01hxa3b4c5d6e7f8g9h0j1k2m3"} Optional linked-service context. The server validates that the linked service belongs to the caller. Use camelCase v2 fields here; accountId is not accepted as a top-level ticket field.
context.serviceType string · enum
· Example: hosting Type of customer resource to link to the ticket. Prefer hosting for shared-hosting accounts; shared_hosting is accepted as a compatibility alias.
domain hosting shared_hosting vps other context.serviceId string
· Example: dom_01hxa3b4c5d6e7f8g9h0j1k2m3 Public resource ID. Use acct_... from GET /api/v2/shared-hosting for hosting, vps_... from GET /api/v2/vps for VPS, or a domain public ID from GET /api/v2/domains.
context.serviceName string
· Example: example.com Optional display label when serviceType is other.
aiSummary string · nullable
· Example: null aiHelpful boolean · nullable
· Example: null criticalReason string · nullable
· Example: null Required with priority=critical: a short impact summary of at least 15 characters explaining the customer impact.
id string
· Example: tkt_01hxa3b4c5d6e7f8g9h0j1k2m3 number string
· Example: 149943 Customer-facing support ticket number. Normally numeric; public IDs are exposed separately as id.
subject string · nullable
· Example: Question about my VPS body string · nullable
· Example: My VPS is not reachable from the internet. Only present on ticket detail/create responses.
status string · enum
· Example: open open answered customer_reply in_progress on_hold closed unknown priority string · enum
· Example: low low medium high urgent critical departmentSlug string
· Example: billing departmentName string · nullable
· Example: Billing createdAt string · nullable
· Example: 2026-04-27T11:45:00.000Z updatedAt string · nullable
· Example: 2026-04-27T12:05:00.000Z lastMessageAt string · nullable
· Example: 2026-04-27T12:05:00.000Z ccEmails array<string>
· Example: ["ops@example.com"] requesterName string · nullable
· Example: Jane Example messageCount integer
· Example: 2 linkedServices array<object> linkedServices[].serviceType string required
· Example: vps linkedServices[].serviceId string · nullable required
· Example: vps_01hxa3b4c5d6e7f8g9h0j1k2m3 Nullable: may be null when not applicable.
linkedServices[].serviceName string · nullable required
· Example: app-01 Nullable: may be null when not applicable.
linkedServices[].details object · nullable required
· Example: {"status":"active","planName":"VPS XS","ipAddress":"192.0.2.10"} Nullable: may be null when not applicable.
attachments array<object> Only present on ticket detail/create responses.
attachments[].id string required
· Example: tatt_01hxa3b4c5d6e7f8g9h0j1k2m3 attachments[].filename string · nullable required
· Example: error-log.txt Nullable: may be null when not applicable.
attachments[].extension string · nullable required
· Example: txt Nullable: may be null when not applicable.
attachments[].mimeType string · nullable required
· Example: text/plain Nullable: may be null when not applicable.
attachments[].downloadUrl string required
· Example: /api/v2/support/attachments/tatt_01hxa3b4c5d6e7f8g9h0j1k2m3?ticketId=tkt_01hxa3b4c5d6e7... messages array<object> Only present on ticket detail/create responses.
messages[].id string required
· Example: tmsg_01hxa3b4c5d6e7f8g9h0j1k2m3 messages[].ticketId string required
· Example: tkt_01hxa3b4c5d6e7f8g9h0j1k2m3 messages[].sentAt string · nullable required
· Example: 2026-04-27T11:45:00.000Z Nullable: may be null when not applicable.
messages[].body string · nullable required
· Example: My VPS is not reachable from the internet. Nullable: may be null when not applicable.
messages[].sender string · enum required
· Example: customer customer staff automation messages[].senderName string · nullable required
· Example: Jane Example Nullable: may be null when not applicable.
messages[].encrypted boolean required
· Example: false messages[].attachments array<object> required
· Example: [] departmentSlug, an invalid linked-service context, or a critical alert without a linked context or a long-enough criticalReason. 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 priority: "critical" was requested but the account has no unused critical support credit. 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 priority: "critical" on an account that is not yet established or BankID-verified. 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 Retry-After header indicates when to retry. 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/support/tickets curl -X POST "https://cloud.hostup.se/api/v2/support/tickets" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"departmentSlug": "domain-names",
"subject": "Question about my hosting account",
"message": "Hello, I need help with my website.",
"priority": "low",
"ccEmails": [
"ops@example.com"
],
"context": {
"serviceType": "domain",
"serviceId": "dom_01hxa3b4c5d6e7f8g9h0j1k2m3"
}
}' {
"id": "tkt_01hxa3b4c5d6e7f8g9h0j1k2m3",
"number": "10001",
"subject": "Question about my hosting account",
"body": "Hello, I need help with my website.",
"status": "open",
"priority": "low",
"departmentSlug": "domain-names",
"departmentName": "Domain names",
"createdAt": "2026-04-27T11:45:00.000Z",
"updatedAt": "2026-04-27T11:45:00.000Z",
"lastMessageAt": "2026-04-27T11:45:00.000Z",
"ccEmails": [
"ops@example.com"
],
"requesterName": "Jane Example",
"messageCount": 1,
"linkedServices": [
{
"serviceType": "domain",
"serviceId": "dom_01hxa3b4c5d6e7f8g9h0j1k2m3",
"serviceName": "example.com",
"details": {
"status": "Active",
"autoRenew": true
}
}
],
"attachments": [],
"messages": []
} {
"departmentSlug": "domain-names",
"subject": "Question about my hosting account",
"message": "Hello, I need help with my website.",
"priority": "low",
"ccEmails": [
"ops@example.com"
],
"context": {
"serviceType": "domain",
"serviceId": "dom_01hxa3b4c5d6e7f8g9h0j1k2m3"
}
}