curl --request GET \
--url https://app.base44.com/api/apps/{app_id}/chat/queue \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.base44.com/api/apps/{app_id}/chat/queue"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.base44.com/api/apps/{app_id}/chat/queue', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.base44.com/api/apps/{app_id}/chat/queue",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.base44.com/api/apps/{app_id}/chat/queue"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.base44.com/api/apps/{app_id}/chat/queue")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.base44.com/api/apps/{app_id}/chat/queue")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"items": [
{
"branch_id": "68f1a2b3c4d5e6f708192a3b",
"content": "Add a contact form to the home page",
"created_at": "2026-10-05T14:30:00.123456+00:00",
"id": "3b9d2f6e-8c41-4a7e-9f05-1d2c3b4a5e6f"
}
],
"is_paused": false
}Get message queue
Returns the messages waiting to run in the app’s AI chat, next to run first, and whether the queue is paused.
When the AI is busy, Send chat message can queue your message instead of running it and return {"queued": true}. Queued messages run one at a time, in order, each as its own turn, once the turn before it finishes. The queue holds up to 7 messages, and a queue nobody changes for 24 hours is emptied. Base44 queues messages on apps that more than one person edits, so on other apps the queue is usually empty.
Each branch has its own queue. Set branch_id to act on a branch’s queue. Without it, you act on main’s queue.
Stop generation pauses a queue that has messages in it, so nothing queued starts after you stop. Edit and resend pauses the queue while it runs and resumes it afterward, unless the AI ends that turn waiting on a tool call. A turn that ends waiting on a tool call also pauses the queue until you answer it with Submit tool-call input. Base44 doesn’t lift a pause you set yourself, but every pause expires 24 hours after it was set.
This is limited to 120 requests per minute per app for each workspace’s personal API keys, so every key in a workspace shares one allowance. Some workspaces have a different limit.
curl --request GET \
--url https://app.base44.com/api/apps/{app_id}/chat/queue \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.base44.com/api/apps/{app_id}/chat/queue"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.base44.com/api/apps/{app_id}/chat/queue', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.base44.com/api/apps/{app_id}/chat/queue",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.base44.com/api/apps/{app_id}/chat/queue"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.base44.com/api/apps/{app_id}/chat/queue")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.base44.com/api/apps/{app_id}/chat/queue")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"items": [
{
"branch_id": "68f1a2b3c4d5e6f708192a3b",
"content": "Add a contact form to the home page",
"created_at": "2026-10-05T14:30:00.123456+00:00",
"id": "3b9d2f6e-8c41-4a7e-9f05-1d2c3b4a5e6f"
}
],
"is_paused": false
}Authorizations
Personal access token, sent as Authorization: Bearer <token>. Each operation lists the permission it needs: read_only or full_access. A full-access token can call every operation. A read-only token can call only the operations that list read_only; anything else returns 403 read_only_credential_route_not_allowed.
Path Parameters
ID of the app whose message queue this request acts on.
Query Parameters
ID of the branch to work on, as returned by List branches. Omit it to work on the app's main branch.
Response
The app's message queue.
The messages waiting to run, in the order they run.
The queued messages, next to run first. Holds at most 7.
Show child attributes
Show child attributes
[
{
"branch_id": "68f1a2b3c4d5e6f708192a3b",
"content": "Add a contact form to the home page",
"created_at": "2026-10-05T14:30:00.123456+00:00",
"id": "3b9d2f6e-8c41-4a7e-9f05-1d2c3b4a5e6f"
}
]
Whether the queue is paused. While it is, queued messages don't run.
false
Was this page helpful?