Skip to content

API

Ticketeer provides a REST API that allows you to manage tickets, guilds, and channels programmatically. The API is a premium feature.

Base URL: https://ticketeer.bot/api/v1

For full endpoint details, request/response schemas, and interactive examples, see the API Reference.

Authentication

All API requests require a Bearer token. You can generate an API token from the Ticketeer dashboard under Server Settings > API Tokens.

Include the token in the Authorization header:

Authorization: Bearer <your-api-token>

Token abilities

When creating a token, you can configure the following abilities:

  • Anonymous — Actions performed by the token will not show a user attribution in ticket messages and logs.

Rate limiting

API requests are rate limited. If you exceed the limit, you will receive a 429 Too Many Requests response. Use the Retry-After header to determine when you can retry.

Endpoints overview

Below is a quick reference of all available endpoints. For full details including request bodies, response schemas, and examples, visit the API Reference.

User

MethodEndpointDescription
GET/user/meGet the authenticated user
GET/user/me/guildsList guilds accessible by the user

Guild

MethodEndpointDescription
GET/guild/{guild}Get guild details
POST/guild/{guild}/syncSync guild channels, roles, and tickets
GET/guild/{guild}/groupsList ticket groups
GET/guild/{guild}/panelsList ticket panels
GET/guild/{guild}/statsGet ticket statistics
GET/guild/{guild}/messagesList custom messages

Ticket

All ticket endpoints accept either a ticket ID or a channel ID. When using a channel ID, replace /ticket/{ticket} with /channel/{channel}/ticket.

MethodEndpointDescription
POST/guild/{guild}/ticketCreate a new ticket
GET/guild/{guild}/ticket/{ticket}Get ticket details
DELETE/guild/{guild}/ticket/{ticket}Delete a ticket
POST/guild/{guild}/ticket/{ticket}/openReopen a closed ticket
POST/guild/{guild}/ticket/{ticket}/closeClose an open ticket
POST/guild/{guild}/ticket/{ticket}/lockLock a ticket
POST/guild/{guild}/ticket/{ticket}/unlockUnlock a ticket
POST/guild/{guild}/ticket/{ticket}/assignAssign a user to the ticket
POST/guild/{guild}/ticket/{ticket}/unassignUnassign the ticket
POST/guild/{guild}/ticket/{ticket}/priorityChange ticket priority
POST/guild/{guild}/ticket/{ticket}/ownerTransfer ticket ownership
POST/guild/{guild}/ticket/{ticket}/addAdd a user to the ticket
POST/guild/{guild}/ticket/{ticket}/removeRemove a user from the ticket
POST/guild/{guild}/ticket/{ticket}/nameRename or clear the ticket name
POST/guild/{guild}/ticket/{ticket}/moveMove ticket to another group
POST/guild/{guild}/ticket/{ticket}/expireSet ticket expiry
POST/guild/{guild}/ticket/{ticket}/eternalToggle eternal status (no expiry)
POST/guild/{guild}/ticket/{ticket}/notesCreate a private notes thread
POST/guild/{guild}/ticket/{ticket}/notes/addAdd a user to the notes thread
POST/guild/{guild}/ticket/{ticket}/notes/removeRemove a user from the notes thread
GET/guild/{guild}/ticket/{ticket}/transcriptGet the ticket transcript
POST/guild/{guild}/ticket/{ticket}/saveSave the ticket transcript
POST/guild/{guild}/ticket/{ticket}/send/{user}Send transcript to a user via DM

Channel

MethodEndpointDescription
POST/guild/{guild}/channel/{channel}Send a message to a channel
POST/guild/{guild}/channel/{channel}/{message_id}Update a message in a channel
POST/guild/{guild}/message/{custom_message_id}/{channel}Send a custom message
POST/guild/{guild}/message/{custom_message_id}/{channel}/{message_id}Update a custom message

Error handling

The API returns standard HTTP status codes:

CodeDescription
200Success
400Bad request — check your request body
401Unauthorized — invalid or missing token
403Forbidden — insufficient permissions
404Not found — resource does not exist
429Too many requests — rate limited
500Internal server error

Error responses include a JSON body with a message field describing the error.