Tickets endpoints (Client API: account)
11 FeatherPanel Client API: account endpoints from user/tickets.php: methods, paths, auth, permissions, rate limits, parameters and responses.
Last synced from FeatherPanel 15b94e9 on .
On this page
Defined in backend/app/routes/user/tickets.php. Authentication used here: Signed-in user. Read Authentication for how to send credentials and Rate limits and errors for the response envelope.
Paths, methods, permissions and rate limits come from the route file. Summaries, parameters and response codes come from the OpenAPI annotations on the controllers; endpoints without annotations show only what the route file declares.
Endpoints
GET/api/user/tickets
Get user tickets Retrieve all tickets created by the authenticated user with pagination and optional filtering.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
page | query | integer | no | Page number for pagination |
limit | query | integer | no | Number of records per page |
search | query | string | no | Search term to filter tickets |
status_id | query | integer | no | Filter by status ID |
category_id | query | integer | no | Filter by category ID |
Response data field | Type | Description |
|---|---|---|
tickets | object[] | |
pagination | object |
curl -X GET "$PANEL_URL/api/user/tickets" \
-H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
-H "Accept: application/json"Responses: 200 Tickets retrieved successfully · 401 Unauthorized
PUT/api/user/tickets
Create ticket Create a new support ticket with optional server link and attachments.
| Body field | Type | Required | Description |
|---|---|---|---|
title | string | no | Ticket title |
description | string | no | Ticket description |
category_id | integer | no | Category ID |
priority_id | integer | no | Priority ID |
server_id | integer | no | Optional server ID |
curl -X PUT "$PANEL_URL/api/user/tickets" \
-H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"title":"","description":"","category_id":0,"priority_id":0,"server_id":0}'Plugin events: featherpanel:ticket:created
Responses: 201 Ticket created successfully · 400 Bad request - Invalid data
GET/api/user/tickets/categories
Get ticket categories Retrieve all available ticket categories.
curl -X GET "$PANEL_URL/api/user/tickets/categories" \
-H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
-H "Accept: application/json"Responses: 200 Categories retrieved successfully
GET/api/user/tickets/priorities
Get ticket priorities Retrieve all available ticket priorities.
curl -X GET "$PANEL_URL/api/user/tickets/priorities" \
-H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
-H "Accept: application/json"Responses: 200 Priorities retrieved successfully
GET/api/user/tickets/statuses
Get ticket statuses Retrieve all available ticket statuses.
curl -X GET "$PANEL_URL/api/user/tickets/statuses" \
-H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
-H "Accept: application/json"Responses: 200 Statuses retrieved successfully
GET/api/user/tickets/servers
Get user servers Retrieve all servers owned by the user for ticket linking.
curl -X GET "$PANEL_URL/api/user/tickets/servers" \
-H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
-H "Accept: application/json"Responses: 200 Servers retrieved successfully
POST/api/user/tickets/{uuid}/reply
Reply to ticket Add a reply message to a ticket.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
uuid | path | string (uuid) | yes | Ticket UUID |
| Body field | Type | Required | Description |
|---|---|---|---|
message | string | no | Reply message |
curl -X POST "$PANEL_URL/api/user/tickets/$UUID/reply" \
-H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"message":""}'Plugin events: featherpanel:ticket:message:created
Responses: 201 Reply sent successfully · 403 Access denied
POST/api/user/tickets/{uuid}/attachments
Upload attachment Upload an attachment file for a ticket or message.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
uuid | path | string (uuid) | yes | Ticket UUID |
| Body field | Type | Required | Description |
|---|---|---|---|
file | string (binary) | yes | File to upload |
message_id | integer | no | Optional message ID to attach to |
curl -X POST "$PANEL_URL/api/user/tickets/$UUID/attachments" \
-H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
-H "Accept: application/json" \
-F "file=@./file" \
-F "message_id="Responses: 201 Attachment uploaded successfully · 400 Bad request
DELETE/api/user/tickets/{uuid}/messages/{id}
Delete a ticket message Delete a message from a ticket. Users can only delete their own messages.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
uuid | path | string (uuid) | yes | Ticket UUID |
id | path | integer | yes | Message ID |
curl -X DELETE "$PANEL_URL/api/user/tickets/$UUID/messages/$ID" \
-H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
-H "Accept: application/json"Plugin events: featherpanel:ticket:message:deleted
Responses: 200 Message deleted successfully · 403 Access denied - user does not own this message · 404 Ticket or message not found
DELETE/api/user/tickets/{uuid}
Delete a ticket Delete a ticket and all its associated messages and attachments. Users can only delete their own tickets.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
uuid | path | string (uuid) | yes | Ticket UUID |
curl -X DELETE "$PANEL_URL/api/user/tickets/$UUID" \
-H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
-H "Accept: application/json"Plugin events: featherpanel:ticket:deleted
Responses: 200 Ticket deleted successfully · 403 Access denied - user does not own this ticket · 404 Ticket not found
GET/api/user/tickets/{uuid}
Get ticket details Retrieve detailed information about a specific ticket including messages and attachments.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
uuid | path | string (uuid) | yes | Ticket UUID |
curl -X GET "$PANEL_URL/api/user/tickets/$UUID" \
-H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
-H "Accept: application/json"Responses: 200 Ticket retrieved successfully · 403 Access denied - ticket belongs to another user · 404 Ticket not found