View .md

Tasks endpoints (Client API: game servers)

10 FeatherPanel Client API: game servers endpoints from user/server/tasks.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/server/tasks.php. Authentication used here: Server access. 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/servers/{uuidShort}/schedules/{scheduleId}/tasks

Auth: Server accessDefault rate limit: 30 / minute (user-server-tasks)Route name: session-server-tasksController: TaskController::getTasksroute source

Get schedule tasks Retrieve all tasks for a specific schedule that the user owns or has subuser access to.

ParameterInTypeRequiredDescription
uuidShortpathstringyesServer short UUID
scheduleIdpathintegeryesSchedule ID
pagequeryintegernoPage number for pagination
per_pagequeryintegernoNumber of records per page
searchquerystringnoSearch term to filter tasks by action or payload
Response data fieldTypeDescription
dataTask[]
paginationTaskPagination
curl -X GET "$PANEL_URL/api/user/servers/$UUID_SHORT/schedules/$SCHEDULE_ID/tasks" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

Responses: 200 Schedule tasks retrieved successfully · 400 Bad request - Missing or invalid parameters · 401 Unauthorized - User not authenticated · 403 Forbidden - Access denied to server · 404 Not found - Server or schedule not found · 500 Internal server error - Failed to retrieve tasks

POST/api/user/servers/{uuidShort}/schedules/{scheduleId}/tasks

Auth: Server accessRoute name: session-server-create-taskController: TaskController::createTaskroute source

Create task Create a new task for a schedule with action validation and automatic sequence ordering.

ParameterInTypeRequiredDescription
uuidShortpathstringyesServer short UUID
scheduleIdpathintegeryesSchedule ID

Request body: TaskCreateRequest (application/json) · Response data: TaskCreateResponse

Body fieldTypeRequiredDescription
actionstringyesTask action type
payloadstringnoTask payload data
time_offsetintegernoTime offset in seconds
continue_on_failurebooleannoWhether to continue on failure
Response data fieldTypeDescription
idintegerCreated task ID
actionstringTask action type
sequence_idintegerTask sequence order
curl -X POST "$PANEL_URL/api/user/servers/$UUID_SHORT/schedules/$SCHEDULE_ID/tasks" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"action":"","payload":"","time_offset":0,"continue_on_failure":false}'

Plugin events: featherpanel:user:server:task:created

Responses: 201 Task created successfully · 400 Bad request - Missing required fields, invalid action, or invalid request body · 401 Unauthorized - User not authenticated · 403 Forbidden - Access denied to server · 404 Not found - Server or schedule not found · 500 Internal server error - Failed to create task

GET/api/user/servers/{uuidShort}/schedules/{scheduleId}/tasks/{taskId}

Auth: Server accessDefault rate limit: 30 / minute (user-server-tasks)Route name: session-server-get-taskController: TaskController::getTaskroute source

Get specific task Retrieve details of a specific task for a schedule that the user owns or has subuser access to.

ParameterInTypeRequiredDescription
uuidShortpathstringyesServer short UUID
scheduleIdpathintegeryesSchedule ID
taskIdpathintegeryesTask ID

Response data: Task

Response data fieldTypeDescription
idintegerTask ID
schedule_idintegerSchedule ID
sequence_idintegerTask sequence order
actionstringTask action type
payloadstringTask payload data
time_offsetintegerTime offset in seconds
is_queuedbooleanWhether task is queued
continue_on_failurebooleanWhether to continue on failure
created_atstring (date-time)Creation timestamp
updated_atstring (date-time)Last update timestamp
curl -X GET "$PANEL_URL/api/user/servers/$UUID_SHORT/schedules/$SCHEDULE_ID/tasks/$TASK_ID" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

Responses: 200 Task details retrieved successfully · 400 Bad request - Missing or invalid parameters · 401 Unauthorized - User not authenticated · 403 Forbidden - Access denied to server · 404 Not found - Server, schedule, or task not found · 500 Internal server error - Failed to retrieve task

PUT/api/user/servers/{uuidShort}/schedules/{scheduleId}/tasks/{taskId}

Auth: Server accessDefault rate limit: 10 / minute (user-server-tasks)Route name: session-server-update-taskController: TaskController::updateTaskroute source

Update task Update an existing task with new action validation and field updates.

ParameterInTypeRequiredDescription
uuidShortpathstringyesServer short UUID
scheduleIdpathintegeryesSchedule ID
taskIdpathintegeryesTask ID

Request body: TaskUpdateRequest (application/json)

Body fieldTypeRequiredDescription
actionstringnoTask action type
payloadstringnoTask payload data
time_offsetintegernoTime offset in seconds
continue_on_failurebooleannoWhether to continue on failure
Response data fieldTypeDescription
messagestringSuccess message
curl -X PUT "$PANEL_URL/api/user/servers/$UUID_SHORT/schedules/$SCHEDULE_ID/tasks/$TASK_ID" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"action":"","payload":"","time_offset":0,"continue_on_failure":false}'

Plugin events: featherpanel:user:server:task:updated

Responses: 200 Task updated successfully · 400 Bad request - Invalid action or invalid request body · 401 Unauthorized - User not authenticated · 403 Forbidden - Access denied to server · 404 Not found - Server, schedule, or task not found · 500 Internal server error - Failed to update task

DELETE/api/user/servers/{uuidShort}/schedules/{scheduleId}/tasks/{taskId}

Auth: Server accessRoute name: session-server-delete-taskController: TaskController::deleteTaskroute source

Delete task Delete a task from a schedule. Cannot delete queued tasks.

ParameterInTypeRequiredDescription
uuidShortpathstringyesServer short UUID
scheduleIdpathintegeryesSchedule ID
taskIdpathintegeryesTask ID
Response data fieldTypeDescription
messagestringSuccess message
curl -X DELETE "$PANEL_URL/api/user/servers/$UUID_SHORT/schedules/$SCHEDULE_ID/tasks/$TASK_ID" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

Plugin events: featherpanel:user:server:task:deleted

Responses: 200 Task deleted successfully · 400 Bad request - Missing parameters or task is queued · 401 Unauthorized - User not authenticated · 403 Forbidden - Access denied to server · 404 Not found - Server, schedule, or task not found · 500 Internal server error - Failed to delete task

PUT/api/user/servers/{uuidShort}/schedules/{scheduleId}/tasks/{taskId}/sequence

Auth: Server accessDefault rate limit: 10 / minute (user-server-tasks)Route name: session-server-update-task-sequenceController: TaskController::updateTaskSequenceroute source

Update task sequence Update the sequence order of a task within a schedule.

ParameterInTypeRequiredDescription
uuidShortpathstringyesServer short UUID
scheduleIdpathintegeryesSchedule ID
taskIdpathintegeryesTask ID

Request body: TaskSequenceUpdateRequest (application/json)

Body fieldTypeRequiredDescription
sequence_idintegeryesNew sequence order for the task
Response data fieldTypeDescription
messagestringSuccess message
curl -X PUT "$PANEL_URL/api/user/servers/$UUID_SHORT/schedules/$SCHEDULE_ID/tasks/$TASK_ID/sequence" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"sequence_id":0}'

Plugin events: featherpanel:user:server:task:sequence:updated

Responses: 200 Task sequence updated successfully · 400 Bad request - Missing sequence_id or invalid sequence_id · 401 Unauthorized - User not authenticated · 403 Forbidden - Access denied to server · 404 Not found - Server, schedule, or task not found · 500 Internal server error - Failed to update task sequence

PUT/api/user/servers/{uuidShort}/schedules/{scheduleId}/tasks/{taskId}/queue

Auth: Server accessDefault rate limit: 10 / minute (user-server-tasks)Route name: session-server-toggle-task-queuedController: TaskController::toggleTaskQueuedStatusroute source

Toggle task queued status Toggle the queued status of a task (queue/unqueue).

ParameterInTypeRequiredDescription
uuidShortpathstringyesServer short UUID
scheduleIdpathintegeryesSchedule ID
taskIdpathintegeryesTask ID

Response data: TaskStatusToggleResponse

Response data fieldTypeDescription
is_queuedintegerNew queued status
statusstringStatus description
curl -X PUT "$PANEL_URL/api/user/servers/$UUID_SHORT/schedules/$SCHEDULE_ID/tasks/$TASK_ID/queue" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

Plugin events: featherpanel:server:task:status:toggle

Responses: 200 Task queued status toggled successfully · 400 Bad request - Missing or invalid parameters · 401 Unauthorized - User not authenticated · 403 Forbidden - Access denied to server · 404 Not found - Server, schedule, or task not found · 500 Internal server error - Failed to toggle task status

GET/api/user/servers/{uuidShort}/schedules/{scheduleId}/tasks/with-schedule

Auth: Server accessDefault rate limit: 30 / minute (user-server-tasks)Route name: session-server-tasks-with-scheduleController: TaskController::getTasksWithScheduleroute source

Get tasks with schedule Retrieve all tasks for a schedule with schedule information included.

ParameterInTypeRequiredDescription
uuidShortpathstringyesServer short UUID
scheduleIdpathintegeryesSchedule ID
Response data fieldTypeDescription
dataTask[]
curl -X GET "$PANEL_URL/api/user/servers/$UUID_SHORT/schedules/$SCHEDULE_ID/tasks/with-schedule" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

Responses: 200 Tasks with schedule information retrieved successfully · 400 Bad request - Missing or invalid parameters · 401 Unauthorized - User not authenticated · 403 Forbidden - Access denied to server · 404 Not found - Server or schedule not found · 500 Internal server error - Failed to retrieve tasks

GET/api/user/servers/{uuidShort}/tasks/queued

Auth: Server accessDefault rate limit: 30 / minute (user-server-tasks)Route name: session-server-queued-tasksController: TaskController::getQueuedTasksroute source

Get queued tasks Retrieve all queued tasks for a server across all schedules.

ParameterInTypeRequiredDescription
uuidShortpathstringyesServer short UUID
Response data fieldTypeDescription
dataTask[]
curl -X GET "$PANEL_URL/api/user/servers/$UUID_SHORT/tasks/queued" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

Responses: 200 Queued tasks retrieved successfully · 400 Bad request - Missing or invalid UUID short · 401 Unauthorized - User not authenticated · 403 Forbidden - Access denied to server · 404 Not found - Server not found · 500 Internal server error - Failed to retrieve queued tasks

GET/api/user/servers/{uuidShort}/tasks/ready

Auth: Server accessDefault rate limit: 30 / minute (user-server-tasks)Route name: session-server-ready-tasksController: TaskController::getReadyTasksroute source

Get ready tasks Retrieve all ready tasks for a server across all schedules.

ParameterInTypeRequiredDescription
uuidShortpathstringyesServer short UUID
Response data fieldTypeDescription
dataTask[]
curl -X GET "$PANEL_URL/api/user/servers/$UUID_SHORT/tasks/ready" \
  -H "Authorization: Bearer $FEATHERPANEL_API_KEY" \
  -H "Accept: application/json"

Responses: 200 Ready tasks retrieved successfully · 400 Bad request - Missing or invalid UUID short · 401 Unauthorized - User not authenticated · 403 Forbidden - Access denied to server · 404 Not found - Server not found · 500 Internal server error - Failed to retrieve ready tasks