MENU navbar-image

Introduction

This documentation aims to provide all the information you need to work with our API.

In order to access the API for a server (guild), you will either need to have the "API" permission for that server or be an administrator and that server must have premium status.

Authenticating requests

To authenticate requests, include an Authorization header with the value "Bearer {YOUR_AUTH_KEY}".

All authenticated endpoints are marked with a requires authentication badge in the documentation below.

You can retrieve your token by visiting your dashboard and clicking Generate API token.

Channel

Endpoints for interacting with guild channels.

Send a message to a channel.

requires authentication

Sends a message to a specific channel in the guild. Supports text channels, forum channels (creates a thread), and thread channels (via webhook). When a message_id is provided, the existing message is edited instead of sending a new one.

Example request:
curl --request POST \
    "https://ticketeer.bot/api/v1/guild/919722116696391721/channel/1441604990945853500" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"username\": \"Foo\",
    \"avatar_url\": \"https:\\/\\/example.com\\/avatar.png\",
    \"thread_name\": \"Support Request\",
    \"content\": \"Hello, world!\",
    \"flags\": 0
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/channel/1441604990945853500"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "username": "Foo",
    "avatar_url": "https:\/\/example.com\/avatar.png",
    "thread_name": "Support Request",
    "content": "Hello, world!",
    "flags": 0
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/guild/{guild_id}/channel/{channel_id}

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

channel_id   integer     

The ID of the channel. Example: 1441604990945853500

Body Parameters

username   string  optional    

Override the default username (sends as webhook) Example: Foo

avatar_url   string  optional    

Override the default avatar URL (sends as webhook) Example: https://example.com/avatar.png

thread_name   string  optional    

Thread name, required for forum channels Example: Support Request

content   string  optional    

The message content, up to 2000 characters Example: Hello, world!

tts   boolean  optional    

Whether the message is text-to-speech

allowed_mentions   object  optional    

Allowed mentions for the message

embeds   object  optional    

Array of embed objects to include in the message, up to 10

components   object  optional    

Array of message component objects to include

flags   integer  optional    

Message flags combined as a bitfield Example: 0

applied_tags   object  optional    

Array of tag IDs to apply to a forum thread

poll   object  optional    

A poll object to include in the message

Update a message in a channel.

requires authentication

Updates a message in a specific channel in the guild.

Example request:
curl --request POST \
    "https://ticketeer.bot/api/v1/guild/919722116696391721/channel/1441604990945853500/architecto" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"username\": \"Foo\",
    \"avatar_url\": \"https:\\/\\/example.com\\/avatar.png\",
    \"thread_name\": \"Support Request\",
    \"content\": \"Hello, world!\",
    \"flags\": 0
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/channel/1441604990945853500/architecto"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "username": "Foo",
    "avatar_url": "https:\/\/example.com\/avatar.png",
    "thread_name": "Support Request",
    "content": "Hello, world!",
    "flags": 0
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/guild/{guild_id}/channel/{channel_id}/{message_id}

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

channel_id   integer     

The ID of the channel. Example: 1441604990945853500

message_id   string     

The ID of the message. Example: architecto

Body Parameters

username   string  optional    

Override the default username (sends as webhook) Example: Foo

avatar_url   string  optional    

Override the default avatar URL (sends as webhook) Example: https://example.com/avatar.png

thread_name   string  optional    

Thread name, required for forum channels Example: Support Request

content   string  optional    

The message content, up to 2000 characters Example: Hello, world!

tts   boolean  optional    

Whether the message is text-to-speech

allowed_mentions   object  optional    

Allowed mentions for the message

embeds   object  optional    

Array of embed objects to include in the message, up to 10

components   object  optional    

Array of message component objects to include

flags   integer  optional    

Message flags combined as a bitfield Example: 0

applied_tags   object  optional    

Array of tag IDs to apply to a forum thread

poll   object  optional    

A poll object to include in the message

Send a custom message to a channel.

requires authentication

Sends a custom message to a specific channel in the guild. When a message_id is provided, the existing message is edited instead.

Example request:
curl --request POST \
    "https://ticketeer.bot/api/v1/guild/919722116696391721/message/architecto/1441604990945853500" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"username\": \"Foo\",
    \"avatar_url\": \"https:\\/\\/example.com\\/avatar.png\",
    \"thread_name\": \"Hello World\"
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/message/architecto/1441604990945853500"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "username": "Foo",
    "avatar_url": "https:\/\/example.com\/avatar.png",
    "thread_name": "Hello World"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/guild/{guild_id}/message/{custom_message_id}/{channel_id}

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

custom_message_id   string     

The ID of the custom message. Example: architecto

channel_id   integer     

The ID of the channel. Example: 1441604990945853500

Body Parameters

username   string  optional    

Override the default username (sends as webhook) Example: Foo

avatar_url   string  optional    

Override the default avatar URL (sends as webhook) Example: https://example.com/avatar.png

thread_name   string  optional    

Thread name, required for forum channels Example: Hello World

context   object  optional    

Context variables to pass to the custom message template

Update a custom message in a channel.

requires authentication

Updates a custom message in a specific channel in the guild.

Example request:
curl --request POST \
    "https://ticketeer.bot/api/v1/guild/919722116696391721/message/architecto/1441604990945853500/architecto" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"username\": \"Foo\",
    \"avatar_url\": \"https:\\/\\/example.com\\/avatar.png\",
    \"thread_name\": \"Hello World\"
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/message/architecto/1441604990945853500/architecto"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "username": "Foo",
    "avatar_url": "https:\/\/example.com\/avatar.png",
    "thread_name": "Hello World"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/guild/{guild_id}/message/{custom_message_id}/{channel_id}/{message_id}

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

custom_message_id   string     

The ID of the custom message. Example: architecto

channel_id   integer     

The ID of the channel. Example: 1441604990945853500

message_id   string     

The ID of the message. Example: architecto

Body Parameters

username   string  optional    

Override the default username (sends as webhook) Example: Foo

avatar_url   string  optional    

Override the default avatar URL (sends as webhook) Example: https://example.com/avatar.png

thread_name   string  optional    

Thread name, required for forum channels Example: Hello World

context   object  optional    

Context variables to pass to the custom message template

Guild

Endpoints for managing guilds.

Get guild.

requires authentication

Returns details for a specific guild.

Example request:
curl --request GET \
    --get "https://ticketeer.bot/api/v1/guild/919722116696391721" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200, The guild):


{
    "id": "55793577411921281",
    "name": "My Server",
    "premium": "497438090693991608",
    "premium_ends_at": "2024-01-01T00:00:00.000000Z",
    "joined_at": "2024-01-01T00:00:00.000000Z"
}
 

Request      

GET api/v1/guild/{guild_id}

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

Response

Response Fields

id   string     

The guild snowflake ID Example: 55793577411921281

name   string     

The guild name Example: My Server

premium   boolean     

Whether the guild has premium Example: 497438090693991608

premium_ends_at   string     

When premium expires

joined_at   string     

When the bot joined the guild

Sync guild channels, roles, emotes and permissions.

requires authentication

Triggers a sync for the specified guild, including channels, roles, permissions, and tickets.

Example request:
curl --request POST \
    "https://ticketeer.bot/api/v1/guild/919722116696391721/sync" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/sync"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/v1/guild/{guild_id}/sync

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

List ticket groups.

requires authentication

Returns all ticket groups for the specified guild.

Example request:
curl --request GET \
    --get "https://ticketeer.bot/api/v1/guild/919722116696391721/groups" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/groups"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200, List of ticket groups):


{
    "data": [
        {
            "id": "15258525566832323",
            "name": "Support",
            "count": 5,
            "opened_channel_id": "128435968862947728",
            "closed_category_id": "88209794417838251",
            "locked_category_id": "601802710173251669",
            "assigned_category_id": "687586057983101282",
            "transcript_channel_id": "228673812115871548",
            "form_channel_id": "327381138273615035",
            "feedback_channel_id": "209039635214366242"
        }
    ],
    "current_page": 1,
    "first_page_url": "/?page=1",
    "from": 1,
    "last_page": 1,
    "last_page_url": "/?page=1",
    "next_page_url": null,
    "path": "/",
    "per_page": 30,
    "prev_page_url": null,
    "to": 1,
    "total": 1
}
 

Request      

GET api/v1/guild/{guild_id}/groups

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

Response

Response Fields

data   object[]     

The list of items for the current page.

id   string     

The ticket group snowflake ID Example: 15258525566832323

name   string     

The ticket group name Example: Support

count   number     

Number of tickets in this group Example: 5

opened_channel_id   string     

The channel ID where new tickets are opened Example: 128435968862947728

closed_category_id   string     

The category ID where closed tickets are moved Example: 88209794417838251

locked_category_id   string     

The category ID where locked tickets are moved Example: 601802710173251669

assigned_category_id   string     

The category ID where assigned tickets are moved Example: 687586057983101282

transcript_channel_id   string     

The channel ID where transcripts are posted Example: 228673812115871548

form_channel_id   string     

The channel ID where form results are posted Example: 327381138273615035

feedback_channel_id   string     

The channel ID where feedback results are posted Example: 209039635214366242

current_page   integer     

The current page number.

first_page_url   string     

URL to the first page.

from   integer     

The index of the first item on this page.

last_page   integer     

The last page number.

last_page_url   string     

URL to the last page.

next_page_url   string     

URL to the next page.

path   string     

The base URL for the paginator.

per_page   integer     

The number of items per page.

prev_page_url   string     

URL to the previous page.

to   integer     

The index of the last item on this page.

total   integer     

The total number of items.

List ticket panels.

requires authentication

Returns all ticket panels for the specified guild.

Example request:
curl --request GET \
    --get "https://ticketeer.bot/api/v1/guild/919722116696391721/panels" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/panels"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200, List of panels):


{
    "data": [
        {
            "id": "614387262076741075",
            "name": "Hello, world!"
        }
    ],
    "current_page": 1,
    "first_page_url": "/?page=1",
    "from": 1,
    "last_page": 1,
    "last_page_url": "/?page=1",
    "next_page_url": null,
    "path": "/",
    "per_page": 30,
    "prev_page_url": null,
    "to": 1,
    "total": 1
}
 

Request      

GET api/v1/guild/{guild_id}/panels

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

Response

Response Fields

data   object[]     

The list of items for the current page.

id   string     

The ticket panel snowflake ID Example: 614387262076741075

name   string     

The ticket panel name Example: Hello, world!

current_page   integer     

The current page number.

first_page_url   string     

URL to the first page.

from   integer     

The index of the first item on this page.

last_page   integer     

The last page number.

last_page_url   string     

URL to the last page.

next_page_url   string     

URL to the next page.

path   string     

The base URL for the paginator.

per_page   integer     

The number of items per page.

prev_page_url   string     

URL to the previous page.

to   integer     

The index of the last item on this page.

total   integer     

The total number of items.

Get guild ticket stats.

requires authentication

Returns the ticket statistics for the specified guild.

Example request:
curl --request GET \
    --get "https://ticketeer.bot/api/v1/guild/919722116696391721/stats" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/stats"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (503):

Show headers
cache-control: no-cache, private
content-type: application/json
 

{
    "success": false,
    "status": 503,
    "message": "Service Unavailable"
}
 

Request      

GET api/v1/guild/{guild_id}/stats

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

List custom messages.

requires authentication

Returns all custom messages for the specified guild.

Example request:
curl --request GET \
    --get "https://ticketeer.bot/api/v1/guild/919722116696391721/messages" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/messages"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200, List of custom messages):


{
    "data": [
        {
            "id": "942619398559589765",
            "name": "Hello, world!"
        }
    ],
    "current_page": 1,
    "first_page_url": "/?page=1",
    "from": 1,
    "last_page": 1,
    "last_page_url": "/?page=1",
    "next_page_url": null,
    "path": "/",
    "per_page": 30,
    "prev_page_url": null,
    "to": 1,
    "total": 1
}
 

Request      

GET api/v1/guild/{guild_id}/messages

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

Response

Response Fields

data   object[]     

The list of items for the current page.

id   string     

The custom message identifier Example: 942619398559589765

name   string     

The custom message name Example: Hello, world!

current_page   integer     

The current page number.

first_page_url   string     

URL to the first page.

from   integer     

The index of the first item on this page.

last_page   integer     

The last page number.

last_page_url   string     

URL to the last page.

next_page_url   string     

URL to the next page.

path   string     

The base URL for the paginator.

per_page   integer     

The number of items per page.

prev_page_url   string     

URL to the previous page.

to   integer     

The index of the last item on this page.

total   integer     

The total number of items.

Create ticket.

requires authentication

Creates a new ticket in the specified guild. Uses the provided ticket group or falls back to the guild's default.

Example request:
curl --request POST \
    "https://ticketeer.bot/api/v1/guild/919722116696391721/ticket" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"user_id\": \"849383430663776372\",
    \"message\": \"Hello, world!\",
    \"ticket_group_id\": \"673578029833227305\",
    \"anonymous\": false,
    \"form\": [
        {
            \"title\": \"Hello, world?\",
            \"value\": \"Hello, world!\",
            \"type\": \"type\"
        }
    ]
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/ticket"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "user_id": "849383430663776372",
    "message": "Hello, world!",
    "ticket_group_id": "673578029833227305",
    "anonymous": false,
    "form": [
        {
            "title": "Hello, world?",
            "value": "Hello, world!",
            "type": "type"
        }
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200, The ticket created):


{
    "id": "794595332412030915",
    "uuid": "value",
    "group_id": "140706535403942175",
    "guild_id": "872699925952937323",
    "channel_id": "956795287029476605",
    "channel_parent_id": "855087671247023056",
    "owner_id": "663441123753353427",
    "assigned_id": "76996045643953904",
    "number": 1,
    "status": "open",
    "rating": 1,
    "priority": 1,
    "form": [
        {
            "title": "Hello, world?",
            "value": "Hello, world!",
            "type": "type"
        }
    ],
    "closed_reason": "value",
    "created_at": "2024-01-01T00:00:00.000000Z",
    "opened_at": "2024-01-01T00:00:00.000000Z",
    "closed_at": "2024-01-01T00:00:00.000000Z",
    "deleted_at": "2024-01-01T00:00:00.000000Z",
    "last_activity": "value"
}
 

Request      

POST api/v1/guild/{guild_id}/ticket

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

Body Parameters

user_id   string     

The ID of the user opening the ticket Example: 849383430663776372

message   string  optional    

Additional message the new ticket will include Example: Hello, world!

ticket_group_id   string  optional    

The ID of the ticket group the new ticket will belong to Example: 673578029833227305

form   object[]  optional    

The form data for the new ticket

title   string  optional    

The title of the form field Example: Hello, world?

value   object  optional    

The value of the form field Example: Hello, world!

type   integer  optional    

Follows the component type defined in the ticket group Example: type

anonymous   boolean  optional    

Whether the ticket should be created anonymously (the owner of the API token) defaults to false unless the token has the anonymous ability) Example: false

Response

Response Fields

id   string     

The ticket snowflake ID Example: 794595332412030915

uuid   string     

The ticket UUID (also the encryption key for the ticket assets)

group_id   string     

The ticket group snowflake ID Example: 140706535403942175

guild_id   string     

The guild snowflake ID Example: 872699925952937323

channel_id   string     

The ticket channel snowflake ID Example: 956795287029476605

channel_parent_id   string     

The ticket channel parent snowflake ID Example: 855087671247023056

owner_id   string     

The ticket owner snowflake ID Example: 663441123753353427

assigned_id   string     

The assigned user snowflake ID Example: 76996045643953904

number   number     

The ticket number within the guild Example: 1

status   string     

The ticket status Example: open

rating   number     

The ticket rating

priority   number     

The ticket priority level Example: 1

form   object[]     

The form data for the ticket

title   string     

The title of the form field Example: Hello, world?

value   string     

The value of the form field Example: Hello, world!

type   integer     

Follows the component type defined in the ticket group Example: type

closed_reason   string     

The reason the ticket was closed

created_at   string     

When the ticket was created

opened_at   string     

When the ticket was last opened

closed_at   string     

When the ticket was closed

deleted_at   string     

When the ticket was deleted

last_activity   string     

When the ticket last had activity

Ticket

Get ticket.

requires authentication

Returns details for a specific ticket.

Example request:
curl --request GET \
    --get "https://ticketeer.bot/api/v1/guild/919722116696391721/ticket/1437562719124598487" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/ticket/1437562719124598487"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200, The ticket):


{
    "id": "794595332412030915",
    "uuid": "value",
    "group_id": "140706535403942175",
    "guild_id": "872699925952937323",
    "channel_id": "956795287029476605",
    "channel_parent_id": "855087671247023056",
    "owner_id": "663441123753353427",
    "assigned_id": "76996045643953904",
    "number": 1,
    "status": "open",
    "rating": 1,
    "priority": 1,
    "form": [
        {
            "title": "Hello, world?",
            "value": "Hello, world!",
            "type": "type"
        }
    ],
    "closed_reason": "value",
    "created_at": "2024-01-01T00:00:00.000000Z",
    "opened_at": "2024-01-01T00:00:00.000000Z",
    "closed_at": "2024-01-01T00:00:00.000000Z",
    "deleted_at": "2024-01-01T00:00:00.000000Z",
    "last_activity": "value"
}
 

Request      

GET api/v1/guild/{guild_id}/ticket/{ticket_id}

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

ticket_id   integer     

The ID of the ticket. Example: 1437562719124598487

Response

Response Fields

id   string     

The ticket snowflake ID Example: 794595332412030915

uuid   string     

The ticket UUID (also the encryption key for the ticket assets)

group_id   string     

The ticket group snowflake ID Example: 140706535403942175

guild_id   string     

The guild snowflake ID Example: 872699925952937323

channel_id   string     

The ticket channel snowflake ID Example: 956795287029476605

channel_parent_id   string     

The ticket channel parent snowflake ID Example: 855087671247023056

owner_id   string     

The ticket owner snowflake ID Example: 663441123753353427

assigned_id   string     

The assigned user snowflake ID Example: 76996045643953904

number   number     

The ticket number within the guild Example: 1

status   string     

The ticket status Example: open

rating   number     

The ticket rating

priority   number     

The ticket priority level Example: 1

form   object[]     

The form data for the ticket

title   string     

The title of the form field Example: Hello, world?

value   string     

The value of the form field Example: Hello, world!

type   integer     

Follows the component type defined in the ticket group Example: type

closed_reason   string     

The reason the ticket was closed

created_at   string     

When the ticket was created

opened_at   string     

When the ticket was last opened

closed_at   string     

When the ticket was closed

deleted_at   string     

When the ticket was deleted

last_activity   string     

When the ticket last had activity

Delete ticket.

requires authentication

Closes the ticket and deletes the associated channel.

Example request:
curl --request DELETE \
    "https://ticketeer.bot/api/v1/guild/919722116696391721/ticket/1437562719124598487" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"reason\": \"Hello, world!\"
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/ticket/1437562719124598487"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "reason": "Hello, world!"
};

fetch(url, {
    method: "DELETE",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

DELETE api/v1/guild/{guild_id}/ticket/{ticket_id}

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

ticket_id   integer     

The ID of the ticket. Example: 1437562719124598487

Body Parameters

reason   string  optional    

Reason for performing the action on the ticket Example: Hello, world!

anonymous   boolean  optional    

Perform action as bot, defaults to false

Change ticket group.

requires authentication

Moves a ticket to a different ticket group. The target group must use the same mode (thread or channel) as the current group.

Example request:
curl --request POST \
    "https://ticketeer.bot/api/v1/guild/919722116696391721/ticket/1437562719124598487/move" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"ticket_group_id\": \"352305528480315549\",
    \"reason\": \"Hello, world!\"
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/ticket/1437562719124598487/move"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "ticket_group_id": "352305528480315549",
    "reason": "Hello, world!"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/guild/{guild_id}/ticket/{ticket_id}/move

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

ticket_id   integer     

The ID of the ticket. Example: 1437562719124598487

Body Parameters

ticket_group_id   string     

The ID of the target ticket group Example: 352305528480315549

reason   string  optional    

Reason for changing the ticket group Example: Hello, world!

Open ticket.

requires authentication

Reopens a closed ticket.

Example request:
curl --request POST \
    "https://ticketeer.bot/api/v1/guild/919722116696391721/ticket/1437562719124598487/open" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"reason\": \"Hello, world!\"
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/ticket/1437562719124598487/open"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "reason": "Hello, world!"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/guild/{guild_id}/ticket/{ticket_id}/open

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

ticket_id   integer     

The ID of the ticket. Example: 1437562719124598487

Body Parameters

reason   string  optional    

Reason for performing the action on the ticket Example: Hello, world!

anonymous   boolean  optional    

Perform action as bot, defaults to false

Close ticket.

requires authentication

Closes an open ticket.

Example request:
curl --request POST \
    "https://ticketeer.bot/api/v1/guild/919722116696391721/ticket/1437562719124598487/close" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"reason\": \"Hello, world!\"
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/ticket/1437562719124598487/close"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "reason": "Hello, world!"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/guild/{guild_id}/ticket/{ticket_id}/close

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

ticket_id   integer     

The ID of the ticket. Example: 1437562719124598487

Body Parameters

reason   string  optional    

Reason for performing the action on the ticket Example: Hello, world!

anonymous   boolean  optional    

Perform action as bot, defaults to false

Assign ticket.

requires authentication

Assigns a user to the ticket.

Example request:
curl --request POST \
    "https://ticketeer.bot/api/v1/guild/919722116696391721/ticket/1437562719124598487/assign" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"user_id\": \"601082144459178129\",
    \"reason\": \"Hello, world!\"
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/ticket/1437562719124598487/assign"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "user_id": "601082144459178129",
    "reason": "Hello, world!"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/guild/{guild_id}/ticket/{ticket_id}/assign

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

ticket_id   integer     

The ID of the ticket. Example: 1437562719124598487

Body Parameters

user_id   string     

The ID of the user to perform the action on Example: 601082144459178129

reason   string  optional    

Reason for performing the action on the ticket/user Example: Hello, world!

anonymous   boolean  optional    

Perform action as bot, defaults to false

Unassign ticket.

requires authentication

Removes the assigned user from the ticket.

Example request:
curl --request POST \
    "https://ticketeer.bot/api/v1/guild/919722116696391721/ticket/1437562719124598487/unassign" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"user_id\": \"601082144459178129\",
    \"reason\": \"Hello, world!\"
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/ticket/1437562719124598487/unassign"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "user_id": "601082144459178129",
    "reason": "Hello, world!"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/guild/{guild_id}/ticket/{ticket_id}/unassign

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

ticket_id   integer     

The ID of the ticket. Example: 1437562719124598487

Body Parameters

user_id   string     

The ID of the user to perform the action on Example: 601082144459178129

reason   string  optional    

Reason for performing the action on the ticket/user Example: Hello, world!

anonymous   boolean  optional    

Perform action as bot, defaults to false

Set ticket expiry.

requires authentication

Sets or updates the expiry time for a ticket.

Example request:
curl --request POST \
    "https://ticketeer.bot/api/v1/guild/919722116696391721/ticket/1437562719124598487/expire" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"expire_at\": \"2026-03-01T00:00:00Z\",
    \"reason\": \"Hello, world!\"
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/ticket/1437562719124598487/expire"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "expire_at": "2026-03-01T00:00:00Z",
    "reason": "Hello, world!"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/guild/{guild_id}/ticket/{ticket_id}/expire

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

ticket_id   integer     

The ID of the ticket. Example: 1437562719124598487

Body Parameters

expire_at   string     

The expiry timestamp (ISO 8601) or null to remove expiry Example: 2026-03-01T00:00:00Z

clearable   boolean  optional    

Whether user activity (sending messages) can clear the expiry

reason   string  optional    

Reason for setting the ticket expiry Example: Hello, world!

anonymous   boolean  optional    

Perform action as bot, defaults to false

Set ticket eternal.

requires authentication

Sets or updates the eternal status for a ticket, preventing automatic expiry.

Example request:
curl --request POST \
    "https://ticketeer.bot/api/v1/guild/919722116696391721/ticket/1437562719124598487/eternal" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"reason\": \"Hello, world!\"
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/ticket/1437562719124598487/eternal"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "reason": "Hello, world!"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/guild/{guild_id}/ticket/{ticket_id}/eternal

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

ticket_id   integer     

The ID of the ticket. Example: 1437562719124598487

Body Parameters

eternal   boolean  optional    

Whether the ticket is eternal (never expires)

reason   string  optional    

Reason for setting the ticket as eternal Example: Hello, world!

anonymous   boolean  optional    

Perform action as bot, defaults to false

Lock ticket.

requires authentication

Locks a ticket to prevent further messages.

Example request:
curl --request POST \
    "https://ticketeer.bot/api/v1/guild/919722116696391721/ticket/1437562719124598487/lock" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"reason\": \"Hello, world!\"
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/ticket/1437562719124598487/lock"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "reason": "Hello, world!"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/guild/{guild_id}/ticket/{ticket_id}/lock

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

ticket_id   integer     

The ID of the ticket. Example: 1437562719124598487

Body Parameters

reason   string  optional    

Reason for performing the action on the ticket Example: Hello, world!

anonymous   boolean  optional    

Perform action as bot, defaults to false

Unlock ticket.

requires authentication

Unlocks a previously locked ticket.

Example request:
curl --request POST \
    "https://ticketeer.bot/api/v1/guild/919722116696391721/ticket/1437562719124598487/unlock" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"reason\": \"Hello, world!\"
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/ticket/1437562719124598487/unlock"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "reason": "Hello, world!"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/guild/{guild_id}/ticket/{ticket_id}/unlock

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

ticket_id   integer     

The ID of the ticket. Example: 1437562719124598487

Body Parameters

reason   string  optional    

Reason for performing the action on the ticket Example: Hello, world!

anonymous   boolean  optional    

Perform action as bot, defaults to false

Rename ticket.

requires authentication

Updates the name of a ticket. If the name is empty, the current name is cleared.

Example request:
curl --request POST \
    "https://ticketeer.bot/api/v1/guild/919722116696391721/ticket/1437562719124598487/name" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"hello-world\",
    \"reason\": \"Hello, world!\"
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/ticket/1437562719124598487/name"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "hello-world",
    "reason": "Hello, world!"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/guild/{guild_id}/ticket/{ticket_id}/name

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

ticket_id   integer     

The ID of the ticket. Example: 1437562719124598487

Body Parameters

name   string  optional    

The new name for the ticket, optional to set to default Example: hello-world

reason   string  optional    

Reason for naming the ticket Example: Hello, world!

anonymous   boolean  optional    

Rename as bot, defaults to false

Create ticket notes thread.

requires authentication

Creates a private notes thread attached to the ticket.

Example request:
curl --request POST \
    "https://ticketeer.bot/api/v1/guild/919722116696391721/ticket/1437562719124598487/notes" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"hello-world\",
    \"reason\": \"Hello, world!\"
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/ticket/1437562719124598487/notes"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "hello-world",
    "reason": "Hello, world!"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/guild/{guild_id}/ticket/{ticket_id}/notes

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

ticket_id   integer     

The ID of the ticket. Example: 1437562719124598487

Body Parameters

name   string  optional    

The new name for the ticket, optional to set to default Example: hello-world

reason   string  optional    

Reason for naming the ticket Example: Hello, world!

anonymous   boolean  optional    

Rename as bot, defaults to false

Add user to ticket notes thread.

requires authentication

Adds a guild member to the ticket's private notes thread.

Example request:
curl --request POST \
    "https://ticketeer.bot/api/v1/guild/919722116696391721/ticket/1437562719124598487/notes/add" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"user_id\": \"601082144459178129\",
    \"reason\": \"Hello, world!\"
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/ticket/1437562719124598487/notes/add"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "user_id": "601082144459178129",
    "reason": "Hello, world!"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/guild/{guild_id}/ticket/{ticket_id}/notes/add

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

ticket_id   integer     

The ID of the ticket. Example: 1437562719124598487

Body Parameters

user_id   string     

The ID of the user to perform the action on Example: 601082144459178129

reason   string  optional    

Reason for performing the action on the ticket/user Example: Hello, world!

anonymous   boolean  optional    

Perform action as bot, defaults to false

Remove user from ticket notes thread.

requires authentication

Removes a guild member from the ticket's private notes thread.

Example request:
curl --request POST \
    "https://ticketeer.bot/api/v1/guild/919722116696391721/ticket/1437562719124598487/notes/remove" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"user_id\": \"601082144459178129\",
    \"reason\": \"Hello, world!\"
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/ticket/1437562719124598487/notes/remove"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "user_id": "601082144459178129",
    "reason": "Hello, world!"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/guild/{guild_id}/ticket/{ticket_id}/notes/remove

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

ticket_id   integer     

The ID of the ticket. Example: 1437562719124598487

Body Parameters

user_id   string     

The ID of the user to perform the action on Example: 601082144459178129

reason   string  optional    

Reason for performing the action on the ticket/user Example: Hello, world!

anonymous   boolean  optional    

Perform action as bot, defaults to false

Set ticket priority.

requires authentication

Updates the priority level of a ticket.

Example request:
curl --request POST \
    "https://ticketeer.bot/api/v1/guild/919722116696391721/ticket/1437562719124598487/priority" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"priority\": 1,
    \"reason\": \"Hello, world!\"
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/ticket/1437562719124598487/priority"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "priority": 1,
    "reason": "Hello, world!"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/guild/{guild_id}/ticket/{ticket_id}/priority

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

ticket_id   integer     

The ID of the ticket. Example: 1437562719124598487

Body Parameters

priority   integer     

The priority level index Example: 1

reason   string  optional    

Reason for changing the priority Example: Hello, world!

anonymous   boolean  optional    

Change priority as bot, defaults to false

Get ticket transcript.

requires authentication

Returns the full transcript for a ticket, including channel and thread messages with attachments.

Example request:
curl --request GET \
    --get "https://ticketeer.bot/api/v1/guild/919722116696391721/ticket/1437562719124598487/transcript" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/ticket/1437562719124598487/transcript"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200, The ticket transcript):


{
    "guild": {
        "id": "123456789",
        "name": "example",
        "premium": false,
        "roles": [
            {
                "id": "123456789",
                "name": "example",
                "color": "value",
                "position": 1,
                "hoist": false
            }
        ],
        "channels": [
            {
                "id": "123456789",
                "name": "example",
                "type": 0,
                "parent_id": "123456789",
                "position": 1
            }
        ]
    },
    "group": {
        "id": "123456789",
        "name": "example",
        "form_title": "value",
        "form_fields": [
            []
        ],
        "schedule": [],
        "schedule_timezone": "value",
        "priority_levels": [
            {
                "label": "value",
                "color": "value"
            }
        ],
        "rating_levels": [
            {
                "label": "value",
                "color": "value"
            }
        ]
    },
    "ticket": {
        "id": "123456789",
        "uuid": "value",
        "status": "value",
        "owner_id": "123456789",
        "channel_id": "123456789",
        "thread_id": "123456789",
        "assigned_id": "123456789",
        "number": 1,
        "priority": 1,
        "rating": 1,
        "private": false,
        "form": [],
        "locked_at": "2024-01-01T00:00:00.000000Z",
        "opened_at": "2024-01-01T00:00:00.000000Z",
        "closed_reason": "value",
        "closed_at": "2024-01-01T00:00:00.000000Z",
        "created_at": "2024-01-01T00:00:00.000000Z",
        "deleted_at": "2024-01-01T00:00:00.000000Z",
        "transcript_saved_at": "2024-01-01T00:00:00.000000Z"
    },
    "channel_members": [
        {
            "id": "123456789",
            "avatar": "https://example.com/image.png",
            "name": "example",
            "bot": false,
            "joined_at": "2024-01-01T00:00:00.000000Z",
            "roles": [],
            "rating": 1
        }
    ],
    "channel_messages": [],
    "channel_message_attachments": [
        {
            "id": "123456789",
            "name": "example",
            "hash": "value",
            "mime": "value",
            "size": 1,
            "url": "https://example.com/image.png",
            "encrypted": false
        }
    ],
    "thread_members": [
        {
            "id": "123456789",
            "avatar": "https://example.com/image.png",
            "name": "example",
            "bot": false,
            "joined_at": "2024-01-01T00:00:00.000000Z",
            "roles": [],
            "rating": 1
        }
    ],
    "thread_messages": [],
    "thread_message_attachments": [
        {
            "id": "123456789",
            "name": "example",
            "hash": "value",
            "mime": "value",
            "size": 1,
            "url": "https://example.com/image.png",
            "encrypted": false
        }
    ]
}
 

Request      

GET api/v1/guild/{guild_id}/ticket/{ticket_id}/transcript

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

ticket_id   integer     

The ID of the ticket. Example: 1437562719124598487

Response

Response Fields

guild   object     
id   string     
name   string     
premium   boolean     
roles   object[]     
id   string     
name   string     
color   string     
position   number     
hoist   boolean     
channels   object[]     
id   string     
name   string     
type   number     
parent_id   string     
position   number     
group   object     
id   string     
name   string     
form_title   string     
form_fields   object[]     
schedule   object     
mo   array     
tu   array     
we   array     
th   array     
fr   array     
sa   array     
su   array     
schedule_timezone   string     
priority_levels   object[]     
label   string     

Must not be greater than 80 characters.

description   string     

Must not be greater than 100 characters.

emoji   string     

Must not be greater than 100 characters.

default   boolean     
color   string     
_uid   string     
rating_levels   object[]     
label   string     

Must not be greater than 80 characters.

description   string     

Must not be greater than 100 characters.

emoji   string     

Must not be greater than 100 characters.

default   boolean     
color   string     
_uid   string     
ticket   object     
id   string     
uuid   string     
status   string     
owner_id   string     
channel_id   string     
thread_id   string     
assigned_id   string     
number   number     
priority   number     
rating   number     
private   boolean     
form   array     
locked_at   string     
opened_at   string     
closed_reason   string     
closed_at   string     
created_at   string     
deleted_at   string     
transcript_saved_at   string     
channel_members   object[]     
id   string     
avatar   string     
name   string     
bot   boolean     
joined_at   string     
roles   array     
rating   number     
channel_messages   array     
channel_message_attachments   object[]     
id   string     
name   string     
hash   string     
mime   string     
size   number     
url   string     
encrypted   boolean     
thread_members   object[]     
id   string     
avatar   string     
name   string     
bot   boolean     
joined_at   string     
roles   array     
rating   number     
thread_messages   array     
thread_message_attachments   object[]     
id   string     
name   string     
hash   string     
mime   string     
size   number     
url   string     
encrypted   boolean     

Save ticket transcript.

requires authentication

Saves the current state of a ticket's transcript and returns the updated transcript data.

Example request:
curl --request POST \
    "https://ticketeer.bot/api/v1/guild/919722116696391721/ticket/1437562719124598487/save" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/ticket/1437562719124598487/save"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/v1/guild/{guild_id}/ticket/{ticket_id}/save

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

ticket_id   integer     

The ID of the ticket. Example: 1437562719124598487

Send ticket transcript to a user.

requires authentication

Queues the ticket transcript to be sent to the specified user via DM.

Example request:
curl --request POST \
    "https://ticketeer.bot/api/v1/guild/919722116696391721/ticket/1437562719124598487/send/1305908865287852092" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/ticket/1437562719124598487/send/1305908865287852092"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/v1/guild/{guild_id}/ticket/{ticket_id}/send/{user_id}

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

ticket_id   integer     

The ID of the ticket. Example: 1437562719124598487

user_id   integer     

The ID of the user. Example: 1305908865287852092

Change ticket owner.

requires authentication

Transfers ownership of a ticket to another user.

Example request:
curl --request POST \
    "https://ticketeer.bot/api/v1/guild/919722116696391721/ticket/1437562719124598487/owner" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"user_id\": \"601082144459178129\",
    \"reason\": \"Hello, world!\"
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/ticket/1437562719124598487/owner"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "user_id": "601082144459178129",
    "reason": "Hello, world!"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/guild/{guild_id}/ticket/{ticket_id}/owner

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

ticket_id   integer     

The ID of the ticket. Example: 1437562719124598487

Body Parameters

user_id   string     

The ID of the user to perform the action on Example: 601082144459178129

reason   string  optional    

Reason for performing the action on the ticket/user Example: Hello, world!

anonymous   boolean  optional    

Perform action as bot, defaults to false

Add user to ticket.

requires authentication

Adds a guild member to the ticket, granting them access to the ticket channel.

Example request:
curl --request POST \
    "https://ticketeer.bot/api/v1/guild/919722116696391721/ticket/1437562719124598487/add" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"user_id\": \"601082144459178129\",
    \"reason\": \"Hello, world!\"
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/ticket/1437562719124598487/add"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "user_id": "601082144459178129",
    "reason": "Hello, world!"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/guild/{guild_id}/ticket/{ticket_id}/add

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

ticket_id   integer     

The ID of the ticket. Example: 1437562719124598487

Body Parameters

user_id   string     

The ID of the user to perform the action on Example: 601082144459178129

reason   string  optional    

Reason for performing the action on the ticket/user Example: Hello, world!

anonymous   boolean  optional    

Perform action as bot, defaults to false

Remove user from ticket.

requires authentication

Removes a guild member from the ticket, revoking their access to the ticket channel.

Example request:
curl --request POST \
    "https://ticketeer.bot/api/v1/guild/919722116696391721/ticket/1437562719124598487/remove" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"user_id\": \"601082144459178129\",
    \"reason\": \"Hello, world!\"
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/ticket/1437562719124598487/remove"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "user_id": "601082144459178129",
    "reason": "Hello, world!"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/guild/{guild_id}/ticket/{ticket_id}/remove

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

ticket_id   integer     

The ID of the ticket. Example: 1437562719124598487

Body Parameters

user_id   string     

The ID of the user to perform the action on Example: 601082144459178129

reason   string  optional    

Reason for performing the action on the ticket/user Example: Hello, world!

anonymous   boolean  optional    

Perform action as bot, defaults to false

Send ticket transcript to a user.

requires authentication

Queues the ticket transcript to be sent to the specified user via DM.

Example request:
curl --request POST \
    "https://ticketeer.bot/api/v1/guild/919722116696391721/channel/1441604990945853500/ticket/send/1305908865287852092" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/channel/1441604990945853500/ticket/send/1305908865287852092"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/v1/guild/{guild_id}/channel/{channel}/ticket/send/{user_id}

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

channel   integer     

The channel. Example: 1441604990945853500

user_id   integer     

The ID of the user. Example: 1305908865287852092

Ticket (from channel)

Get ticket.

requires authentication

Returns details for a specific ticket.

Example request:
curl --request GET \
    --get "https://ticketeer.bot/api/v1/guild/919722116696391721/channel/1441604990945853500/ticket" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/channel/1441604990945853500/ticket"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200, The ticket):


{
    "id": "794595332412030915",
    "uuid": "value",
    "group_id": "140706535403942175",
    "guild_id": "872699925952937323",
    "channel_id": "956795287029476605",
    "channel_parent_id": "855087671247023056",
    "owner_id": "663441123753353427",
    "assigned_id": "76996045643953904",
    "number": 1,
    "status": "open",
    "rating": 1,
    "priority": 1,
    "form": [
        {
            "title": "Hello, world?",
            "value": "Hello, world!",
            "type": "type"
        }
    ],
    "closed_reason": "value",
    "created_at": "2024-01-01T00:00:00.000000Z",
    "opened_at": "2024-01-01T00:00:00.000000Z",
    "closed_at": "2024-01-01T00:00:00.000000Z",
    "deleted_at": "2024-01-01T00:00:00.000000Z",
    "last_activity": "value"
}
 

Request      

GET api/v1/guild/{guild_id}/channel/{channel_id}/ticket

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

channel_id   integer     

The ID of the channel. Example: 1441604990945853500

Response

Response Fields

id   string     

The ticket snowflake ID Example: 794595332412030915

uuid   string     

The ticket UUID (also the encryption key for the ticket assets)

group_id   string     

The ticket group snowflake ID Example: 140706535403942175

guild_id   string     

The guild snowflake ID Example: 872699925952937323

channel_id   string     

The ticket channel snowflake ID Example: 956795287029476605

channel_parent_id   string     

The ticket channel parent snowflake ID Example: 855087671247023056

owner_id   string     

The ticket owner snowflake ID Example: 663441123753353427

assigned_id   string     

The assigned user snowflake ID Example: 76996045643953904

number   number     

The ticket number within the guild Example: 1

status   string     

The ticket status Example: open

rating   number     

The ticket rating

priority   number     

The ticket priority level Example: 1

form   object[]     

The form data for the ticket

title   string     

The title of the form field Example: Hello, world?

value   string     

The value of the form field Example: Hello, world!

type   integer     

Follows the component type defined in the ticket group Example: type

closed_reason   string     

The reason the ticket was closed

created_at   string     

When the ticket was created

opened_at   string     

When the ticket was last opened

closed_at   string     

When the ticket was closed

deleted_at   string     

When the ticket was deleted

last_activity   string     

When the ticket last had activity

Delete ticket.

requires authentication

Closes the ticket and deletes the associated channel.

Example request:
curl --request DELETE \
    "https://ticketeer.bot/api/v1/guild/919722116696391721/channel/1441604990945853500/ticket" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"reason\": \"Hello, world!\"
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/channel/1441604990945853500/ticket"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "reason": "Hello, world!"
};

fetch(url, {
    method: "DELETE",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

DELETE api/v1/guild/{guild_id}/channel/{channel_id}/ticket

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

channel_id   integer     

The ID of the channel. Example: 1441604990945853500

Body Parameters

reason   string  optional    

Reason for performing the action on the ticket Example: Hello, world!

anonymous   boolean  optional    

Perform action as bot, defaults to false

Change ticket group.

requires authentication

Moves a ticket to a different ticket group. The target group must use the same mode (thread or channel) as the current group.

Example request:
curl --request POST \
    "https://ticketeer.bot/api/v1/guild/919722116696391721/channel/1441604990945853500/ticket/move" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"ticket_group_id\": \"352305528480315549\",
    \"reason\": \"Hello, world!\"
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/channel/1441604990945853500/ticket/move"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "ticket_group_id": "352305528480315549",
    "reason": "Hello, world!"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/guild/{guild_id}/channel/{channel_id}/ticket/move

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

channel_id   integer     

The ID of the channel. Example: 1441604990945853500

Body Parameters

ticket_group_id   string     

The ID of the target ticket group Example: 352305528480315549

reason   string  optional    

Reason for changing the ticket group Example: Hello, world!

Open ticket.

requires authentication

Reopens a closed ticket.

Example request:
curl --request POST \
    "https://ticketeer.bot/api/v1/guild/919722116696391721/channel/1441604990945853500/ticket/open" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"reason\": \"Hello, world!\"
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/channel/1441604990945853500/ticket/open"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "reason": "Hello, world!"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/guild/{guild_id}/channel/{channel_id}/ticket/open

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

channel_id   integer     

The ID of the channel. Example: 1441604990945853500

Body Parameters

reason   string  optional    

Reason for performing the action on the ticket Example: Hello, world!

anonymous   boolean  optional    

Perform action as bot, defaults to false

Close ticket.

requires authentication

Closes an open ticket.

Example request:
curl --request POST \
    "https://ticketeer.bot/api/v1/guild/919722116696391721/channel/1441604990945853500/ticket/close" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"reason\": \"Hello, world!\"
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/channel/1441604990945853500/ticket/close"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "reason": "Hello, world!"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/guild/{guild_id}/channel/{channel_id}/ticket/close

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

channel_id   integer     

The ID of the channel. Example: 1441604990945853500

Body Parameters

reason   string  optional    

Reason for performing the action on the ticket Example: Hello, world!

anonymous   boolean  optional    

Perform action as bot, defaults to false

Assign ticket.

requires authentication

Assigns a user to the ticket.

Example request:
curl --request POST \
    "https://ticketeer.bot/api/v1/guild/919722116696391721/channel/1441604990945853500/ticket/assign" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"user_id\": \"601082144459178129\",
    \"reason\": \"Hello, world!\"
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/channel/1441604990945853500/ticket/assign"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "user_id": "601082144459178129",
    "reason": "Hello, world!"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/guild/{guild_id}/channel/{channel_id}/ticket/assign

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

channel_id   integer     

The ID of the channel. Example: 1441604990945853500

Body Parameters

user_id   string     

The ID of the user to perform the action on Example: 601082144459178129

reason   string  optional    

Reason for performing the action on the ticket/user Example: Hello, world!

anonymous   boolean  optional    

Perform action as bot, defaults to false

Unassign ticket.

requires authentication

Removes the assigned user from the ticket.

Example request:
curl --request POST \
    "https://ticketeer.bot/api/v1/guild/919722116696391721/channel/1441604990945853500/ticket/unassign" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"user_id\": \"601082144459178129\",
    \"reason\": \"Hello, world!\"
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/channel/1441604990945853500/ticket/unassign"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "user_id": "601082144459178129",
    "reason": "Hello, world!"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/guild/{guild_id}/channel/{channel_id}/ticket/unassign

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

channel_id   integer     

The ID of the channel. Example: 1441604990945853500

Body Parameters

user_id   string     

The ID of the user to perform the action on Example: 601082144459178129

reason   string  optional    

Reason for performing the action on the ticket/user Example: Hello, world!

anonymous   boolean  optional    

Perform action as bot, defaults to false

Set ticket expiry.

requires authentication

Sets or updates the expiry time for a ticket.

Example request:
curl --request POST \
    "https://ticketeer.bot/api/v1/guild/919722116696391721/channel/1441604990945853500/ticket/expire" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"expire_at\": \"2026-03-01T00:00:00Z\",
    \"reason\": \"Hello, world!\"
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/channel/1441604990945853500/ticket/expire"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "expire_at": "2026-03-01T00:00:00Z",
    "reason": "Hello, world!"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/guild/{guild_id}/channel/{channel_id}/ticket/expire

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

channel_id   integer     

The ID of the channel. Example: 1441604990945853500

Body Parameters

expire_at   string     

The expiry timestamp (ISO 8601) or null to remove expiry Example: 2026-03-01T00:00:00Z

clearable   boolean  optional    

Whether user activity (sending messages) can clear the expiry

reason   string  optional    

Reason for setting the ticket expiry Example: Hello, world!

anonymous   boolean  optional    

Perform action as bot, defaults to false

Set ticket eternal.

requires authentication

Sets or updates the eternal status for a ticket, preventing automatic expiry.

Example request:
curl --request POST \
    "https://ticketeer.bot/api/v1/guild/919722116696391721/channel/1441604990945853500/ticket/eternal" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"reason\": \"Hello, world!\"
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/channel/1441604990945853500/ticket/eternal"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "reason": "Hello, world!"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/guild/{guild_id}/channel/{channel_id}/ticket/eternal

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

channel_id   integer     

The ID of the channel. Example: 1441604990945853500

Body Parameters

eternal   boolean  optional    

Whether the ticket is eternal (never expires)

reason   string  optional    

Reason for setting the ticket as eternal Example: Hello, world!

anonymous   boolean  optional    

Perform action as bot, defaults to false

Lock ticket.

requires authentication

Locks a ticket to prevent further messages.

Example request:
curl --request POST \
    "https://ticketeer.bot/api/v1/guild/919722116696391721/channel/1441604990945853500/ticket/lock" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"reason\": \"Hello, world!\"
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/channel/1441604990945853500/ticket/lock"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "reason": "Hello, world!"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/guild/{guild_id}/channel/{channel_id}/ticket/lock

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

channel_id   integer     

The ID of the channel. Example: 1441604990945853500

Body Parameters

reason   string  optional    

Reason for performing the action on the ticket Example: Hello, world!

anonymous   boolean  optional    

Perform action as bot, defaults to false

Unlock ticket.

requires authentication

Unlocks a previously locked ticket.

Example request:
curl --request POST \
    "https://ticketeer.bot/api/v1/guild/919722116696391721/channel/1441604990945853500/ticket/unlock" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"reason\": \"Hello, world!\"
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/channel/1441604990945853500/ticket/unlock"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "reason": "Hello, world!"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/guild/{guild_id}/channel/{channel_id}/ticket/unlock

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

channel_id   integer     

The ID of the channel. Example: 1441604990945853500

Body Parameters

reason   string  optional    

Reason for performing the action on the ticket Example: Hello, world!

anonymous   boolean  optional    

Perform action as bot, defaults to false

Rename ticket.

requires authentication

Updates the name of a ticket. If the name is empty, the current name is cleared.

Example request:
curl --request POST \
    "https://ticketeer.bot/api/v1/guild/919722116696391721/channel/1441604990945853500/ticket/name" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"hello-world\",
    \"reason\": \"Hello, world!\"
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/channel/1441604990945853500/ticket/name"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "hello-world",
    "reason": "Hello, world!"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/guild/{guild_id}/channel/{channel_id}/ticket/name

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

channel_id   integer     

The ID of the channel. Example: 1441604990945853500

Body Parameters

name   string  optional    

The new name for the ticket, optional to set to default Example: hello-world

reason   string  optional    

Reason for naming the ticket Example: Hello, world!

anonymous   boolean  optional    

Rename as bot, defaults to false

Create ticket notes thread.

requires authentication

Creates a private notes thread attached to the ticket.

Example request:
curl --request POST \
    "https://ticketeer.bot/api/v1/guild/919722116696391721/channel/1441604990945853500/ticket/notes" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"hello-world\",
    \"reason\": \"Hello, world!\"
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/channel/1441604990945853500/ticket/notes"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "hello-world",
    "reason": "Hello, world!"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/guild/{guild_id}/channel/{channel_id}/ticket/notes

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

channel_id   integer     

The ID of the channel. Example: 1441604990945853500

Body Parameters

name   string  optional    

The new name for the ticket, optional to set to default Example: hello-world

reason   string  optional    

Reason for naming the ticket Example: Hello, world!

anonymous   boolean  optional    

Rename as bot, defaults to false

Add user to ticket notes thread.

requires authentication

Adds a guild member to the ticket's private notes thread.

Example request:
curl --request POST \
    "https://ticketeer.bot/api/v1/guild/919722116696391721/channel/1441604990945853500/ticket/notes/add" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"user_id\": \"601082144459178129\",
    \"reason\": \"Hello, world!\"
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/channel/1441604990945853500/ticket/notes/add"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "user_id": "601082144459178129",
    "reason": "Hello, world!"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/guild/{guild_id}/channel/{channel_id}/ticket/notes/add

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

channel_id   integer     

The ID of the channel. Example: 1441604990945853500

Body Parameters

user_id   string     

The ID of the user to perform the action on Example: 601082144459178129

reason   string  optional    

Reason for performing the action on the ticket/user Example: Hello, world!

anonymous   boolean  optional    

Perform action as bot, defaults to false

Remove user from ticket notes thread.

requires authentication

Removes a guild member from the ticket's private notes thread.

Example request:
curl --request POST \
    "https://ticketeer.bot/api/v1/guild/919722116696391721/channel/1441604990945853500/ticket/notes/remove" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"user_id\": \"601082144459178129\",
    \"reason\": \"Hello, world!\"
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/channel/1441604990945853500/ticket/notes/remove"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "user_id": "601082144459178129",
    "reason": "Hello, world!"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/guild/{guild_id}/channel/{channel_id}/ticket/notes/remove

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

channel_id   integer     

The ID of the channel. Example: 1441604990945853500

Body Parameters

user_id   string     

The ID of the user to perform the action on Example: 601082144459178129

reason   string  optional    

Reason for performing the action on the ticket/user Example: Hello, world!

anonymous   boolean  optional    

Perform action as bot, defaults to false

Set ticket priority.

requires authentication

Updates the priority level of a ticket.

Example request:
curl --request POST \
    "https://ticketeer.bot/api/v1/guild/919722116696391721/channel/1441604990945853500/ticket/priority" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"priority\": 1,
    \"reason\": \"Hello, world!\"
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/channel/1441604990945853500/ticket/priority"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "priority": 1,
    "reason": "Hello, world!"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/guild/{guild_id}/channel/{channel_id}/ticket/priority

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

channel_id   integer     

The ID of the channel. Example: 1441604990945853500

Body Parameters

priority   integer     

The priority level index Example: 1

reason   string  optional    

Reason for changing the priority Example: Hello, world!

anonymous   boolean  optional    

Change priority as bot, defaults to false

Get ticket transcript.

requires authentication

Returns the full transcript for a ticket, including channel and thread messages with attachments.

Example request:
curl --request GET \
    --get "https://ticketeer.bot/api/v1/guild/919722116696391721/channel/1441604990945853500/ticket/transcript" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/channel/1441604990945853500/ticket/transcript"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200, The ticket transcript):


{
    "guild": {
        "id": "123456789",
        "name": "example",
        "premium": false,
        "roles": [
            {
                "id": "123456789",
                "name": "example",
                "color": "value",
                "position": 1,
                "hoist": false
            }
        ],
        "channels": [
            {
                "id": "123456789",
                "name": "example",
                "type": 0,
                "parent_id": "123456789",
                "position": 1
            }
        ]
    },
    "group": {
        "id": "123456789",
        "name": "example",
        "form_title": "value",
        "form_fields": [
            []
        ],
        "schedule": [],
        "schedule_timezone": "value",
        "priority_levels": [
            {
                "label": "value",
                "color": "value"
            }
        ],
        "rating_levels": [
            {
                "label": "value",
                "color": "value"
            }
        ]
    },
    "ticket": {
        "id": "123456789",
        "uuid": "value",
        "status": "value",
        "owner_id": "123456789",
        "channel_id": "123456789",
        "thread_id": "123456789",
        "assigned_id": "123456789",
        "number": 1,
        "priority": 1,
        "rating": 1,
        "private": false,
        "form": [],
        "locked_at": "2024-01-01T00:00:00.000000Z",
        "opened_at": "2024-01-01T00:00:00.000000Z",
        "closed_reason": "value",
        "closed_at": "2024-01-01T00:00:00.000000Z",
        "created_at": "2024-01-01T00:00:00.000000Z",
        "deleted_at": "2024-01-01T00:00:00.000000Z",
        "transcript_saved_at": "2024-01-01T00:00:00.000000Z"
    },
    "channel_members": [
        {
            "id": "123456789",
            "avatar": "https://example.com/image.png",
            "name": "example",
            "bot": false,
            "joined_at": "2024-01-01T00:00:00.000000Z",
            "roles": [],
            "rating": 1
        }
    ],
    "channel_messages": [],
    "channel_message_attachments": [
        {
            "id": "123456789",
            "name": "example",
            "hash": "value",
            "mime": "value",
            "size": 1,
            "url": "https://example.com/image.png",
            "encrypted": false
        }
    ],
    "thread_members": [
        {
            "id": "123456789",
            "avatar": "https://example.com/image.png",
            "name": "example",
            "bot": false,
            "joined_at": "2024-01-01T00:00:00.000000Z",
            "roles": [],
            "rating": 1
        }
    ],
    "thread_messages": [],
    "thread_message_attachments": [
        {
            "id": "123456789",
            "name": "example",
            "hash": "value",
            "mime": "value",
            "size": 1,
            "url": "https://example.com/image.png",
            "encrypted": false
        }
    ]
}
 

Request      

GET api/v1/guild/{guild_id}/channel/{channel_id}/ticket/transcript

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

channel_id   integer     

The ID of the channel. Example: 1441604990945853500

Response

Response Fields

guild   object     
id   string     
name   string     
premium   boolean     
roles   object[]     
id   string     
name   string     
color   string     
position   number     
hoist   boolean     
channels   object[]     
id   string     
name   string     
type   number     
parent_id   string     
position   number     
group   object     
id   string     
name   string     
form_title   string     
form_fields   object[]     
schedule   object     
mo   array     
tu   array     
we   array     
th   array     
fr   array     
sa   array     
su   array     
schedule_timezone   string     
priority_levels   object[]     
label   string     

Must not be greater than 80 characters.

description   string     

Must not be greater than 100 characters.

emoji   string     

Must not be greater than 100 characters.

default   boolean     
color   string     
_uid   string     
rating_levels   object[]     
label   string     

Must not be greater than 80 characters.

description   string     

Must not be greater than 100 characters.

emoji   string     

Must not be greater than 100 characters.

default   boolean     
color   string     
_uid   string     
ticket   object     
id   string     
uuid   string     
status   string     
owner_id   string     
channel_id   string     
thread_id   string     
assigned_id   string     
number   number     
priority   number     
rating   number     
private   boolean     
form   array     
locked_at   string     
opened_at   string     
closed_reason   string     
closed_at   string     
created_at   string     
deleted_at   string     
transcript_saved_at   string     
channel_members   object[]     
id   string     
avatar   string     
name   string     
bot   boolean     
joined_at   string     
roles   array     
rating   number     
channel_messages   array     
channel_message_attachments   object[]     
id   string     
name   string     
hash   string     
mime   string     
size   number     
url   string     
encrypted   boolean     
thread_members   object[]     
id   string     
avatar   string     
name   string     
bot   boolean     
joined_at   string     
roles   array     
rating   number     
thread_messages   array     
thread_message_attachments   object[]     
id   string     
name   string     
hash   string     
mime   string     
size   number     
url   string     
encrypted   boolean     

Save ticket transcript.

requires authentication

Saves the current state of a ticket's transcript and returns the updated transcript data.

Example request:
curl --request POST \
    "https://ticketeer.bot/api/v1/guild/919722116696391721/channel/1441604990945853500/ticket/save" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/channel/1441604990945853500/ticket/save"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST api/v1/guild/{guild_id}/channel/{channel_id}/ticket/save

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

channel_id   integer     

The ID of the channel. Example: 1441604990945853500

Change ticket owner.

requires authentication

Transfers ownership of a ticket to another user.

Example request:
curl --request POST \
    "https://ticketeer.bot/api/v1/guild/919722116696391721/channel/1441604990945853500/ticket/owner" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"user_id\": \"601082144459178129\",
    \"reason\": \"Hello, world!\"
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/channel/1441604990945853500/ticket/owner"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "user_id": "601082144459178129",
    "reason": "Hello, world!"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/guild/{guild_id}/channel/{channel_id}/ticket/owner

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

channel_id   integer     

The ID of the channel. Example: 1441604990945853500

Body Parameters

user_id   string     

The ID of the user to perform the action on Example: 601082144459178129

reason   string  optional    

Reason for performing the action on the ticket/user Example: Hello, world!

anonymous   boolean  optional    

Perform action as bot, defaults to false

Add user to ticket.

requires authentication

Adds a guild member to the ticket, granting them access to the ticket channel.

Example request:
curl --request POST \
    "https://ticketeer.bot/api/v1/guild/919722116696391721/channel/1441604990945853500/ticket/add" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"user_id\": \"601082144459178129\",
    \"reason\": \"Hello, world!\"
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/channel/1441604990945853500/ticket/add"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "user_id": "601082144459178129",
    "reason": "Hello, world!"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/guild/{guild_id}/channel/{channel_id}/ticket/add

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

channel_id   integer     

The ID of the channel. Example: 1441604990945853500

Body Parameters

user_id   string     

The ID of the user to perform the action on Example: 601082144459178129

reason   string  optional    

Reason for performing the action on the ticket/user Example: Hello, world!

anonymous   boolean  optional    

Perform action as bot, defaults to false

Remove user from ticket.

requires authentication

Removes a guild member from the ticket, revoking their access to the ticket channel.

Example request:
curl --request POST \
    "https://ticketeer.bot/api/v1/guild/919722116696391721/channel/1441604990945853500/ticket/remove" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"user_id\": \"601082144459178129\",
    \"reason\": \"Hello, world!\"
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/919722116696391721/channel/1441604990945853500/ticket/remove"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "user_id": "601082144459178129",
    "reason": "Hello, world!"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST api/v1/guild/{guild_id}/channel/{channel_id}/ticket/remove

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

guild_id   integer     

The ID of the guild. Example: 919722116696391721

channel_id   integer     

The ID of the channel. Example: 1441604990945853500

Body Parameters

user_id   string     

The ID of the user to perform the action on Example: 601082144459178129

reason   string  optional    

Reason for performing the action on the ticket/user Example: Hello, world!

anonymous   boolean  optional    

Perform action as bot, defaults to false

User

Endpoints for the authenticated user.

Get current user.

requires authentication

Returns the currently authenticated user's information.

Example request:
curl --request GET \
    --get "https://ticketeer.bot/api/v1/user/me" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ticketeer.bot/api/v1/user/me"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200, The authenticated user):


{
    "id": "434786759219205113",
    "name": "John",
    "username": "john",
    "discriminator": "0001",
    "avatar": "https://cdn.discordapp.com/avatars/123/abc.png",
    "locale": "en",
    "bot": false,
    "verified": "46846352293203166",
    "joined_at": "2024-01-01T00:00:00.000000Z"
}
 

Request      

GET api/v1/user/me

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

Response

Response Fields

id   string     

The user snowflake ID Example: 434786759219205113

name   string     

The user display name Example: John

username   string     

The username Example: john

discriminator   string     

The user discriminator Example: 0001

avatar   string     

The user avatar URL Example: https://cdn.discordapp.com/avatars/123/abc.png

locale   string     

The user locale Example: en

bot   boolean     

Whether the user is a bot Example: false

verified   boolean     

Whether the user is verified Example: 46846352293203166

joined_at   string     

When the user joined

List guilds.

requires authentication

Returns all guilds accessible by the authenticated user. Filters out suspended and deleted guilds.

Example request:
curl --request GET \
    --get "https://ticketeer.bot/api/v1/user/me/guilds" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://ticketeer.bot/api/v1/user/me/guilds"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200, List of guilds):


[
    {
        "id": "55793577411921281",
        "name": "My Server",
        "premium": "497438090693991608",
        "premium_ends_at": "2024-01-01T00:00:00.000000Z",
        "joined_at": "2024-01-01T00:00:00.000000Z"
    }
]
 

Request      

GET api/v1/user/me/guilds

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

Response

Response Fields

id   string     

The guild snowflake ID Example: 55793577411921281

name   string     

The guild name Example: My Server

premium   boolean     

Whether the guild has premium Example: 497438090693991608

premium_ends_at   string     

When premium expires

joined_at   string     

When the bot joined the guild