---
title: "Reorder message queue"
method: PUT
path: "/api/apps/{app_id}/chat/queue/reorder"
---

# Reorder message queue

`PUT /api/apps/{app_id}/chat/queue/reorder`

## Request

- Base URL: `https://app.base44.com`
- URL: `https://app.base44.com/api/apps/{app_id}/chat/queue/reorder`
- Auth: HTTP bearer

<Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>

Changes the order queued messages run in. Pass the IDs in the new order.

A message that joined the queue after you read it, and so isn't in your list, keeps its place after the ones you list.

This is limited to 60 requests per minute per app for each workspace's personal API keys, so every key in a workspace shares one allowance. Every endpoint that changes the queue shares it. Some workspaces have a different limit.

<Note>This endpoint accepts a personal API key belonging to a user with editor access to the app. A read-only key is refused, and workspace API keys are not accepted.</Note>

<Warning>The response includes fields beyond the ones documented here. Don't rely on undocumented response fields, as they can change at any time.</Warning>

## Path parameters

- `app_id` string, required: ID of the app whose message queue this request acts on.

## Query parameters

- `branch_id` string: ID of the branch to work on, as returned by [List branches](/api-reference/list-branches). Omit it to work on the app's main branch.

## Request body

- ReorderQueuePayload
  - `item_ids` string[], required: IDs of queued messages in the order you want them to run. IDs not in the queue are ignored, and queued messages you leave out keep their order after the ones you list. Each ID can appear once.

## Response `200`

The queue in its new order.

- MessageQueue: The messages waiting to run, in the order they run.
  - `items` QueuedMessage[], required: The queued messages, next to run first. Holds at most 7.
    - `id` string, required: ID of the queued message.
    - `content` string, required: Text of the message, as it will be sent to the AI.
    - `branch_id` string, nullable, required: ID of the branch the message was queued on, or `null` for main. The API acts on main's queue, so this is normally `null`.
    - `created_at` string, required: When the message was queued, as a UTC timestamp in ISO 8601 format.
  - `is_paused` boolean, required: Whether the queue is paused. While it is, queued messages don't run.

## Other responses

- `401`: Missing or invalid credentials.
- `403`: You don't have editor access to this app, the app is blocked, you're a viewer in the app's workspace, your API key is read-only, or you used a workspace API key.
- `404`: App not found, or no branch you can see has this `branch_id`.
- `422`: The request body is missing `item_ids`, it isn't a list of strings, or it repeats an ID.
- `429`: Rate limit exceeded. The base limit is 60 requests per minute. See [Rate limits](/developers/references/apps-api/get-started/rate-limits) for the multiplier your plan gets.

## Changes

> 58 revisions in range; 1 not diffed.

- **2026-10-21** `c23775445de2`: 1 breaking, 1 info
  - `query` request parameter `branch_id` list-of-types was narrowed by removing types `null`
  - for the `query` request parameter `branch_id`, the type was generalized from no type to `string`
- **2026-10-21** `721c47176351`: 1 info
  - added the new optional `query` request parameter `branch_id`
- **2026-10-12** `5e139db2e643`: 1 info
  - the endpoint scheme security `PersonalAccessTokenAuth` was added to the API
- **2026-10-06** `dddf17e0f9f0`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/adexad/apis/base44-app-management-api/changes/api/apps/:app_id/chat/queue/reorder/put.md)

---

[API](https://skmtc.dev/adexad/apis/base44-app-management-api.md) · [All operations](https://skmtc.dev/adexad/apis/base44-app-management-api/llms.txt) · [OpenAPI document](https://skmtc.dev/adexad/apis/base44-app-management-api/revisions/fa29e915c226?raw)
