cURL
curl --request POST \
--url https://api.example.com/attachments \
--header 'Authorization: <authorization>' \
--header 'Content-Type: application/json' \
--data '
{
"gameId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"fileName": "<string>",
"fileSize": 104857600,
"playerId": "<string>"
}
'import requests
url = "https://api.example.com/attachments"
payload = {
"gameId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"fileName": "<string>",
"fileSize": 104857600,
"playerId": "<string>"
}
headers = {
"Authorization": "<authorization>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<authorization>', 'Content-Type': 'application/json'},
body: JSON.stringify({
gameId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
fileName: '<string>',
fileSize: 104857600,
playerId: '<string>'
})
};
fetch('https://api.example.com/attachments', 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://api.example.com/attachments",
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([
'gameId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'fileName' => '<string>',
'fileSize' => 104857600,
'playerId' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"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 := "https://api.example.com/attachments"
payload := strings.NewReader("{\n \"gameId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"fileName\": \"<string>\",\n \"fileSize\": 104857600,\n \"playerId\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<authorization>")
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("https://api.example.com/attachments")
.header("Authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"gameId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"fileName\": \"<string>\",\n \"fileSize\": 104857600,\n \"playerId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/attachments")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<authorization>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"gameId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"fileName\": \"<string>\",\n \"fileSize\": 104857600,\n \"playerId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"attachmentId": "<string>",
"uploadUrl": "<string>",
"uploadMethod": "PUT",
"uploadHeaders": {},
"uploadExpiresInSeconds": 1
}Authenticated endpoints (API key)
Post attachments
Generate a pre-signed upload URL for a ticket attachment. Upload the file with an HTTP PUT request to the returned URL, then pass the attachment ID in the POST /tickets request.
POST
/
attachments
cURL
curl --request POST \
--url https://api.example.com/attachments \
--header 'Authorization: <authorization>' \
--header 'Content-Type: application/json' \
--data '
{
"gameId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"fileName": "<string>",
"fileSize": 104857600,
"playerId": "<string>"
}
'import requests
url = "https://api.example.com/attachments"
payload = {
"gameId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"fileName": "<string>",
"fileSize": 104857600,
"playerId": "<string>"
}
headers = {
"Authorization": "<authorization>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<authorization>', 'Content-Type': 'application/json'},
body: JSON.stringify({
gameId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
fileName: '<string>',
fileSize: 104857600,
playerId: '<string>'
})
};
fetch('https://api.example.com/attachments', 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://api.example.com/attachments",
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([
'gameId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'fileName' => '<string>',
'fileSize' => 104857600,
'playerId' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"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 := "https://api.example.com/attachments"
payload := strings.NewReader("{\n \"gameId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"fileName\": \"<string>\",\n \"fileSize\": 104857600,\n \"playerId\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<authorization>")
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("https://api.example.com/attachments")
.header("Authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"gameId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"fileName\": \"<string>\",\n \"fileSize\": 104857600,\n \"playerId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/attachments")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<authorization>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"gameId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"fileName\": \"<string>\",\n \"fileSize\": 104857600,\n \"playerId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"attachmentId": "<string>",
"uploadUrl": "<string>",
"uploadMethod": "PUT",
"uploadHeaders": {},
"uploadExpiresInSeconds": 1
}Headers
Bearer token API key
Body
application/json
Minimum string length:
1Available options:
image/svg+xml, image/png, image/jpeg, image/gif, application/pdf, video/mp4, video/quicktime, text/plain, application/zip, application/vnd.rar Size of the file in bytes. Maximum allowed size is 200 MB.
Required range:
0 < x <= 209715200Optional player identifier to associate with the uploaded attachment.
Minimum string length:
1Response
200 - application/json
Attachment upload instructions
Attachment identifier to be used in POST /tickets. Represents the uploaded file key.
Pre-signed URL for uploading the file.
HTTP method to use for the upload request.
Available options:
PUT Headers that must be included when uploading the file. Provide them exactly as returned to ensure the URL signature matches.
Show child attributes
Show child attributes
Number of seconds the signed upload URL remains valid.
Required range:
x > 0