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/1241080059528347678/channel/1430817781229813802" \
    --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/1241080059528347678/channel/1430817781229813802"
);

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: 1241080059528347678

channel_id   integer     

The ID of the channel. Example: 1430817781229813802

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/1241080059528347678/channel/1430817781229813802/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/1241080059528347678/channel/1430817781229813802/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: 1241080059528347678

channel_id   integer     

The ID of the channel. Example: 1430817781229813802

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/1241080059528347678/message/architecto/1430817781229813802" \
    --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/1241080059528347678/message/architecto/1430817781229813802"
);

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: 1241080059528347678

custom_message_id   string     

The ID of the custom message. Example: architecto

channel_id   integer     

The ID of the channel. Example: 1430817781229813802

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/1241080059528347678/message/architecto/1430817781229813802/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/1241080059528347678/message/architecto/1430817781229813802/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: 1241080059528347678

custom_message_id   string     

The ID of the custom message. Example: architecto

channel_id   integer     

The ID of the channel. Example: 1430817781229813802

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/1241080059528347678" \
    --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/1241080059528347678"
);

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": "571707999220136938",
    "name": "My Server",
    "premium": "672951452783139208",
    "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: 1241080059528347678

Response

Response Fields

id   string     

The guild snowflake ID Example: 571707999220136938

name   string     

The guild name Example: My Server

premium   boolean     

Whether the guild has premium Example: 672951452783139208

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/1241080059528347678/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/1241080059528347678/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: 1241080059528347678

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/1241080059528347678/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/1241080059528347678/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": "120128186398635144",
            "name": "Support",
            "count": 5
        }
    ],
    "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: 1241080059528347678

Response

Response Fields

data   object[]     

The list of items for the current page.

id   string     

The ticket group snowflake ID Example: 120128186398635144

name   string     

The ticket group name Example: Support

count   number     

Number of tickets in this group Example: 5

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/1241080059528347678/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/1241080059528347678/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": "151295371372419517",
            "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: 1241080059528347678

Response

Response Fields

data   object[]     

The list of items for the current page.

id   string     

The ticket panel snowflake ID Example: 151295371372419517

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/1241080059528347678/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/1241080059528347678/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: 1241080059528347678

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/1241080059528347678/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/1241080059528347678/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": "338909650515657603",
            "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: 1241080059528347678

Response

Response Fields

data   object[]     

The list of items for the current page.

id   string     

The custom message identifier Example: 338909650515657603

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/1241080059528347678/ticket" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"user_id\": \"529288558333275270\",
    \"message\": \"Hello, world!\",
    \"ticket_group_id\": \"465448238625702123\",
    \"anonymous\": false,
    \"form\": [
        {
            \"type\": \"type\",
            \"title\": \"Hello, world?\",
            \"value\": \"Hello, world!\"
        }
    ]
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/1241080059528347678/ticket"
);

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

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

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

Example response (200, The ticket created):


{
    "id": "991009560223081930",
    "uuid": "value",
    "group_id": "375163139685838977",
    "guild_id": "720658030022783112",
    "channel_id": "923713927840348980",
    "owner_id": "261106055648330815",
    "assigned_id": "596762699057745444",
    "number": 1,
    "status": "open",
    "rating": 1,
    "priority": 1,
    "form": [
        {
            "type": "type",
            "title": "Hello, world?",
            "value": "Hello, world!"
        }
    ],
    "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: 1241080059528347678

Body Parameters

user_id   string     

The ID of the user opening the ticket Example: 529288558333275270

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: 465448238625702123

form   object[]  optional    

The form data for the new ticket

type   integer  optional    

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

title   string  optional    

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

value   object  optional    

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

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: 991009560223081930

uuid   string     

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

group_id   string     

The ticket group snowflake ID Example: 375163139685838977

guild_id   string     

The guild snowflake ID Example: 720658030022783112

channel_id   string     

The ticket channel snowflake ID Example: 923713927840348980

owner_id   string     

The ticket owner snowflake ID Example: 261106055648330815

assigned_id   string     

The assigned user snowflake ID Example: 596762699057745444

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

type   integer     

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

title   string     

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

value   string     

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

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/1241080059528347678/ticket/1419244951635763635" \
    --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/1241080059528347678/ticket/1419244951635763635"
);

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": "991009560223081930",
    "uuid": "value",
    "group_id": "375163139685838977",
    "guild_id": "720658030022783112",
    "channel_id": "923713927840348980",
    "owner_id": "261106055648330815",
    "assigned_id": "596762699057745444",
    "number": 1,
    "status": "open",
    "rating": 1,
    "priority": 1,
    "form": [
        {
            "type": "type",
            "title": "Hello, world?",
            "value": "Hello, world!"
        }
    ],
    "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: 1241080059528347678

ticket_id   integer     

The ID of the ticket. Example: 1419244951635763635

Response

Response Fields

id   string     

The ticket snowflake ID Example: 991009560223081930

uuid   string     

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

group_id   string     

The ticket group snowflake ID Example: 375163139685838977

guild_id   string     

The guild snowflake ID Example: 720658030022783112

channel_id   string     

The ticket channel snowflake ID Example: 923713927840348980

owner_id   string     

The ticket owner snowflake ID Example: 261106055648330815

assigned_id   string     

The assigned user snowflake ID Example: 596762699057745444

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

type   integer     

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

title   string     

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

value   string     

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

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/1241080059528347678/ticket/1419244951635763635" \
    --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/1241080059528347678/ticket/1419244951635763635"
);

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: 1241080059528347678

ticket_id   integer     

The ID of the ticket. Example: 1419244951635763635

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/1241080059528347678/ticket/1419244951635763635/move" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"ticket_group_id\": \"165411793664369316\",
    \"reason\": \"Hello, world!\"
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/1241080059528347678/ticket/1419244951635763635/move"
);

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

let body = {
    "ticket_group_id": "165411793664369316",
    "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: 1241080059528347678

ticket_id   integer     

The ID of the ticket. Example: 1419244951635763635

Body Parameters

ticket_group_id   string     

The ID of the target ticket group Example: 165411793664369316

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/1241080059528347678/ticket/1419244951635763635/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/1241080059528347678/ticket/1419244951635763635/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: 1241080059528347678

ticket_id   integer     

The ID of the ticket. Example: 1419244951635763635

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/1241080059528347678/ticket/1419244951635763635/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/1241080059528347678/ticket/1419244951635763635/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: 1241080059528347678

ticket_id   integer     

The ID of the ticket. Example: 1419244951635763635

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/1241080059528347678/ticket/1419244951635763635/assign" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"user_id\": \"897219148574363269\",
    \"reason\": \"Hello, world!\"
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/1241080059528347678/ticket/1419244951635763635/assign"
);

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

let body = {
    "user_id": "897219148574363269",
    "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: 1241080059528347678

ticket_id   integer     

The ID of the ticket. Example: 1419244951635763635

Body Parameters

user_id   string     

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

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/1241080059528347678/ticket/1419244951635763635/unassign" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"user_id\": \"897219148574363269\",
    \"reason\": \"Hello, world!\"
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/1241080059528347678/ticket/1419244951635763635/unassign"
);

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

let body = {
    "user_id": "897219148574363269",
    "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: 1241080059528347678

ticket_id   integer     

The ID of the ticket. Example: 1419244951635763635

Body Parameters

user_id   string     

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

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/1241080059528347678/ticket/1419244951635763635/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/1241080059528347678/ticket/1419244951635763635/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: 1241080059528347678

ticket_id   integer     

The ID of the ticket. Example: 1419244951635763635

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/1241080059528347678/ticket/1419244951635763635/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/1241080059528347678/ticket/1419244951635763635/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: 1241080059528347678

ticket_id   integer     

The ID of the ticket. Example: 1419244951635763635

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/1241080059528347678/ticket/1419244951635763635/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/1241080059528347678/ticket/1419244951635763635/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: 1241080059528347678

ticket_id   integer     

The ID of the ticket. Example: 1419244951635763635

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/1241080059528347678/ticket/1419244951635763635/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/1241080059528347678/ticket/1419244951635763635/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: 1241080059528347678

ticket_id   integer     

The ID of the ticket. Example: 1419244951635763635

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/1241080059528347678/ticket/1419244951635763635/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/1241080059528347678/ticket/1419244951635763635/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: 1241080059528347678

ticket_id   integer     

The ID of the ticket. Example: 1419244951635763635

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/1241080059528347678/ticket/1419244951635763635/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/1241080059528347678/ticket/1419244951635763635/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: 1241080059528347678

ticket_id   integer     

The ID of the ticket. Example: 1419244951635763635

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/1241080059528347678/ticket/1419244951635763635/notes/add" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"user_id\": \"897219148574363269\",
    \"reason\": \"Hello, world!\"
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/1241080059528347678/ticket/1419244951635763635/notes/add"
);

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

let body = {
    "user_id": "897219148574363269",
    "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: 1241080059528347678

ticket_id   integer     

The ID of the ticket. Example: 1419244951635763635

Body Parameters

user_id   string     

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

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/1241080059528347678/ticket/1419244951635763635/notes/remove" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"user_id\": \"897219148574363269\",
    \"reason\": \"Hello, world!\"
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/1241080059528347678/ticket/1419244951635763635/notes/remove"
);

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

let body = {
    "user_id": "897219148574363269",
    "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: 1241080059528347678

ticket_id   integer     

The ID of the ticket. Example: 1419244951635763635

Body Parameters

user_id   string     

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

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/1241080059528347678/ticket/1419244951635763635/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/1241080059528347678/ticket/1419244951635763635/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: 1241080059528347678

ticket_id   integer     

The ID of the ticket. Example: 1419244951635763635

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/1241080059528347678/ticket/1419244951635763635/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/1241080059528347678/ticket/1419244951635763635/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: 1241080059528347678

ticket_id   integer     

The ID of the ticket. Example: 1419244951635763635

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/1241080059528347678/ticket/1419244951635763635/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/1241080059528347678/ticket/1419244951635763635/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: 1241080059528347678

ticket_id   integer     

The ID of the ticket. Example: 1419244951635763635

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/1241080059528347678/ticket/1419244951635763635/send/1001168331996409856" \
    --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/1241080059528347678/ticket/1419244951635763635/send/1001168331996409856"
);

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: 1241080059528347678

ticket_id   integer     

The ID of the ticket. Example: 1419244951635763635

user_id   integer     

The ID of the user. Example: 1001168331996409856

Change ticket owner.

requires authentication

Transfers ownership of a ticket to another user.

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

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

let body = {
    "user_id": "897219148574363269",
    "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: 1241080059528347678

ticket_id   integer     

The ID of the ticket. Example: 1419244951635763635

Body Parameters

user_id   string     

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

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/1241080059528347678/ticket/1419244951635763635/add" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"user_id\": \"897219148574363269\",
    \"reason\": \"Hello, world!\"
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/1241080059528347678/ticket/1419244951635763635/add"
);

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

let body = {
    "user_id": "897219148574363269",
    "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: 1241080059528347678

ticket_id   integer     

The ID of the ticket. Example: 1419244951635763635

Body Parameters

user_id   string     

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

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/1241080059528347678/ticket/1419244951635763635/remove" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"user_id\": \"897219148574363269\",
    \"reason\": \"Hello, world!\"
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/1241080059528347678/ticket/1419244951635763635/remove"
);

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

let body = {
    "user_id": "897219148574363269",
    "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: 1241080059528347678

ticket_id   integer     

The ID of the ticket. Example: 1419244951635763635

Body Parameters

user_id   string     

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

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/1241080059528347678/channel/1430817781229813802/ticket/send/1001168331996409856" \
    --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/1241080059528347678/channel/1430817781229813802/ticket/send/1001168331996409856"
);

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: 1241080059528347678

channel   integer     

The channel. Example: 1430817781229813802

user_id   integer     

The ID of the user. Example: 1001168331996409856

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/1241080059528347678/channel/1430817781229813802/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/1241080059528347678/channel/1430817781229813802/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": "991009560223081930",
    "uuid": "value",
    "group_id": "375163139685838977",
    "guild_id": "720658030022783112",
    "channel_id": "923713927840348980",
    "owner_id": "261106055648330815",
    "assigned_id": "596762699057745444",
    "number": 1,
    "status": "open",
    "rating": 1,
    "priority": 1,
    "form": [
        {
            "type": "type",
            "title": "Hello, world?",
            "value": "Hello, world!"
        }
    ],
    "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: 1241080059528347678

channel_id   integer     

The ID of the channel. Example: 1430817781229813802

Response

Response Fields

id   string     

The ticket snowflake ID Example: 991009560223081930

uuid   string     

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

group_id   string     

The ticket group snowflake ID Example: 375163139685838977

guild_id   string     

The guild snowflake ID Example: 720658030022783112

channel_id   string     

The ticket channel snowflake ID Example: 923713927840348980

owner_id   string     

The ticket owner snowflake ID Example: 261106055648330815

assigned_id   string     

The assigned user snowflake ID Example: 596762699057745444

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

type   integer     

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

title   string     

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

value   string     

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

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/1241080059528347678/channel/1430817781229813802/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/1241080059528347678/channel/1430817781229813802/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: 1241080059528347678

channel_id   integer     

The ID of the channel. Example: 1430817781229813802

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/1241080059528347678/channel/1430817781229813802/ticket/move" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"ticket_group_id\": \"165411793664369316\",
    \"reason\": \"Hello, world!\"
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/1241080059528347678/channel/1430817781229813802/ticket/move"
);

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

let body = {
    "ticket_group_id": "165411793664369316",
    "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: 1241080059528347678

channel_id   integer     

The ID of the channel. Example: 1430817781229813802

Body Parameters

ticket_group_id   string     

The ID of the target ticket group Example: 165411793664369316

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/1241080059528347678/channel/1430817781229813802/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/1241080059528347678/channel/1430817781229813802/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: 1241080059528347678

channel_id   integer     

The ID of the channel. Example: 1430817781229813802

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/1241080059528347678/channel/1430817781229813802/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/1241080059528347678/channel/1430817781229813802/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: 1241080059528347678

channel_id   integer     

The ID of the channel. Example: 1430817781229813802

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/1241080059528347678/channel/1430817781229813802/ticket/assign" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"user_id\": \"897219148574363269\",
    \"reason\": \"Hello, world!\"
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/1241080059528347678/channel/1430817781229813802/ticket/assign"
);

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

let body = {
    "user_id": "897219148574363269",
    "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: 1241080059528347678

channel_id   integer     

The ID of the channel. Example: 1430817781229813802

Body Parameters

user_id   string     

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

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/1241080059528347678/channel/1430817781229813802/ticket/unassign" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"user_id\": \"897219148574363269\",
    \"reason\": \"Hello, world!\"
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/1241080059528347678/channel/1430817781229813802/ticket/unassign"
);

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

let body = {
    "user_id": "897219148574363269",
    "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: 1241080059528347678

channel_id   integer     

The ID of the channel. Example: 1430817781229813802

Body Parameters

user_id   string     

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

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/1241080059528347678/channel/1430817781229813802/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/1241080059528347678/channel/1430817781229813802/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: 1241080059528347678

channel_id   integer     

The ID of the channel. Example: 1430817781229813802

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/1241080059528347678/channel/1430817781229813802/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/1241080059528347678/channel/1430817781229813802/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: 1241080059528347678

channel_id   integer     

The ID of the channel. Example: 1430817781229813802

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/1241080059528347678/channel/1430817781229813802/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/1241080059528347678/channel/1430817781229813802/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: 1241080059528347678

channel_id   integer     

The ID of the channel. Example: 1430817781229813802

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/1241080059528347678/channel/1430817781229813802/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/1241080059528347678/channel/1430817781229813802/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: 1241080059528347678

channel_id   integer     

The ID of the channel. Example: 1430817781229813802

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/1241080059528347678/channel/1430817781229813802/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/1241080059528347678/channel/1430817781229813802/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: 1241080059528347678

channel_id   integer     

The ID of the channel. Example: 1430817781229813802

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/1241080059528347678/channel/1430817781229813802/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/1241080059528347678/channel/1430817781229813802/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: 1241080059528347678

channel_id   integer     

The ID of the channel. Example: 1430817781229813802

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/1241080059528347678/channel/1430817781229813802/ticket/notes/add" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"user_id\": \"897219148574363269\",
    \"reason\": \"Hello, world!\"
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/1241080059528347678/channel/1430817781229813802/ticket/notes/add"
);

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

let body = {
    "user_id": "897219148574363269",
    "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: 1241080059528347678

channel_id   integer     

The ID of the channel. Example: 1430817781229813802

Body Parameters

user_id   string     

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

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/1241080059528347678/channel/1430817781229813802/ticket/notes/remove" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"user_id\": \"897219148574363269\",
    \"reason\": \"Hello, world!\"
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/1241080059528347678/channel/1430817781229813802/ticket/notes/remove"
);

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

let body = {
    "user_id": "897219148574363269",
    "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: 1241080059528347678

channel_id   integer     

The ID of the channel. Example: 1430817781229813802

Body Parameters

user_id   string     

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

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/1241080059528347678/channel/1430817781229813802/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/1241080059528347678/channel/1430817781229813802/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: 1241080059528347678

channel_id   integer     

The ID of the channel. Example: 1430817781229813802

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/1241080059528347678/channel/1430817781229813802/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/1241080059528347678/channel/1430817781229813802/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: 1241080059528347678

channel_id   integer     

The ID of the channel. Example: 1430817781229813802

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/1241080059528347678/channel/1430817781229813802/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/1241080059528347678/channel/1430817781229813802/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: 1241080059528347678

channel_id   integer     

The ID of the channel. Example: 1430817781229813802

Change ticket owner.

requires authentication

Transfers ownership of a ticket to another user.

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

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

let body = {
    "user_id": "897219148574363269",
    "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: 1241080059528347678

channel_id   integer     

The ID of the channel. Example: 1430817781229813802

Body Parameters

user_id   string     

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

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/1241080059528347678/channel/1430817781229813802/ticket/add" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"user_id\": \"897219148574363269\",
    \"reason\": \"Hello, world!\"
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/1241080059528347678/channel/1430817781229813802/ticket/add"
);

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

let body = {
    "user_id": "897219148574363269",
    "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: 1241080059528347678

channel_id   integer     

The ID of the channel. Example: 1430817781229813802

Body Parameters

user_id   string     

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

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/1241080059528347678/channel/1430817781229813802/ticket/remove" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"user_id\": \"897219148574363269\",
    \"reason\": \"Hello, world!\"
}"
const url = new URL(
    "https://ticketeer.bot/api/v1/guild/1241080059528347678/channel/1430817781229813802/ticket/remove"
);

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

let body = {
    "user_id": "897219148574363269",
    "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: 1241080059528347678

channel_id   integer     

The ID of the channel. Example: 1430817781229813802

Body Parameters

user_id   string     

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

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": "337842567937046150",
    "name": "John",
    "username": "john",
    "discriminator": "0001",
    "avatar": "https://cdn.discordapp.com/avatars/123/abc.png",
    "locale": "en",
    "bot": false,
    "verified": "934674431964242580",
    "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: 337842567937046150

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: 934674431964242580

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": "571707999220136938",
        "name": "My Server",
        "premium": "672951452783139208",
        "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: 571707999220136938

name   string     

The guild name Example: My Server

premium   boolean     

Whether the guild has premium Example: 672951452783139208

premium_ends_at   string     

When premium expires

joined_at   string     

When the bot joined the guild