openapi: 3.0.3
info:
title: 'Ticketeer API Documentation'
description: ''
version: 1.0.0
servers:
-
url: 'https://ticketeer.bot'
tags:
-
name: Channel
description: "\nEndpoints for interacting with guild channels."
-
name: Guild
description: "\nEndpoints for managing guilds."
-
name: Ticket
description: ''
-
name: 'Ticket (from channel)'
description: ''
-
name: User
description: "\nEndpoints for the authenticated user."
components:
securitySchemes:
default:
type: http
scheme: bearer
description: 'You can retrieve your token by visiting your dashboard and clicking Generate API token.'
security:
-
default: []
paths:
'/api/v1/guild/{guild_id}/channel/{channel_id}':
post:
summary: 'Send a message to a channel.'
operationId: sendAMessageToAChannel
description: "Sends a message to a specific channel in the guild. Supports text channels, forum channels (creates a thread), and thread channels (via webhook).\nWhen a message_id is provided, the existing message is edited instead of sending a new one."
parameters: []
responses: { }
tags:
- Channel
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
username:
type: string
description: 'Override the default username (sends as webhook)'
example: Foo
avatar_url:
type: string
description: 'Override the default avatar URL (sends as webhook)'
example: 'https://example.com/avatar.png'
thread_name:
type: string
description: 'Thread name, required for forum channels'
example: 'Support Request'
content:
type: string
description: 'The message content, up to 2000 characters'
example: 'Hello, world!'
tts:
type: boolean
description: 'Whether the message is text-to-speech'
example: null
allowed_mentions:
type: object
description: 'Allowed mentions for the message'
example: null
properties: { }
embeds:
type: object
description: 'Array of embed objects to include in the message, up to 10'
example: null
properties: { }
components:
type: object
description: 'Array of message component objects to include'
example: null
properties: { }
flags:
type: integer
description: 'Message flags combined as a bitfield'
example: 0
applied_tags:
type: object
description: 'Array of tag IDs to apply to a forum thread'
example: null
properties: { }
poll:
type: object
description: 'A poll object to include in the message'
example: null
properties: { }
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
-
in: path
name: channel_id
description: 'The ID of the channel.'
example: '1430817781229813802'
required: true
schema:
type: integer
'/api/v1/guild/{guild_id}/channel/{channel_id}/{message_id}':
post:
summary: 'Update a message in a channel.'
operationId: updateAMessageInAChannel
description: 'Updates a message in a specific channel in the guild.'
parameters: []
responses: { }
tags:
- Channel
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
username:
type: string
description: 'Override the default username (sends as webhook)'
example: Foo
avatar_url:
type: string
description: 'Override the default avatar URL (sends as webhook)'
example: 'https://example.com/avatar.png'
thread_name:
type: string
description: 'Thread name, required for forum channels'
example: 'Support Request'
content:
type: string
description: 'The message content, up to 2000 characters'
example: 'Hello, world!'
tts:
type: boolean
description: 'Whether the message is text-to-speech'
example: null
allowed_mentions:
type: object
description: 'Allowed mentions for the message'
example: null
properties: { }
embeds:
type: object
description: 'Array of embed objects to include in the message, up to 10'
example: null
properties: { }
components:
type: object
description: 'Array of message component objects to include'
example: null
properties: { }
flags:
type: integer
description: 'Message flags combined as a bitfield'
example: 0
applied_tags:
type: object
description: 'Array of tag IDs to apply to a forum thread'
example: null
properties: { }
poll:
type: object
description: 'A poll object to include in the message'
example: null
properties: { }
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
-
in: path
name: channel_id
description: 'The ID of the channel.'
example: '1430817781229813802'
required: true
schema:
type: integer
-
in: path
name: message_id
description: 'The ID of the message.'
example: architecto
required: true
schema:
type: string
'/api/v1/guild/{guild_id}/message/{custom_message_id}/{channel_id}':
post:
summary: 'Send a custom message to a channel.'
operationId: sendACustomMessageToAChannel
description: 'Sends a custom message to a specific channel in the guild. When a message_id is provided, the existing message is edited instead.'
parameters: []
responses: { }
tags:
- Channel
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
username:
type: string
description: 'Override the default username (sends as webhook)'
example: Foo
avatar_url:
type: string
description: 'Override the default avatar URL (sends as webhook)'
example: 'https://example.com/avatar.png'
thread_name:
type: string
description: 'Thread name, required for forum channels'
example: 'Hello World'
context:
type: object
description: 'Context variables to pass to the custom message template'
example: null
properties: { }
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
-
in: path
name: custom_message_id
description: 'The ID of the custom message.'
example: architecto
required: true
schema:
type: string
-
in: path
name: channel_id
description: 'The ID of the channel.'
example: '1430817781229813802'
required: true
schema:
type: integer
'/api/v1/guild/{guild_id}/message/{custom_message_id}/{channel_id}/{message_id}':
post:
summary: 'Update a custom message in a channel.'
operationId: updateACustomMessageInAChannel
description: 'Updates a custom message in a specific channel in the guild.'
parameters: []
responses: { }
tags:
- Channel
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
username:
type: string
description: 'Override the default username (sends as webhook)'
example: Foo
avatar_url:
type: string
description: 'Override the default avatar URL (sends as webhook)'
example: 'https://example.com/avatar.png'
thread_name:
type: string
description: 'Thread name, required for forum channels'
example: 'Hello World'
context:
type: object
description: 'Context variables to pass to the custom message template'
example: null
properties: { }
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
-
in: path
name: custom_message_id
description: 'The ID of the custom message.'
example: architecto
required: true
schema:
type: string
-
in: path
name: channel_id
description: 'The ID of the channel.'
example: '1430817781229813802'
required: true
schema:
type: integer
-
in: path
name: message_id
description: 'The ID of the message.'
example: architecto
required: true
schema:
type: string
'/api/v1/guild/{guild_id}':
get:
summary: 'Get guild.'
operationId: getGuild
description: 'Returns details for a specific guild.'
parameters: []
responses:
200:
description: 'The guild'
content:
application/json:
schema:
type: object
example:
id: '571707999220136938'
name: 'My Server'
premium: '672951452783139208'
premium_ends_at: '2024-01-01T00:00:00.000000Z'
joined_at: '2024-01-01T00:00:00.000000Z'
properties:
id:
type: string
example: '571707999220136938'
description: 'The guild snowflake ID'
name:
type: string
example: 'My Server'
description: 'The guild name'
premium:
type: string
example: '672951452783139208'
description: 'Whether the guild has premium'
premium_ends_at:
type: string
example: '2024-01-01T00:00:00.000000Z'
description: 'When premium expires'
nullable: true
joined_at:
type: string
example: '2024-01-01T00:00:00.000000Z'
description: 'When the bot joined the guild'
nullable: true
required:
- id
- name
tags:
- Guild
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
'/api/v1/guild/{guild_id}/sync':
post:
summary: 'Sync guild channels, roles, emotes and permissions.'
operationId: syncGuildChannelsRolesEmotesAndPermissions
description: 'Triggers a sync for the specified guild, including channels, roles, permissions, and tickets.'
parameters: []
responses: { }
tags:
- Guild
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
'/api/v1/guild/{guild_id}/groups':
get:
summary: 'List ticket groups.'
operationId: listTicketGroups
description: 'Returns all ticket groups for the specified guild.'
parameters: []
responses:
200:
description: 'List of ticket groups'
content:
application/json:
schema:
type: object
example:
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
properties:
data:
type: array
example:
-
id: '120128186398635144'
name: Support
count: 5
description: 'The list of items for the current page.'
items:
type: object
properties:
id:
type: string
example: '120128186398635144'
description: 'The ticket group snowflake ID'
name:
type: string
example: Support
description: 'The ticket group name'
count:
type: integer
example: 5
description: 'Number of tickets in this group'
required:
- id
- name
- count
current_page:
type: integer
example: 1
description: 'The current page number.'
first_page_url:
type: string
example: '/?page=1'
description: 'URL to the first page.'
from:
type: integer
example: 1
description: 'The index of the first item on this page.'
nullable: true
last_page:
type: integer
example: 1
description: 'The last page number.'
last_page_url:
type: string
example: '/?page=1'
description: 'URL to the last page.'
next_page_url:
type: string
example: null
description: 'URL to the next page.'
nullable: true
path:
type: string
example: /
description: 'The base URL for the paginator.'
per_page:
type: integer
example: 30
description: 'The number of items per page.'
prev_page_url:
type: string
example: null
description: 'URL to the previous page.'
nullable: true
to:
type: integer
example: 1
description: 'The index of the last item on this page.'
nullable: true
total:
type: integer
example: 1
description: 'The total number of items.'
required:
- data
- current_page
- first_page_url
- from
- last_page
- last_page_url
- next_page_url
- path
- per_page
- prev_page_url
- to
- total
tags:
- Guild
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
'/api/v1/guild/{guild_id}/panels':
get:
summary: 'List ticket panels.'
operationId: listTicketPanels
description: 'Returns all ticket panels for the specified guild.'
parameters: []
responses:
200:
description: 'List of panels'
content:
application/json:
schema:
type: object
example:
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
properties:
data:
type: array
example:
-
id: '151295371372419517'
name: 'Hello, world!'
description: 'The list of items for the current page.'
items:
type: object
properties:
id:
type: string
example: '151295371372419517'
description: 'The ticket panel snowflake ID'
name:
type: string
example: 'Hello, world!'
description: 'The ticket panel name'
required:
- id
- name
current_page:
type: integer
example: 1
description: 'The current page number.'
first_page_url:
type: string
example: '/?page=1'
description: 'URL to the first page.'
from:
type: integer
example: 1
description: 'The index of the first item on this page.'
nullable: true
last_page:
type: integer
example: 1
description: 'The last page number.'
last_page_url:
type: string
example: '/?page=1'
description: 'URL to the last page.'
next_page_url:
type: string
example: null
description: 'URL to the next page.'
nullable: true
path:
type: string
example: /
description: 'The base URL for the paginator.'
per_page:
type: integer
example: 30
description: 'The number of items per page.'
prev_page_url:
type: string
example: null
description: 'URL to the previous page.'
nullable: true
to:
type: integer
example: 1
description: 'The index of the last item on this page.'
nullable: true
total:
type: integer
example: 1
description: 'The total number of items.'
required:
- data
- current_page
- first_page_url
- from
- last_page
- last_page_url
- next_page_url
- path
- per_page
- prev_page_url
- to
- total
tags:
- Guild
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
'/api/v1/guild/{guild_id}/stats':
get:
summary: 'Get guild ticket stats.'
operationId: getGuildTicketStats
description: 'Returns the ticket statistics for the specified guild.'
parameters: []
responses:
503:
description: ''
content:
application/json:
schema:
type: object
example:
success: false
status: 503
message: 'Service Unavailable'
properties:
success:
type: boolean
example: false
status:
type: integer
example: 503
message:
type: string
example: 'Service Unavailable'
tags:
- Guild
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
'/api/v1/guild/{guild_id}/messages':
get:
summary: 'List custom messages.'
operationId: listCustomMessages
description: 'Returns all custom messages for the specified guild.'
parameters: []
responses:
200:
description: 'List of custom messages'
content:
application/json:
schema:
type: object
example:
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
properties:
data:
type: array
example:
-
id: '338909650515657603'
name: 'Hello, world!'
description: 'The list of items for the current page.'
items:
type: object
properties:
id:
type: string
example: '338909650515657603'
description: 'The custom message identifier'
name:
type: string
example: 'Hello, world!'
description: 'The custom message name'
required:
- id
- name
current_page:
type: integer
example: 1
description: 'The current page number.'
first_page_url:
type: string
example: '/?page=1'
description: 'URL to the first page.'
from:
type: integer
example: 1
description: 'The index of the first item on this page.'
nullable: true
last_page:
type: integer
example: 1
description: 'The last page number.'
last_page_url:
type: string
example: '/?page=1'
description: 'URL to the last page.'
next_page_url:
type: string
example: null
description: 'URL to the next page.'
nullable: true
path:
type: string
example: /
description: 'The base URL for the paginator.'
per_page:
type: integer
example: 30
description: 'The number of items per page.'
prev_page_url:
type: string
example: null
description: 'URL to the previous page.'
nullable: true
to:
type: integer
example: 1
description: 'The index of the last item on this page.'
nullable: true
total:
type: integer
example: 1
description: 'The total number of items.'
required:
- data
- current_page
- first_page_url
- from
- last_page
- last_page_url
- next_page_url
- path
- per_page
- prev_page_url
- to
- total
tags:
- Guild
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
'/api/v1/guild/{guild_id}/ticket':
post:
summary: 'Create ticket.'
operationId: createTicket
description: "Creates a new ticket in the specified guild. Uses the provided ticket group or falls back to the guild's default."
parameters: []
responses:
200:
description: 'The ticket created'
content:
application/json:
schema:
type: object
example:
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
properties:
id:
type: string
example: '991009560223081930'
description: 'The ticket snowflake ID'
uuid:
type: string
example: value
description: 'The ticket UUID (also the encryption key for the ticket assets)'
group_id:
type: string
example: '375163139685838977'
description: 'The ticket group snowflake ID'
guild_id:
type: string
example: '720658030022783112'
description: 'The guild snowflake ID'
channel_id:
type: string
example: '923713927840348980'
description: 'The ticket channel snowflake ID'
nullable: true
owner_id:
type: string
example: '261106055648330815'
description: 'The ticket owner snowflake ID'
nullable: true
assigned_id:
type: string
example: '596762699057745444'
description: 'The assigned user snowflake ID'
nullable: true
number:
type: integer
example: 1
description: 'The ticket number within the guild'
nullable: true
status:
type: string
example: open
description: 'The ticket status'
nullable: true
rating:
type: integer
example: 1
description: 'The ticket rating'
nullable: true
priority:
type: integer
example: 1
description: 'The ticket priority level'
nullable: true
form:
type: array
example:
-
type: type
title: 'Hello, world?'
value: 'Hello, world!'
description: 'The form data for the ticket'
nullable: true
items:
type: object
properties:
type:
type: string
example: type
description: 'Follows the component type defined in the ticket group'
title:
type: string
example: 'Hello, world?'
description: 'The title of the form field'
value:
type: string
example: 'Hello, world!'
description: 'The value of the form field'
required:
- type
- title
- value
closed_reason:
type: string
example: value
description: 'The reason the ticket was closed'
nullable: true
created_at:
type: string
example: '2024-01-01T00:00:00.000000Z'
description: 'When the ticket was created'
opened_at:
type: string
example: '2024-01-01T00:00:00.000000Z'
description: 'When the ticket was last opened'
nullable: true
closed_at:
type: string
example: '2024-01-01T00:00:00.000000Z'
description: 'When the ticket was closed'
nullable: true
deleted_at:
type: string
example: '2024-01-01T00:00:00.000000Z'
description: 'When the ticket was deleted'
nullable: true
last_activity:
type: string
example: value
description: 'When the ticket last had activity'
nullable: true
required:
- id
- uuid
- group_id
- guild_id
- created_at
tags:
- Guild
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
user_id:
type: string
description: 'The ID of the user opening the ticket'
example: null
message:
type: string
description: 'Additional message the new ticket will include'
example: 'Hello, world!'
nullable: true
ticket_group_id:
type: string
description: 'The ID of the ticket group the new ticket will belong to'
example: null
nullable: true
form:
type: array
description: 'The form data for the new ticket'
example: null
items:
type: object
nullable: true
properties:
type:
type: integer
description: 'Follows the component type defined in the ticket group'
example: type
title:
type: string
description: 'The title of the form field'
example: 'Hello, world?'
value:
type: object
description: 'The value of the form field'
example: 'Hello, world!'
properties: { }
anonymous:
type: boolean
description: '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
required:
- user_id
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
'/api/v1/guild/{guild_id}/ticket/{ticket_id}':
get:
summary: 'Get ticket.'
operationId: getTicket
description: 'Returns details for a specific ticket.'
parameters: []
responses:
200:
description: 'The ticket'
content:
application/json:
schema:
type: object
example:
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
properties:
id:
type: string
example: '991009560223081930'
description: 'The ticket snowflake ID'
uuid:
type: string
example: value
description: 'The ticket UUID (also the encryption key for the ticket assets)'
group_id:
type: string
example: '375163139685838977'
description: 'The ticket group snowflake ID'
guild_id:
type: string
example: '720658030022783112'
description: 'The guild snowflake ID'
channel_id:
type: string
example: '923713927840348980'
description: 'The ticket channel snowflake ID'
nullable: true
owner_id:
type: string
example: '261106055648330815'
description: 'The ticket owner snowflake ID'
nullable: true
assigned_id:
type: string
example: '596762699057745444'
description: 'The assigned user snowflake ID'
nullable: true
number:
type: integer
example: 1
description: 'The ticket number within the guild'
nullable: true
status:
type: string
example: open
description: 'The ticket status'
nullable: true
rating:
type: integer
example: 1
description: 'The ticket rating'
nullable: true
priority:
type: integer
example: 1
description: 'The ticket priority level'
nullable: true
form:
type: array
example:
-
type: type
title: 'Hello, world?'
value: 'Hello, world!'
description: 'The form data for the ticket'
nullable: true
items:
type: object
properties:
type:
type: string
example: type
description: 'Follows the component type defined in the ticket group'
title:
type: string
example: 'Hello, world?'
description: 'The title of the form field'
value:
type: string
example: 'Hello, world!'
description: 'The value of the form field'
required:
- type
- title
- value
closed_reason:
type: string
example: value
description: 'The reason the ticket was closed'
nullable: true
created_at:
type: string
example: '2024-01-01T00:00:00.000000Z'
description: 'When the ticket was created'
opened_at:
type: string
example: '2024-01-01T00:00:00.000000Z'
description: 'When the ticket was last opened'
nullable: true
closed_at:
type: string
example: '2024-01-01T00:00:00.000000Z'
description: 'When the ticket was closed'
nullable: true
deleted_at:
type: string
example: '2024-01-01T00:00:00.000000Z'
description: 'When the ticket was deleted'
nullable: true
last_activity:
type: string
example: value
description: 'When the ticket last had activity'
nullable: true
required:
- id
- uuid
- group_id
- guild_id
- created_at
tags:
- Ticket
delete:
summary: 'Delete ticket.'
operationId: deleteTicket
description: 'Closes the ticket and deletes the associated channel.'
parameters: []
responses: { }
tags:
- Ticket
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
reason:
type: string
description: 'Reason for performing the action on the ticket'
example: 'Hello, world!'
anonymous:
type: boolean
description: 'Perform action as bot, defaults to false'
example: null
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
-
in: path
name: ticket_id
description: 'The ID of the ticket.'
example: '1419244951635763635'
required: true
schema:
type: integer
'/api/v1/guild/{guild_id}/ticket/{ticket_id}/move':
post:
summary: 'Change ticket group.'
operationId: changeTicketGroup
description: 'Moves a ticket to a different ticket group. The target group must use the same mode (thread or channel) as the current group.'
parameters: []
responses: { }
tags:
- Ticket
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
ticket_group_id:
type: string
description: 'The ID of the target ticket group'
example: null
reason:
type: string
description: 'Reason for changing the ticket group'
example: 'Hello, world!'
required:
- ticket_group_id
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
-
in: path
name: ticket_id
description: 'The ID of the ticket.'
example: '1419244951635763635'
required: true
schema:
type: integer
'/api/v1/guild/{guild_id}/ticket/{ticket_id}/open':
post:
summary: 'Open ticket.'
operationId: openTicket
description: 'Reopens a closed ticket.'
parameters: []
responses: { }
tags:
- Ticket
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
reason:
type: string
description: 'Reason for performing the action on the ticket'
example: 'Hello, world!'
anonymous:
type: boolean
description: 'Perform action as bot, defaults to false'
example: null
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
-
in: path
name: ticket_id
description: 'The ID of the ticket.'
example: '1419244951635763635'
required: true
schema:
type: integer
'/api/v1/guild/{guild_id}/ticket/{ticket_id}/close':
post:
summary: 'Close ticket.'
operationId: closeTicket
description: 'Closes an open ticket.'
parameters: []
responses: { }
tags:
- Ticket
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
reason:
type: string
description: 'Reason for performing the action on the ticket'
example: 'Hello, world!'
anonymous:
type: boolean
description: 'Perform action as bot, defaults to false'
example: null
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
-
in: path
name: ticket_id
description: 'The ID of the ticket.'
example: '1419244951635763635'
required: true
schema:
type: integer
'/api/v1/guild/{guild_id}/ticket/{ticket_id}/assign':
post:
summary: 'Assign ticket.'
operationId: assignTicket
description: 'Assigns a user to the ticket.'
parameters: []
responses: { }
tags:
- Ticket
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
user_id:
type: string
description: 'The ID of the user to perform the action on'
example: null
reason:
type: string
description: 'Reason for performing the action on the ticket/user'
example: 'Hello, world!'
anonymous:
type: boolean
description: 'Perform action as bot, defaults to false'
example: null
required:
- user_id
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
-
in: path
name: ticket_id
description: 'The ID of the ticket.'
example: '1419244951635763635'
required: true
schema:
type: integer
'/api/v1/guild/{guild_id}/ticket/{ticket_id}/unassign':
post:
summary: 'Unassign ticket.'
operationId: unassignTicket
description: 'Removes the assigned user from the ticket.'
parameters: []
responses: { }
tags:
- Ticket
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
user_id:
type: string
description: 'The ID of the user to perform the action on'
example: null
reason:
type: string
description: 'Reason for performing the action on the ticket/user'
example: 'Hello, world!'
anonymous:
type: boolean
description: 'Perform action as bot, defaults to false'
example: null
required:
- user_id
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
-
in: path
name: ticket_id
description: 'The ID of the ticket.'
example: '1419244951635763635'
required: true
schema:
type: integer
'/api/v1/guild/{guild_id}/ticket/{ticket_id}/expire':
post:
summary: 'Set ticket expiry.'
operationId: setTicketExpiry
description: 'Sets or updates the expiry time for a ticket.'
parameters: []
responses: { }
tags:
- Ticket
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
expire_at:
type: string
description: 'The expiry timestamp (ISO 8601) or null to remove expiry'
example: '2026-03-01T00:00:00Z'
clearable:
type: boolean
description: 'Whether user activity (sending messages) can clear the expiry'
example: null
reason:
type: string
description: 'Reason for setting the ticket expiry'
example: 'Hello, world!'
anonymous:
type: boolean
description: 'Perform action as bot, defaults to false'
example: null
required:
- expire_at
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
-
in: path
name: ticket_id
description: 'The ID of the ticket.'
example: '1419244951635763635'
required: true
schema:
type: integer
'/api/v1/guild/{guild_id}/ticket/{ticket_id}/eternal':
post:
summary: 'Set ticket eternal.'
operationId: setTicketEternal
description: 'Sets or updates the eternal status for a ticket, preventing automatic expiry.'
parameters: []
responses: { }
tags:
- Ticket
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
eternal:
type: boolean
description: 'Whether the ticket is eternal (never expires)'
example: null
reason:
type: string
description: 'Reason for setting the ticket as eternal'
example: 'Hello, world!'
anonymous:
type: boolean
description: 'Perform action as bot, defaults to false'
example: null
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
-
in: path
name: ticket_id
description: 'The ID of the ticket.'
example: '1419244951635763635'
required: true
schema:
type: integer
'/api/v1/guild/{guild_id}/ticket/{ticket_id}/lock':
post:
summary: 'Lock ticket.'
operationId: lockTicket
description: 'Locks a ticket to prevent further messages.'
parameters: []
responses: { }
tags:
- Ticket
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
reason:
type: string
description: 'Reason for performing the action on the ticket'
example: 'Hello, world!'
anonymous:
type: boolean
description: 'Perform action as bot, defaults to false'
example: null
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
-
in: path
name: ticket_id
description: 'The ID of the ticket.'
example: '1419244951635763635'
required: true
schema:
type: integer
'/api/v1/guild/{guild_id}/ticket/{ticket_id}/unlock':
post:
summary: 'Unlock ticket.'
operationId: unlockTicket
description: 'Unlocks a previously locked ticket.'
parameters: []
responses: { }
tags:
- Ticket
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
reason:
type: string
description: 'Reason for performing the action on the ticket'
example: 'Hello, world!'
anonymous:
type: boolean
description: 'Perform action as bot, defaults to false'
example: null
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
-
in: path
name: ticket_id
description: 'The ID of the ticket.'
example: '1419244951635763635'
required: true
schema:
type: integer
'/api/v1/guild/{guild_id}/ticket/{ticket_id}/name':
post:
summary: 'Rename ticket.'
operationId: renameTicket
description: 'Updates the name of a ticket. If the name is empty, the current name is cleared.'
parameters: []
responses: { }
tags:
- Ticket
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'The new name for the ticket, optional to set to default'
example: hello-world
nullable: true
reason:
type: string
description: 'Reason for naming the ticket'
example: 'Hello, world!'
nullable: true
anonymous:
type: boolean
description: 'Rename as bot, defaults to false'
example: null
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
-
in: path
name: ticket_id
description: 'The ID of the ticket.'
example: '1419244951635763635'
required: true
schema:
type: integer
'/api/v1/guild/{guild_id}/ticket/{ticket_id}/notes':
post:
summary: 'Create ticket notes thread.'
operationId: createTicketNotesThread
description: 'Creates a private notes thread attached to the ticket.'
parameters: []
responses: { }
tags:
- Ticket
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'The new name for the ticket, optional to set to default'
example: hello-world
nullable: true
reason:
type: string
description: 'Reason for naming the ticket'
example: 'Hello, world!'
nullable: true
anonymous:
type: boolean
description: 'Rename as bot, defaults to false'
example: null
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
-
in: path
name: ticket_id
description: 'The ID of the ticket.'
example: '1419244951635763635'
required: true
schema:
type: integer
'/api/v1/guild/{guild_id}/ticket/{ticket_id}/notes/add':
post:
summary: 'Add user to ticket notes thread.'
operationId: addUserToTicketNotesThread
description: "Adds a guild member to the ticket's private notes thread."
parameters: []
responses: { }
tags:
- Ticket
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
user_id:
type: string
description: 'The ID of the user to perform the action on'
example: null
reason:
type: string
description: 'Reason for performing the action on the ticket/user'
example: 'Hello, world!'
anonymous:
type: boolean
description: 'Perform action as bot, defaults to false'
example: null
required:
- user_id
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
-
in: path
name: ticket_id
description: 'The ID of the ticket.'
example: '1419244951635763635'
required: true
schema:
type: integer
'/api/v1/guild/{guild_id}/ticket/{ticket_id}/notes/remove':
post:
summary: 'Remove user from ticket notes thread.'
operationId: removeUserFromTicketNotesThread
description: "Removes a guild member from the ticket's private notes thread."
parameters: []
responses: { }
tags:
- Ticket
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
user_id:
type: string
description: 'The ID of the user to perform the action on'
example: null
reason:
type: string
description: 'Reason for performing the action on the ticket/user'
example: 'Hello, world!'
anonymous:
type: boolean
description: 'Perform action as bot, defaults to false'
example: null
required:
- user_id
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
-
in: path
name: ticket_id
description: 'The ID of the ticket.'
example: '1419244951635763635'
required: true
schema:
type: integer
'/api/v1/guild/{guild_id}/ticket/{ticket_id}/priority':
post:
summary: 'Set ticket priority.'
operationId: setTicketPriority
description: 'Updates the priority level of a ticket.'
parameters: []
responses: { }
tags:
- Ticket
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
priority:
type: integer
description: 'The priority level index'
example: 1
reason:
type: string
description: 'Reason for changing the priority'
example: 'Hello, world!'
nullable: true
anonymous:
type: boolean
description: 'Change priority as bot, defaults to false'
example: null
required:
- priority
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
-
in: path
name: ticket_id
description: 'The ID of the ticket.'
example: '1419244951635763635'
required: true
schema:
type: integer
'/api/v1/guild/{guild_id}/ticket/{ticket_id}/transcript':
get:
summary: 'Get ticket transcript.'
operationId: getTicketTranscript
description: 'Returns the full transcript for a ticket, including channel and thread messages with attachments.'
parameters: []
responses:
200:
description: 'The ticket transcript'
content:
application/json:
schema:
type: object
example:
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
properties:
guild:
type: object
properties:
id:
type: string
example: '123456789'
name:
type: string
example: example
premium:
type: boolean
example: false
roles:
type: array
example:
-
id: '123456789'
name: example
color: value
position: 1
hoist: false
items:
type: object
properties:
id:
type: string
example: '123456789'
name:
type: string
example: example
color:
type: string
example: value
position:
type: integer
example: 1
hoist:
type: boolean
example: false
required:
- id
- name
- color
- position
channels:
type: array
example:
-
id: '123456789'
name: example
type: 0
parent_id: '123456789'
position: 1
items:
type: object
properties:
id:
type: string
example: '123456789'
name:
type: string
example: example
type:
type: integer
example: 0
parent_id:
type: string
example: '123456789'
nullable: true
position:
type: integer
example: 1
nullable: true
required:
- id
- name
- type
required:
- id
- name
group:
type: object
properties:
id:
type: string
example: '123456789'
name:
type: string
example: example
form_title:
type: string
example: value
form_fields:
type: array
example:
- []
items:
type: array
schedule:
type: array
example: []
schedule_timezone:
type: string
example: value
priority_levels:
type: array
example:
-
label: value
color: value
items:
type: object
properties:
label:
type: string
example: value
description: 'Must not be greater than 80 characters.'
color:
type: string
example: value
rating_levels:
type: array
example:
-
label: value
color: value
items:
type: object
properties:
label:
type: string
example: value
description: 'Must not be greater than 80 characters.'
color:
type: string
example: value
required:
- id
- name
- form_title
- schedule
- schedule_timezone
ticket:
type: object
properties:
id:
type: string
example: '123456789'
uuid:
type: string
example: value
status:
type: string
example: value
owner_id:
type: string
example: '123456789'
channel_id:
type: string
example: '123456789'
thread_id:
type: string
example: '123456789'
nullable: true
assigned_id:
type: string
example: '123456789'
nullable: true
number:
type: integer
example: 1
priority:
type: integer
example: 1
rating:
type: integer
example: 1
private:
type: boolean
example: false
form:
type: array
example: []
nullable: true
locked_at:
type: string
example: '2024-01-01T00:00:00.000000Z'
nullable: true
opened_at:
type: string
example: '2024-01-01T00:00:00.000000Z'
nullable: true
closed_reason:
type: string
example: value
nullable: true
closed_at:
type: string
example: '2024-01-01T00:00:00.000000Z'
nullable: true
created_at:
type: string
example: '2024-01-01T00:00:00.000000Z'
deleted_at:
type: string
example: '2024-01-01T00:00:00.000000Z'
nullable: true
transcript_saved_at:
type: string
example: '2024-01-01T00:00:00.000000Z'
nullable: true
required:
- id
- uuid
- status
- owner_id
- channel_id
- number
- priority
- rating
- created_at
channel_members:
type: array
example:
-
id: '123456789'
avatar: 'https://example.com/image.png'
name: example
bot: false
joined_at: '2024-01-01T00:00:00.000000Z'
roles: []
rating: 1
items:
type: object
properties:
id:
type: string
example: '123456789'
avatar:
type: string
example: 'https://example.com/image.png'
name:
type: string
example: example
bot:
type: boolean
example: false
joined_at:
type: string
example: '2024-01-01T00:00:00.000000Z'
nullable: true
roles:
type: array
example: []
rating:
type: integer
example: 1
nullable: true
required:
- id
- avatar
- name
- roles
channel_messages:
type: array
example: []
channel_message_attachments:
type: array
example:
-
id: '123456789'
name: example
hash: value
mime: value
size: 1
url: 'https://example.com/image.png'
encrypted: false
items:
type: object
properties:
id:
type: string
example: '123456789'
name:
type: string
example: example
hash:
type: string
example: value
mime:
type: string
example: value
size:
type: integer
example: 1
url:
type: string
example: 'https://example.com/image.png'
encrypted:
type: boolean
example: false
required:
- id
- name
- hash
- mime
- size
- url
thread_members:
type: array
example:
-
id: '123456789'
avatar: 'https://example.com/image.png'
name: example
bot: false
joined_at: '2024-01-01T00:00:00.000000Z'
roles: []
rating: 1
items:
type: object
properties:
id:
type: string
example: '123456789'
avatar:
type: string
example: 'https://example.com/image.png'
name:
type: string
example: example
bot:
type: boolean
example: false
joined_at:
type: string
example: '2024-01-01T00:00:00.000000Z'
nullable: true
roles:
type: array
example: []
rating:
type: integer
example: 1
nullable: true
required:
- id
- avatar
- name
- roles
thread_messages:
type: array
example: []
thread_message_attachments:
type: array
example:
-
id: '123456789'
name: example
hash: value
mime: value
size: 1
url: 'https://example.com/image.png'
encrypted: false
items:
type: object
properties:
id:
type: string
example: '123456789'
name:
type: string
example: example
hash:
type: string
example: value
mime:
type: string
example: value
size:
type: integer
example: 1
url:
type: string
example: 'https://example.com/image.png'
encrypted:
type: boolean
example: false
required:
- id
- name
- hash
- mime
- size
- url
required:
- guild
- group
- ticket
- channel_messages
- thread_messages
tags:
- Ticket
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
-
in: path
name: ticket_id
description: 'The ID of the ticket.'
example: '1419244951635763635'
required: true
schema:
type: integer
'/api/v1/guild/{guild_id}/ticket/{ticket_id}/save':
post:
summary: 'Save ticket transcript.'
operationId: saveTicketTranscript
description: "Saves the current state of a ticket's transcript and returns the updated transcript data."
parameters: []
responses: { }
tags:
- Ticket
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
-
in: path
name: ticket_id
description: 'The ID of the ticket.'
example: '1419244951635763635'
required: true
schema:
type: integer
'/api/v1/guild/{guild_id}/ticket/{ticket_id}/send/{user_id}':
post:
summary: 'Send ticket transcript to a user.'
operationId: sendTicketTranscriptToAUser
description: 'Queues the ticket transcript to be sent to the specified user via DM.'
parameters: []
responses: { }
tags:
- Ticket
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
-
in: path
name: ticket_id
description: 'The ID of the ticket.'
example: '1419244951635763635'
required: true
schema:
type: integer
-
in: path
name: user_id
description: 'The ID of the user.'
example: '1001168331996409856'
required: true
schema:
type: integer
'/api/v1/guild/{guild_id}/ticket/{ticket_id}/owner':
post:
summary: 'Change ticket owner.'
operationId: changeTicketOwner
description: 'Transfers ownership of a ticket to another user.'
parameters: []
responses: { }
tags:
- Ticket
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
user_id:
type: string
description: 'The ID of the user to perform the action on'
example: null
reason:
type: string
description: 'Reason for performing the action on the ticket/user'
example: 'Hello, world!'
anonymous:
type: boolean
description: 'Perform action as bot, defaults to false'
example: null
required:
- user_id
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
-
in: path
name: ticket_id
description: 'The ID of the ticket.'
example: '1419244951635763635'
required: true
schema:
type: integer
'/api/v1/guild/{guild_id}/ticket/{ticket_id}/add':
post:
summary: 'Add user to ticket.'
operationId: addUserToTicket
description: 'Adds a guild member to the ticket, granting them access to the ticket channel.'
parameters: []
responses: { }
tags:
- Ticket
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
user_id:
type: string
description: 'The ID of the user to perform the action on'
example: null
reason:
type: string
description: 'Reason for performing the action on the ticket/user'
example: 'Hello, world!'
anonymous:
type: boolean
description: 'Perform action as bot, defaults to false'
example: null
required:
- user_id
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
-
in: path
name: ticket_id
description: 'The ID of the ticket.'
example: '1419244951635763635'
required: true
schema:
type: integer
'/api/v1/guild/{guild_id}/ticket/{ticket_id}/remove':
post:
summary: 'Remove user from ticket.'
operationId: removeUserFromTicket
description: 'Removes a guild member from the ticket, revoking their access to the ticket channel.'
parameters: []
responses: { }
tags:
- Ticket
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
user_id:
type: string
description: 'The ID of the user to perform the action on'
example: null
reason:
type: string
description: 'Reason for performing the action on the ticket/user'
example: 'Hello, world!'
anonymous:
type: boolean
description: 'Perform action as bot, defaults to false'
example: null
required:
- user_id
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
-
in: path
name: ticket_id
description: 'The ID of the ticket.'
example: '1419244951635763635'
required: true
schema:
type: integer
'/api/v1/guild/{guild_id}/channel/{channel}/ticket/send/{user_id}':
post:
summary: 'Send ticket transcript to a user.'
operationId: sendTicketTranscriptToAUser
description: 'Queues the ticket transcript to be sent to the specified user via DM.'
parameters: []
responses: { }
tags:
- Ticket
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
-
in: path
name: channel
description: 'The channel.'
example: '1430817781229813802'
required: true
schema:
type: integer
-
in: path
name: user_id
description: 'The ID of the user.'
example: '1001168331996409856'
required: true
schema:
type: integer
'/api/v1/guild/{guild_id}/channel/{channel_id}/ticket':
get:
summary: 'Get ticket.'
operationId: getTicket
description: 'Returns details for a specific ticket.'
parameters: []
responses:
200:
description: 'The ticket'
content:
application/json:
schema:
type: object
example:
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
properties:
id:
type: string
example: '991009560223081930'
description: 'The ticket snowflake ID'
uuid:
type: string
example: value
description: 'The ticket UUID (also the encryption key for the ticket assets)'
group_id:
type: string
example: '375163139685838977'
description: 'The ticket group snowflake ID'
guild_id:
type: string
example: '720658030022783112'
description: 'The guild snowflake ID'
channel_id:
type: string
example: '923713927840348980'
description: 'The ticket channel snowflake ID'
nullable: true
owner_id:
type: string
example: '261106055648330815'
description: 'The ticket owner snowflake ID'
nullable: true
assigned_id:
type: string
example: '596762699057745444'
description: 'The assigned user snowflake ID'
nullable: true
number:
type: integer
example: 1
description: 'The ticket number within the guild'
nullable: true
status:
type: string
example: open
description: 'The ticket status'
nullable: true
rating:
type: integer
example: 1
description: 'The ticket rating'
nullable: true
priority:
type: integer
example: 1
description: 'The ticket priority level'
nullable: true
form:
type: array
example:
-
type: type
title: 'Hello, world?'
value: 'Hello, world!'
description: 'The form data for the ticket'
nullable: true
items:
type: object
properties:
type:
type: string
example: type
description: 'Follows the component type defined in the ticket group'
title:
type: string
example: 'Hello, world?'
description: 'The title of the form field'
value:
type: string
example: 'Hello, world!'
description: 'The value of the form field'
required:
- type
- title
- value
closed_reason:
type: string
example: value
description: 'The reason the ticket was closed'
nullable: true
created_at:
type: string
example: '2024-01-01T00:00:00.000000Z'
description: 'When the ticket was created'
opened_at:
type: string
example: '2024-01-01T00:00:00.000000Z'
description: 'When the ticket was last opened'
nullable: true
closed_at:
type: string
example: '2024-01-01T00:00:00.000000Z'
description: 'When the ticket was closed'
nullable: true
deleted_at:
type: string
example: '2024-01-01T00:00:00.000000Z'
description: 'When the ticket was deleted'
nullable: true
last_activity:
type: string
example: value
description: 'When the ticket last had activity'
nullable: true
required:
- id
- uuid
- group_id
- guild_id
- created_at
tags:
- 'Ticket (from channel)'
delete:
summary: 'Delete ticket.'
operationId: deleteTicket
description: 'Closes the ticket and deletes the associated channel.'
parameters: []
responses: { }
tags:
- 'Ticket (from channel)'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
reason:
type: string
description: 'Reason for performing the action on the ticket'
example: 'Hello, world!'
anonymous:
type: boolean
description: 'Perform action as bot, defaults to false'
example: null
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
-
in: path
name: channel_id
description: 'The ID of the channel.'
example: '1430817781229813802'
required: true
schema:
type: integer
'/api/v1/guild/{guild_id}/channel/{channel_id}/ticket/move':
post:
summary: 'Change ticket group.'
operationId: changeTicketGroup
description: 'Moves a ticket to a different ticket group. The target group must use the same mode (thread or channel) as the current group.'
parameters: []
responses: { }
tags:
- 'Ticket (from channel)'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
ticket_group_id:
type: string
description: 'The ID of the target ticket group'
example: null
reason:
type: string
description: 'Reason for changing the ticket group'
example: 'Hello, world!'
required:
- ticket_group_id
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
-
in: path
name: channel_id
description: 'The ID of the channel.'
example: '1430817781229813802'
required: true
schema:
type: integer
'/api/v1/guild/{guild_id}/channel/{channel_id}/ticket/open':
post:
summary: 'Open ticket.'
operationId: openTicket
description: 'Reopens a closed ticket.'
parameters: []
responses: { }
tags:
- 'Ticket (from channel)'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
reason:
type: string
description: 'Reason for performing the action on the ticket'
example: 'Hello, world!'
anonymous:
type: boolean
description: 'Perform action as bot, defaults to false'
example: null
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
-
in: path
name: channel_id
description: 'The ID of the channel.'
example: '1430817781229813802'
required: true
schema:
type: integer
'/api/v1/guild/{guild_id}/channel/{channel_id}/ticket/close':
post:
summary: 'Close ticket.'
operationId: closeTicket
description: 'Closes an open ticket.'
parameters: []
responses: { }
tags:
- 'Ticket (from channel)'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
reason:
type: string
description: 'Reason for performing the action on the ticket'
example: 'Hello, world!'
anonymous:
type: boolean
description: 'Perform action as bot, defaults to false'
example: null
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
-
in: path
name: channel_id
description: 'The ID of the channel.'
example: '1430817781229813802'
required: true
schema:
type: integer
'/api/v1/guild/{guild_id}/channel/{channel_id}/ticket/assign':
post:
summary: 'Assign ticket.'
operationId: assignTicket
description: 'Assigns a user to the ticket.'
parameters: []
responses: { }
tags:
- 'Ticket (from channel)'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
user_id:
type: string
description: 'The ID of the user to perform the action on'
example: null
reason:
type: string
description: 'Reason for performing the action on the ticket/user'
example: 'Hello, world!'
anonymous:
type: boolean
description: 'Perform action as bot, defaults to false'
example: null
required:
- user_id
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
-
in: path
name: channel_id
description: 'The ID of the channel.'
example: '1430817781229813802'
required: true
schema:
type: integer
'/api/v1/guild/{guild_id}/channel/{channel_id}/ticket/unassign':
post:
summary: 'Unassign ticket.'
operationId: unassignTicket
description: 'Removes the assigned user from the ticket.'
parameters: []
responses: { }
tags:
- 'Ticket (from channel)'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
user_id:
type: string
description: 'The ID of the user to perform the action on'
example: null
reason:
type: string
description: 'Reason for performing the action on the ticket/user'
example: 'Hello, world!'
anonymous:
type: boolean
description: 'Perform action as bot, defaults to false'
example: null
required:
- user_id
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
-
in: path
name: channel_id
description: 'The ID of the channel.'
example: '1430817781229813802'
required: true
schema:
type: integer
'/api/v1/guild/{guild_id}/channel/{channel_id}/ticket/expire':
post:
summary: 'Set ticket expiry.'
operationId: setTicketExpiry
description: 'Sets or updates the expiry time for a ticket.'
parameters: []
responses: { }
tags:
- 'Ticket (from channel)'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
expire_at:
type: string
description: 'The expiry timestamp (ISO 8601) or null to remove expiry'
example: '2026-03-01T00:00:00Z'
clearable:
type: boolean
description: 'Whether user activity (sending messages) can clear the expiry'
example: null
reason:
type: string
description: 'Reason for setting the ticket expiry'
example: 'Hello, world!'
anonymous:
type: boolean
description: 'Perform action as bot, defaults to false'
example: null
required:
- expire_at
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
-
in: path
name: channel_id
description: 'The ID of the channel.'
example: '1430817781229813802'
required: true
schema:
type: integer
'/api/v1/guild/{guild_id}/channel/{channel_id}/ticket/eternal':
post:
summary: 'Set ticket eternal.'
operationId: setTicketEternal
description: 'Sets or updates the eternal status for a ticket, preventing automatic expiry.'
parameters: []
responses: { }
tags:
- 'Ticket (from channel)'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
eternal:
type: boolean
description: 'Whether the ticket is eternal (never expires)'
example: null
reason:
type: string
description: 'Reason for setting the ticket as eternal'
example: 'Hello, world!'
anonymous:
type: boolean
description: 'Perform action as bot, defaults to false'
example: null
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
-
in: path
name: channel_id
description: 'The ID of the channel.'
example: '1430817781229813802'
required: true
schema:
type: integer
'/api/v1/guild/{guild_id}/channel/{channel_id}/ticket/lock':
post:
summary: 'Lock ticket.'
operationId: lockTicket
description: 'Locks a ticket to prevent further messages.'
parameters: []
responses: { }
tags:
- 'Ticket (from channel)'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
reason:
type: string
description: 'Reason for performing the action on the ticket'
example: 'Hello, world!'
anonymous:
type: boolean
description: 'Perform action as bot, defaults to false'
example: null
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
-
in: path
name: channel_id
description: 'The ID of the channel.'
example: '1430817781229813802'
required: true
schema:
type: integer
'/api/v1/guild/{guild_id}/channel/{channel_id}/ticket/unlock':
post:
summary: 'Unlock ticket.'
operationId: unlockTicket
description: 'Unlocks a previously locked ticket.'
parameters: []
responses: { }
tags:
- 'Ticket (from channel)'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
reason:
type: string
description: 'Reason for performing the action on the ticket'
example: 'Hello, world!'
anonymous:
type: boolean
description: 'Perform action as bot, defaults to false'
example: null
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
-
in: path
name: channel_id
description: 'The ID of the channel.'
example: '1430817781229813802'
required: true
schema:
type: integer
'/api/v1/guild/{guild_id}/channel/{channel_id}/ticket/name':
post:
summary: 'Rename ticket.'
operationId: renameTicket
description: 'Updates the name of a ticket. If the name is empty, the current name is cleared.'
parameters: []
responses: { }
tags:
- 'Ticket (from channel)'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'The new name for the ticket, optional to set to default'
example: hello-world
nullable: true
reason:
type: string
description: 'Reason for naming the ticket'
example: 'Hello, world!'
nullable: true
anonymous:
type: boolean
description: 'Rename as bot, defaults to false'
example: null
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
-
in: path
name: channel_id
description: 'The ID of the channel.'
example: '1430817781229813802'
required: true
schema:
type: integer
'/api/v1/guild/{guild_id}/channel/{channel_id}/ticket/notes':
post:
summary: 'Create ticket notes thread.'
operationId: createTicketNotesThread
description: 'Creates a private notes thread attached to the ticket.'
parameters: []
responses: { }
tags:
- 'Ticket (from channel)'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'The new name for the ticket, optional to set to default'
example: hello-world
nullable: true
reason:
type: string
description: 'Reason for naming the ticket'
example: 'Hello, world!'
nullable: true
anonymous:
type: boolean
description: 'Rename as bot, defaults to false'
example: null
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
-
in: path
name: channel_id
description: 'The ID of the channel.'
example: '1430817781229813802'
required: true
schema:
type: integer
'/api/v1/guild/{guild_id}/channel/{channel_id}/ticket/notes/add':
post:
summary: 'Add user to ticket notes thread.'
operationId: addUserToTicketNotesThread
description: "Adds a guild member to the ticket's private notes thread."
parameters: []
responses: { }
tags:
- 'Ticket (from channel)'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
user_id:
type: string
description: 'The ID of the user to perform the action on'
example: null
reason:
type: string
description: 'Reason for performing the action on the ticket/user'
example: 'Hello, world!'
anonymous:
type: boolean
description: 'Perform action as bot, defaults to false'
example: null
required:
- user_id
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
-
in: path
name: channel_id
description: 'The ID of the channel.'
example: '1430817781229813802'
required: true
schema:
type: integer
'/api/v1/guild/{guild_id}/channel/{channel_id}/ticket/notes/remove':
post:
summary: 'Remove user from ticket notes thread.'
operationId: removeUserFromTicketNotesThread
description: "Removes a guild member from the ticket's private notes thread."
parameters: []
responses: { }
tags:
- 'Ticket (from channel)'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
user_id:
type: string
description: 'The ID of the user to perform the action on'
example: null
reason:
type: string
description: 'Reason for performing the action on the ticket/user'
example: 'Hello, world!'
anonymous:
type: boolean
description: 'Perform action as bot, defaults to false'
example: null
required:
- user_id
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
-
in: path
name: channel_id
description: 'The ID of the channel.'
example: '1430817781229813802'
required: true
schema:
type: integer
'/api/v1/guild/{guild_id}/channel/{channel_id}/ticket/priority':
post:
summary: 'Set ticket priority.'
operationId: setTicketPriority
description: 'Updates the priority level of a ticket.'
parameters: []
responses: { }
tags:
- 'Ticket (from channel)'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
priority:
type: integer
description: 'The priority level index'
example: 1
reason:
type: string
description: 'Reason for changing the priority'
example: 'Hello, world!'
nullable: true
anonymous:
type: boolean
description: 'Change priority as bot, defaults to false'
example: null
required:
- priority
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
-
in: path
name: channel_id
description: 'The ID of the channel.'
example: '1430817781229813802'
required: true
schema:
type: integer
'/api/v1/guild/{guild_id}/channel/{channel_id}/ticket/transcript':
get:
summary: 'Get ticket transcript.'
operationId: getTicketTranscript
description: 'Returns the full transcript for a ticket, including channel and thread messages with attachments.'
parameters: []
responses:
200:
description: 'The ticket transcript'
content:
application/json:
schema:
type: object
example:
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
properties:
guild:
type: object
properties:
id:
type: string
example: '123456789'
name:
type: string
example: example
premium:
type: boolean
example: false
roles:
type: array
example:
-
id: '123456789'
name: example
color: value
position: 1
hoist: false
items:
type: object
properties:
id:
type: string
example: '123456789'
name:
type: string
example: example
color:
type: string
example: value
position:
type: integer
example: 1
hoist:
type: boolean
example: false
required:
- id
- name
- color
- position
channels:
type: array
example:
-
id: '123456789'
name: example
type: 0
parent_id: '123456789'
position: 1
items:
type: object
properties:
id:
type: string
example: '123456789'
name:
type: string
example: example
type:
type: integer
example: 0
parent_id:
type: string
example: '123456789'
nullable: true
position:
type: integer
example: 1
nullable: true
required:
- id
- name
- type
required:
- id
- name
group:
type: object
properties:
id:
type: string
example: '123456789'
name:
type: string
example: example
form_title:
type: string
example: value
form_fields:
type: array
example:
- []
items:
type: array
schedule:
type: array
example: []
schedule_timezone:
type: string
example: value
priority_levels:
type: array
example:
-
label: value
color: value
items:
type: object
properties:
label:
type: string
example: value
description: 'Must not be greater than 80 characters.'
color:
type: string
example: value
rating_levels:
type: array
example:
-
label: value
color: value
items:
type: object
properties:
label:
type: string
example: value
description: 'Must not be greater than 80 characters.'
color:
type: string
example: value
required:
- id
- name
- form_title
- schedule
- schedule_timezone
ticket:
type: object
properties:
id:
type: string
example: '123456789'
uuid:
type: string
example: value
status:
type: string
example: value
owner_id:
type: string
example: '123456789'
channel_id:
type: string
example: '123456789'
thread_id:
type: string
example: '123456789'
nullable: true
assigned_id:
type: string
example: '123456789'
nullable: true
number:
type: integer
example: 1
priority:
type: integer
example: 1
rating:
type: integer
example: 1
private:
type: boolean
example: false
form:
type: array
example: []
nullable: true
locked_at:
type: string
example: '2024-01-01T00:00:00.000000Z'
nullable: true
opened_at:
type: string
example: '2024-01-01T00:00:00.000000Z'
nullable: true
closed_reason:
type: string
example: value
nullable: true
closed_at:
type: string
example: '2024-01-01T00:00:00.000000Z'
nullable: true
created_at:
type: string
example: '2024-01-01T00:00:00.000000Z'
deleted_at:
type: string
example: '2024-01-01T00:00:00.000000Z'
nullable: true
transcript_saved_at:
type: string
example: '2024-01-01T00:00:00.000000Z'
nullable: true
required:
- id
- uuid
- status
- owner_id
- channel_id
- number
- priority
- rating
- created_at
channel_members:
type: array
example:
-
id: '123456789'
avatar: 'https://example.com/image.png'
name: example
bot: false
joined_at: '2024-01-01T00:00:00.000000Z'
roles: []
rating: 1
items:
type: object
properties:
id:
type: string
example: '123456789'
avatar:
type: string
example: 'https://example.com/image.png'
name:
type: string
example: example
bot:
type: boolean
example: false
joined_at:
type: string
example: '2024-01-01T00:00:00.000000Z'
nullable: true
roles:
type: array
example: []
rating:
type: integer
example: 1
nullable: true
required:
- id
- avatar
- name
- roles
channel_messages:
type: array
example: []
channel_message_attachments:
type: array
example:
-
id: '123456789'
name: example
hash: value
mime: value
size: 1
url: 'https://example.com/image.png'
encrypted: false
items:
type: object
properties:
id:
type: string
example: '123456789'
name:
type: string
example: example
hash:
type: string
example: value
mime:
type: string
example: value
size:
type: integer
example: 1
url:
type: string
example: 'https://example.com/image.png'
encrypted:
type: boolean
example: false
required:
- id
- name
- hash
- mime
- size
- url
thread_members:
type: array
example:
-
id: '123456789'
avatar: 'https://example.com/image.png'
name: example
bot: false
joined_at: '2024-01-01T00:00:00.000000Z'
roles: []
rating: 1
items:
type: object
properties:
id:
type: string
example: '123456789'
avatar:
type: string
example: 'https://example.com/image.png'
name:
type: string
example: example
bot:
type: boolean
example: false
joined_at:
type: string
example: '2024-01-01T00:00:00.000000Z'
nullable: true
roles:
type: array
example: []
rating:
type: integer
example: 1
nullable: true
required:
- id
- avatar
- name
- roles
thread_messages:
type: array
example: []
thread_message_attachments:
type: array
example:
-
id: '123456789'
name: example
hash: value
mime: value
size: 1
url: 'https://example.com/image.png'
encrypted: false
items:
type: object
properties:
id:
type: string
example: '123456789'
name:
type: string
example: example
hash:
type: string
example: value
mime:
type: string
example: value
size:
type: integer
example: 1
url:
type: string
example: 'https://example.com/image.png'
encrypted:
type: boolean
example: false
required:
- id
- name
- hash
- mime
- size
- url
required:
- guild
- group
- ticket
- channel_messages
- thread_messages
tags:
- 'Ticket (from channel)'
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
-
in: path
name: channel_id
description: 'The ID of the channel.'
example: '1430817781229813802'
required: true
schema:
type: integer
'/api/v1/guild/{guild_id}/channel/{channel_id}/ticket/save':
post:
summary: 'Save ticket transcript.'
operationId: saveTicketTranscript
description: "Saves the current state of a ticket's transcript and returns the updated transcript data."
parameters: []
responses: { }
tags:
- 'Ticket (from channel)'
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
-
in: path
name: channel_id
description: 'The ID of the channel.'
example: '1430817781229813802'
required: true
schema:
type: integer
'/api/v1/guild/{guild_id}/channel/{channel_id}/ticket/owner':
post:
summary: 'Change ticket owner.'
operationId: changeTicketOwner
description: 'Transfers ownership of a ticket to another user.'
parameters: []
responses: { }
tags:
- 'Ticket (from channel)'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
user_id:
type: string
description: 'The ID of the user to perform the action on'
example: null
reason:
type: string
description: 'Reason for performing the action on the ticket/user'
example: 'Hello, world!'
anonymous:
type: boolean
description: 'Perform action as bot, defaults to false'
example: null
required:
- user_id
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
-
in: path
name: channel_id
description: 'The ID of the channel.'
example: '1430817781229813802'
required: true
schema:
type: integer
'/api/v1/guild/{guild_id}/channel/{channel_id}/ticket/add':
post:
summary: 'Add user to ticket.'
operationId: addUserToTicket
description: 'Adds a guild member to the ticket, granting them access to the ticket channel.'
parameters: []
responses: { }
tags:
- 'Ticket (from channel)'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
user_id:
type: string
description: 'The ID of the user to perform the action on'
example: null
reason:
type: string
description: 'Reason for performing the action on the ticket/user'
example: 'Hello, world!'
anonymous:
type: boolean
description: 'Perform action as bot, defaults to false'
example: null
required:
- user_id
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
-
in: path
name: channel_id
description: 'The ID of the channel.'
example: '1430817781229813802'
required: true
schema:
type: integer
'/api/v1/guild/{guild_id}/channel/{channel_id}/ticket/remove':
post:
summary: 'Remove user from ticket.'
operationId: removeUserFromTicket
description: 'Removes a guild member from the ticket, revoking their access to the ticket channel.'
parameters: []
responses: { }
tags:
- 'Ticket (from channel)'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
user_id:
type: string
description: 'The ID of the user to perform the action on'
example: null
reason:
type: string
description: 'Reason for performing the action on the ticket/user'
example: 'Hello, world!'
anonymous:
type: boolean
description: 'Perform action as bot, defaults to false'
example: null
required:
- user_id
parameters:
-
in: path
name: guild_id
description: 'The ID of the guild.'
example: '1241080059528347678'
required: true
schema:
type: integer
-
in: path
name: channel_id
description: 'The ID of the channel.'
example: '1430817781229813802'
required: true
schema:
type: integer
/api/v1/user/me:
get:
summary: 'Get current user.'
operationId: getCurrentUser
description: "Returns the currently authenticated user's information."
parameters: []
responses:
200:
description: 'The authenticated user'
content:
application/json:
schema:
type: object
example:
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'
properties:
id:
type: string
example: '337842567937046150'
description: 'The user snowflake ID'
name:
type: string
example: John
description: 'The user display name'
nullable: true
username:
type: string
example: john
description: 'The username'
discriminator:
type: string
example: '0001'
description: 'The user discriminator'
avatar:
type: string
example: 'https://cdn.discordapp.com/avatars/123/abc.png'
description: 'The user avatar URL'
locale:
type: string
example: en
description: 'The user locale'
nullable: true
bot:
type: boolean
example: false
description: 'Whether the user is a bot'
verified:
type: string
example: '934674431964242580'
description: 'Whether the user is verified'
joined_at:
type: string
example: '2024-01-01T00:00:00.000000Z'
description: 'When the user joined'
nullable: true
required:
- id
- username
- discriminator
- avatar
tags:
- User
/api/v1/user/me/guilds:
get:
summary: 'List guilds.'
operationId: listGuilds
description: 'Returns all guilds accessible by the authenticated user. Filters out suspended and deleted guilds.'
parameters: []
responses:
200:
description: 'List of guilds'
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
type: string
example: '571707999220136938'
description: 'The guild snowflake ID'
name:
type: string
example: 'My Server'
description: 'The guild name'
premium:
type: string
example: '672951452783139208'
description: 'Whether the guild has premium'
premium_ends_at:
type: string
example: '2024-01-01T00:00:00.000000Z'
description: 'When premium expires'
nullable: true
joined_at:
type: string
example: '2024-01-01T00:00:00.000000Z'
description: 'When the bot joined the guild'
nullable: true
example:
-
id: '571707999220136938'
name: 'My Server'
premium: '672951452783139208'
premium_ends_at: '2024-01-01T00:00:00.000000Z'
joined_at: '2024-01-01T00:00:00.000000Z'
tags:
- User