Tickets
Delete a ticket
Permanently delete a ticket from Decimal by its ID in the source helpdesk.
This does not delete the ticket in the helpdesk. If it still exists there, the next sync imports it into Decimal again. Delete it in the helpdesk first.
DELETE
/
v0
/
tickets
/
{source}
/
{external_id}
Delete a ticket
curl --request DELETE \
--url https://api.getdecimal.ai/v0/tickets/{source}/{external_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.getdecimal.ai/v0/tickets/{source}/{external_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.delete(url, headers=headers)
print(response.text)const options = {method: 'DELETE', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.getdecimal.ai/v0/tickets/{source}/{external_id}', 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.getdecimal.ai/v0/tickets/{source}/{external_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.getdecimal.ai/v0/tickets/{source}/{external_id}"
req, _ := http.NewRequest("DELETE", url, nil)
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.delete("https://api.getdecimal.ai/v0/tickets/{source}/{external_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getdecimal.ai/v0/tickets/{source}/{external_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"error": {
"code": "unauthorized",
"message": "Invalid or expired API token"
}
}{
"error": {
"code": "forbidden",
"message": "Insufficient permissions"
}
}{
"error": {
"code": "not_found",
"message": "Resource not found"
}
}{
"error": {
"code": "rate_limited",
"message": "Too many requests",
"retryable": true
}
}{
"error": {
"code": "internal_error",
"message": "An internal error occurred",
"retryable": true
}
}Authorizations
API token with sk-de- prefix.
Created in the Decimal dashboard under Settings → API Tokens.
Path Parameters
Helpdesk the ticket was synced from, lowercase (e.g. plain, zendesk).
Ticket ID in the source helpdesk (for Plain, the thread ID).
Response
Ticket deleted.
⌘I
Delete a ticket
curl --request DELETE \
--url https://api.getdecimal.ai/v0/tickets/{source}/{external_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.getdecimal.ai/v0/tickets/{source}/{external_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.delete(url, headers=headers)
print(response.text)const options = {method: 'DELETE', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.getdecimal.ai/v0/tickets/{source}/{external_id}', 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.getdecimal.ai/v0/tickets/{source}/{external_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.getdecimal.ai/v0/tickets/{source}/{external_id}"
req, _ := http.NewRequest("DELETE", url, nil)
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.delete("https://api.getdecimal.ai/v0/tickets/{source}/{external_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getdecimal.ai/v0/tickets/{source}/{external_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"error": {
"code": "unauthorized",
"message": "Invalid or expired API token"
}
}{
"error": {
"code": "forbidden",
"message": "Insufficient permissions"
}
}{
"error": {
"code": "not_found",
"message": "Resource not found"
}
}{
"error": {
"code": "rate_limited",
"message": "Too many requests",
"retryable": true
}
}{
"error": {
"code": "internal_error",
"message": "An internal error occurred",
"retryable": true
}
}