curl --request POST \
--url https://console.advinservers.com/api/v1/client/tickets \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: multipart/form-data' \
--form department_id=1 \
--form 'subject=Packet loss on lambda-core' \
--form 'message=Since about 08:30 UTC lambda-core has been dropping around 5% of packets from the Sector C labs. MTR output from 192.0.2.44 is attached. sector-c-db in the same location is not affected, so we have paused the anti-mass spectrometer test runs for now.' \
--form priority=Medium \
--form service_id=7312 \
--form attachments=mtr-lambda-core.txt \
--form attachments.items='@example-file'import requests
url = "https://console.advinservers.com/api/v1/client/tickets"
files = { "attachments.items": ("example-file", open("example-file", "rb")) }
payload = {
"department_id": "1",
"subject": "Packet loss on lambda-core",
"message": "Since about 08:30 UTC lambda-core has been dropping around 5% of packets from the Sector C labs. MTR output from 192.0.2.44 is attached. sector-c-db in the same location is not affected, so we have paused the anti-mass spectrometer test runs for now.",
"priority": "Medium",
"service_id": "7312",
"attachments": "mtr-lambda-core.txt"
}
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, data=payload, files=files, headers=headers)
print(response.text)const form = new FormData();
form.append('department_id', '1');
form.append('subject', 'Packet loss on lambda-core');
form.append('message', 'Since about 08:30 UTC lambda-core has been dropping around 5% of packets from the Sector C labs. MTR output from 192.0.2.44 is attached. sector-c-db in the same location is not affected, so we have paused the anti-mass spectrometer test runs for now.');
form.append('priority', 'Medium');
form.append('service_id', '7312');
form.append('attachments', 'mtr-lambda-core.txt');
form.append('attachments.items', '{
"fileName": "example-file"
}');
const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
options.body = form;
fetch('https://console.advinservers.com/api/v1/client/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 => "https://console.advinservers.com/api/v1/client/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 => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"department_id\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"subject\"\r\n\r\nPacket loss on lambda-core\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"message\"\r\n\r\nSince about 08:30 UTC lambda-core has been dropping around 5% of packets from the Sector C labs. MTR output from 192.0.2.44 is attached. sector-c-db in the same location is not affected, so we have paused the anti-mass spectrometer test runs for now.\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"priority\"\r\n\r\nMedium\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"service_id\"\r\n\r\n7312\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"attachments\"\r\n\r\nmtr-lambda-core.txt\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"attachments.items\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: multipart/form-data"
],
]);
$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 := "https://console.advinservers.com/api/v1/client/tickets"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"department_id\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"subject\"\r\n\r\nPacket loss on lambda-core\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"message\"\r\n\r\nSince about 08:30 UTC lambda-core has been dropping around 5% of packets from the Sector C labs. MTR output from 192.0.2.44 is attached. sector-c-db in the same location is not affected, so we have paused the anti-mass spectrometer test runs for now.\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"priority\"\r\n\r\nMedium\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"service_id\"\r\n\r\n7312\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"attachments\"\r\n\r\nmtr-lambda-core.txt\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"attachments.items\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://console.advinservers.com/api/v1/client/tickets")
.header("Authorization", "Bearer <token>")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"department_id\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"subject\"\r\n\r\nPacket loss on lambda-core\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"message\"\r\n\r\nSince about 08:30 UTC lambda-core has been dropping around 5% of packets from the Sector C labs. MTR output from 192.0.2.44 is attached. sector-c-db in the same location is not affected, so we have paused the anti-mass spectrometer test runs for now.\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"priority\"\r\n\r\nMedium\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"service_id\"\r\n\r\n7312\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"attachments\"\r\n\r\nmtr-lambda-core.txt\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"attachments.items\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--")
.asString();require 'uri'
require 'net/http'
url = URI("https://console.advinservers.com/api/v1/client/tickets")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"department_id\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"subject\"\r\n\r\nPacket loss on lambda-core\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"message\"\r\n\r\nSince about 08:30 UTC lambda-core has been dropping around 5% of packets from the Sector C labs. MTR output from 192.0.2.44 is attached. sector-c-db in the same location is not affected, so we have paused the anti-mass spectrometer test runs for now.\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"priority\"\r\n\r\nMedium\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"service_id\"\r\n\r\n7312\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"attachments\"\r\n\r\nmtr-lambda-core.txt\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"attachments.items\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--"
response = http.request(request)
puts response.read_body{
"id": 5316,
"number": "NQX-482913",
"subject": "Packet loss on lambda-core",
"status": "Open",
"priority": "Medium",
"department": "Technical Support",
"opened_at": "2026-09-14T09:12:44+00:00",
"last_replied_at": "2026-09-14T09:12:44+00:00",
"awaiting_customer": false,
"closed": false,
"service": null,
"server": {
"id": "ecc6f4f1-c89b-4dce-a20b-a330641c5b0b",
"uuid_short": "ecc6f4f1",
"name": "lambda-core",
"hostname": "lambda-core.blackmesa.example.com",
"template_name": "Ubuntu 24.04",
"template_icon_url": "https://img.icons8.com/color/48/ubuntu.png",
"windows": false
},
"url": "https://clients.advinservers.com/viewticket.php?tid=NQX-482913&c=Hx7kQ2Rm",
"messages": [
{
"id": 0,
"author": "Gordon Freeman",
"is_staff": false,
"posted_at": "2026-09-14T09:12:44+00:00",
"body": "Since about 08:30 UTC lambda-core has been dropping around 5% of packets from the Sector C labs. MTR output from 192.0.2.44 is attached. sector-c-db in the same location is not affected, so we have paused the anti-mass spectrometer test runs for now.",
"attachments": [
{
"index": 0,
"filename": "mtr-lambda-core.txt",
"url": "/api/v1/client/tickets/5316/messages/0/attachments/0"
}
]
}
]
}{
"message": "The request could not be carried out."
}{
"message": "Unauthenticated."
}{
"message": "This API key is not allowed to do that in this team. It needs the \"snapshot.delete\" permission."
}{
"message": "The name field is required.",
"errors": {}
}{
"message": "Too Many Attempts."
}Open a support ticket
Overview
Opens a support ticket and returns it with its conversation. Send department_id from the department list, subject, message and priority (Low, Medium or High). Use service_id to identify the related service. You can include up to 5 files in attachments[], limited to 4 MB each and 8 MB total. Ticket creation has a separate, stricter rate limit than ticket reads.
Permissions
Requires the account permission tickets.write (Write to support).
curl --request POST \
--url https://console.advinservers.com/api/v1/client/tickets \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: multipart/form-data' \
--form department_id=1 \
--form 'subject=Packet loss on lambda-core' \
--form 'message=Since about 08:30 UTC lambda-core has been dropping around 5% of packets from the Sector C labs. MTR output from 192.0.2.44 is attached. sector-c-db in the same location is not affected, so we have paused the anti-mass spectrometer test runs for now.' \
--form priority=Medium \
--form service_id=7312 \
--form attachments=mtr-lambda-core.txt \
--form attachments.items='@example-file'import requests
url = "https://console.advinservers.com/api/v1/client/tickets"
files = { "attachments.items": ("example-file", open("example-file", "rb")) }
payload = {
"department_id": "1",
"subject": "Packet loss on lambda-core",
"message": "Since about 08:30 UTC lambda-core has been dropping around 5% of packets from the Sector C labs. MTR output from 192.0.2.44 is attached. sector-c-db in the same location is not affected, so we have paused the anti-mass spectrometer test runs for now.",
"priority": "Medium",
"service_id": "7312",
"attachments": "mtr-lambda-core.txt"
}
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, data=payload, files=files, headers=headers)
print(response.text)const form = new FormData();
form.append('department_id', '1');
form.append('subject', 'Packet loss on lambda-core');
form.append('message', 'Since about 08:30 UTC lambda-core has been dropping around 5% of packets from the Sector C labs. MTR output from 192.0.2.44 is attached. sector-c-db in the same location is not affected, so we have paused the anti-mass spectrometer test runs for now.');
form.append('priority', 'Medium');
form.append('service_id', '7312');
form.append('attachments', 'mtr-lambda-core.txt');
form.append('attachments.items', '{
"fileName": "example-file"
}');
const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
options.body = form;
fetch('https://console.advinservers.com/api/v1/client/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 => "https://console.advinservers.com/api/v1/client/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 => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"department_id\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"subject\"\r\n\r\nPacket loss on lambda-core\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"message\"\r\n\r\nSince about 08:30 UTC lambda-core has been dropping around 5% of packets from the Sector C labs. MTR output from 192.0.2.44 is attached. sector-c-db in the same location is not affected, so we have paused the anti-mass spectrometer test runs for now.\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"priority\"\r\n\r\nMedium\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"service_id\"\r\n\r\n7312\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"attachments\"\r\n\r\nmtr-lambda-core.txt\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"attachments.items\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: multipart/form-data"
],
]);
$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 := "https://console.advinservers.com/api/v1/client/tickets"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"department_id\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"subject\"\r\n\r\nPacket loss on lambda-core\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"message\"\r\n\r\nSince about 08:30 UTC lambda-core has been dropping around 5% of packets from the Sector C labs. MTR output from 192.0.2.44 is attached. sector-c-db in the same location is not affected, so we have paused the anti-mass spectrometer test runs for now.\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"priority\"\r\n\r\nMedium\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"service_id\"\r\n\r\n7312\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"attachments\"\r\n\r\nmtr-lambda-core.txt\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"attachments.items\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://console.advinservers.com/api/v1/client/tickets")
.header("Authorization", "Bearer <token>")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"department_id\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"subject\"\r\n\r\nPacket loss on lambda-core\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"message\"\r\n\r\nSince about 08:30 UTC lambda-core has been dropping around 5% of packets from the Sector C labs. MTR output from 192.0.2.44 is attached. sector-c-db in the same location is not affected, so we have paused the anti-mass spectrometer test runs for now.\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"priority\"\r\n\r\nMedium\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"service_id\"\r\n\r\n7312\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"attachments\"\r\n\r\nmtr-lambda-core.txt\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"attachments.items\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--")
.asString();require 'uri'
require 'net/http'
url = URI("https://console.advinservers.com/api/v1/client/tickets")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"department_id\"\r\n\r\n1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"subject\"\r\n\r\nPacket loss on lambda-core\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"message\"\r\n\r\nSince about 08:30 UTC lambda-core has been dropping around 5% of packets from the Sector C labs. MTR output from 192.0.2.44 is attached. sector-c-db in the same location is not affected, so we have paused the anti-mass spectrometer test runs for now.\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"priority\"\r\n\r\nMedium\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"service_id\"\r\n\r\n7312\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"attachments\"\r\n\r\nmtr-lambda-core.txt\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"attachments.items\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--"
response = http.request(request)
puts response.read_body{
"id": 5316,
"number": "NQX-482913",
"subject": "Packet loss on lambda-core",
"status": "Open",
"priority": "Medium",
"department": "Technical Support",
"opened_at": "2026-09-14T09:12:44+00:00",
"last_replied_at": "2026-09-14T09:12:44+00:00",
"awaiting_customer": false,
"closed": false,
"service": null,
"server": {
"id": "ecc6f4f1-c89b-4dce-a20b-a330641c5b0b",
"uuid_short": "ecc6f4f1",
"name": "lambda-core",
"hostname": "lambda-core.blackmesa.example.com",
"template_name": "Ubuntu 24.04",
"template_icon_url": "https://img.icons8.com/color/48/ubuntu.png",
"windows": false
},
"url": "https://clients.advinservers.com/viewticket.php?tid=NQX-482913&c=Hx7kQ2Rm",
"messages": [
{
"id": 0,
"author": "Gordon Freeman",
"is_staff": false,
"posted_at": "2026-09-14T09:12:44+00:00",
"body": "Since about 08:30 UTC lambda-core has been dropping around 5% of packets from the Sector C labs. MTR output from 192.0.2.44 is attached. sector-c-db in the same location is not affected, so we have paused the anti-mass spectrometer test runs for now.",
"attachments": [
{
"index": 0,
"filename": "mtr-lambda-core.txt",
"url": "/api/v1/client/tickets/5316/messages/0/attachments/0"
}
]
}
]
}{
"message": "The request could not be carried out."
}{
"message": "Unauthenticated."
}{
"message": "This API key is not allowed to do that in this team. It needs the \"snapshot.delete\" permission."
}{
"message": "The name field is required.",
"errors": {}
}{
"message": "Too Many Attempts."
}Authorizations
Your API key, sent as a bearer token. Create one in the control panel under API Keys, give it only the permissions the integration needs, and copy it when it is created. It cannot be shown again. Each key is restricted to one owned team. The key determines the team for every request.
Body
Send a JSON object containing the fields below. Required fields are marked in the schema.
The department id ID.
1 <= x <= 4294967295The subject line for the message.
3 - 255^[^\p{C}]+$The message text.
2 - 20000The value of priority.
Low, Medium, High The service id ID.
1 <= x <= 4294967295The value of attachments.
5Maximum file size: 4096 kilobytes.
Response
The record, as a JSON object. There is no envelope.
A support ticket and its current status.
The id ID.
5316
The ticket reference sent by email, such as #ABC-123456. Use the numeric ticket ID for API requests.
"NQX-482913"
The subject line for the message.
"Packet loss on lambda-core"
The value of status.
"Open"
The value of priority.
"Medium"
The value of department.
"Technical Support"
The date and time for opened at, in UTC.
"2026-09-14T09:12:44+00:00"
The date and time for last replied at, in UTC.
"2026-09-14T09:12:44+00:00"
Whether the customer is the one being waited on.
false
The value of closed.
false
The value of service.
null
The machine it is about, where the service names one. Enough of it to draw the badge the customer recognises and to link to it.
Show child attributes
Show child attributes
{
"id": "ecc6f4f1-c89b-4dce-a20b-a330641c5b0b",
"uuid_short": "ecc6f4f1",
"name": "lambda-core",
"hostname": "lambda-core.blackmesa.example.com",
"template_name": "Ubuntu 24.04",
"template_icon_url": "https://img.icons8.com/color/48/ubuntu.png",
"windows": false
}
The ticket's external portal URL. Use it for actions or attachment types unavailable in the panel.
"https://clients.advinservers.com/viewticket.php?tid=NQX-482913&c=Hx7kQ2Rm"
The conversation, oldest first, and only where it was asked for.