Skip to main content
POST
/
tickets
Create a new support ticket
curl --request POST \
  --url {schemes}://api.upsun.com/tickets \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "subject": "<string>",
  "description": "<string>",
  "requester_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "subscription_id": "<string>",
  "organization_id": "<string>",
  "affected_url": "<string>",
  "followup_tid": "<string>",
  "attachments": [
    {
      "filename": "<string>",
      "data": "<string>"
    }
  ],
  "collaborator_ids": [
    "<string>"
  ]
}
'
import requests

url = "{schemes}://api.upsun.com/tickets"

payload = {
"subject": "<string>",
"description": "<string>",
"requester_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"subscription_id": "<string>",
"organization_id": "<string>",
"affected_url": "<string>",
"followup_tid": "<string>",
"attachments": [
{
"filename": "<string>",
"data": "<string>"
}
],
"collaborator_ids": ["<string>"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
subject: '<string>',
description: '<string>',
requester_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
subscription_id: '<string>',
organization_id: '<string>',
affected_url: '<string>',
followup_tid: '<string>',
attachments: [{filename: '<string>', data: '<string>'}],
collaborator_ids: ['<string>']
})
};

fetch('{schemes}://api.upsun.com/tickets', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "{schemes}://api.upsun.com/tickets",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'subject' => '<string>',
'description' => '<string>',
'requester_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'subscription_id' => '<string>',
'organization_id' => '<string>',
'affected_url' => '<string>',
'followup_tid' => '<string>',
'attachments' => [
[
'filename' => '<string>',
'data' => '<string>'
]
],
'collaborator_ids' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"strings"
"net/http"
"io"
)

func main() {

url := "{schemes}://api.upsun.com/tickets"

payload := strings.NewReader("{\n \"subject\": \"<string>\",\n \"description\": \"<string>\",\n \"requester_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"subscription_id\": \"<string>\",\n \"organization_id\": \"<string>\",\n \"affected_url\": \"<string>\",\n \"followup_tid\": \"<string>\",\n \"attachments\": [\n {\n \"filename\": \"<string>\",\n \"data\": \"<string>\"\n }\n ],\n \"collaborator_ids\": [\n \"<string>\"\n ]\n}")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.post("{schemes}://api.upsun.com/tickets")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"subject\": \"<string>\",\n \"description\": \"<string>\",\n \"requester_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"subscription_id\": \"<string>\",\n \"organization_id\": \"<string>\",\n \"affected_url\": \"<string>\",\n \"followup_tid\": \"<string>\",\n \"attachments\": [\n {\n \"filename\": \"<string>\",\n \"data\": \"<string>\"\n }\n ],\n \"collaborator_ids\": [\n \"<string>\"\n ]\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("{schemes}://api.upsun.com/tickets")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"subject\": \"<string>\",\n \"description\": \"<string>\",\n \"requester_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"subscription_id\": \"<string>\",\n \"organization_id\": \"<string>\",\n \"affected_url\": \"<string>\",\n \"followup_tid\": \"<string>\",\n \"attachments\": [\n {\n \"filename\": \"<string>\",\n \"data\": \"<string>\"\n }\n ],\n \"collaborator_ids\": [\n \"<string>\"\n ]\n}"

response = http.request(request)
puts response.read_body
{
  "ticket_id": 123,
  "created": "2023-11-07T05:31:56Z",
  "updated": "2023-11-07T05:31:56Z",
  "subject": "<string>",
  "description": "<string>",
  "followup_tid": "<string>",
  "recipient": "<string>",
  "requester_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "submitter_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "assignee_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "organization_id": "<string>",
  "collaborator_ids": [
    "<string>"
  ],
  "has_incidents": true,
  "due": "2023-11-07T05:31:56Z",
  "tags": [
    "<string>"
  ],
  "subscription_id": "<string>",
  "ticket_group": "<string>",
  "support_plan": "<string>",
  "affected_url": "<string>",
  "queue": "<string>",
  "issue_type": "<string>",
  "resolution_time": "2023-11-07T05:31:56Z",
  "response_time": "2023-11-07T05:31:56Z",
  "project_url": "<string>",
  "region": "<string>",
  "application_ticket_url": "<string>",
  "infrastructure_ticket_url": "<string>",
  "jira": [
    {
      "id": 123,
      "ticket_id": 123,
      "issue_id": 123,
      "issue_key": "<string>",
      "created_at": 123,
      "updated_at": 123
    }
  ],
  "zd_ticket_url": "<string>"
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
subject
string
required

A title of the ticket.

description
string
required

The description body of the support ticket.

requester_id
string<uuid>

UUID of the ticket requester. Converted from the ZID value.

priority
enum<string>

A priority of the ticket.

Available options:
low,
normal,
high,
urgent
subscription_id
string

see create()

organization_id
string

see create()

affected_url
string<url>

see create().

followup_tid
string

The unique ID of the ticket which this ticket is a follow-up to.

category
enum<string>

The category of the support ticket.

Available options:
access,
billing_question,
complaint,
compliance_question,
configuration_change,
general_question,
incident_outage,
bug_report,
report_a_gui_bug,
onboarding,
close_my_account
attachments
object[]

A list of attachments for the ticket.

collaborator_ids
string[]

A list of collaborators uuids for the ticket.

Response

200 - application/json

A Support Ticket object

The support ticket object.

ticket_id
integer

The ID of the ticket.

created
string<date-time>

The time when the support ticket was created.

updated
string<date-time>

The time when the support ticket was updated.

type
enum<string>

A type of the ticket.

Available options:
problem,
task,
incident,
question
subject
string

A title of the ticket.

description
string

The description body of the support ticket.

priority
enum<string>

A priority of the ticket.

Available options:
low,
normal,
high,
urgent
followup_tid
string

Followup ticket ID. The unique ID of the ticket which this ticket is a follow-up to.

status
enum<string>

The status of the support ticket.

Available options:
closed,
deleted,
hold,
new,
open,
pending,
solved
recipient
string

Email address of the ticket recipient, defaults to support@upsun.com.

requester_id
string<uuid>

UUID of the ticket requester.

submitter_id
string<uuid>

UUID of the ticket submitter.

assignee_id
string<uuid>

UUID of the ticket assignee.

organization_id
string

A reference id that is usable to find the commerce license.

collaborator_ids
string[]

A list of the collaborators uuids for this ticket.

has_incidents
boolean

Whether or not this ticket has incidents.

due
string<date-time>

A time that the ticket is due at.

tags
string[]

A list of tags assigned to the ticket.

subscription_id
string

The internal ID of the subscription.

ticket_group
string

Maps to zendesk field 'Request group'.

support_plan
string

Maps to zendesk field 'The support plan associated with this ticket.

affected_url
string<url>

The affected URL associated with the support ticket.

queue
string

The queue the support ticket is in.

issue_type
string

The issue type of the support ticket.

resolution_time
string<date-time>

Maps to zendesk field 'Resolution Time'.

response_time
string<date-time>

Maps to zendesk field 'Response Time (time from request to reply).

project_url
string<url>

Maps to zendesk field 'Project URL'.

region
string

Maps to zendesk field 'Region'.

category
enum<string>

Maps to zendesk field 'Category'.

Available options:
access,
billing_question,
complaint,
compliance_question,
configuration_change,
general_question,
incident_outage,
bug_report,
onboarding,
report_a_gui_bug,
close_my_account
environment
enum<string>

Maps to zendesk field 'Environment'.

Available options:
env_development,
env_staging,
env_production
ticket_sharing_status
enum<string>

Maps to zendesk field 'Ticket Sharing Status'.

Available options:
ts_sent_to_platform,
ts_accepted_by_platform,
ts_returned_from_platform,
ts_solved_by_platform,
ts_rejected_by_platform
application_ticket_url
string<url>

Maps to zendesk field 'Application Ticket URL'.

infrastructure_ticket_url
string<url>

Maps to zendesk field 'Infrastructure Ticket URL'.

jira
object[]

A list of JIRA issues related to the support ticket.

zd_ticket_url
string<url>

URL to the customer-facing ticket in Zendesk.

Last modified on July 14, 2026