Queues are lists of discussions your team works through, such as Bugs or Key accounts. Each supporter also has a queue of their own: assigning a discussion to someone puts it in their queue. A discussion can be in several queues at once. Customers never see queues.
Queues are set up in Tender; through the API you read them, list their discussions, and put discussions in and out of them.
Listing queues
GET /yoursite/queues
curl -H "Accept: application/vnd.tender-v1+json" \
-H "Authorization: Bearer $TENDER_TOKEN" \
https://api.tenderapp.com/yoursite/queues
{
"offset": 0,
"total": 6,
"per_page": 30,
"named_queues": [
{
"name": "Bugs",
"permalink": "bugs",
"user_id": null,
"open_discussions_count": 1,
"assigned_discussions_count": 1,
"href": "https://api.tenderapp.com/yoursite/queues/8",
"discussions_href": "https://api.tenderapp.com/yoursite/queues/8/discussions{/state}{?page,user_email}"
},
{
"name": "Daniel Reyes",
"permalink": "daniel-reyes",
"user_id": 11,
"open_discussions_count": 0,
"assigned_discussions_count": 0,
"href": "https://api.tenderapp.com/yoursite/queues/6",
"discussions_href": "https://api.tenderapp.com/yoursite/queues/6/discussions{/state}{?page,user_email}"
}
]
}
The list is under named_queues, with all the queue fields (trimmed here). Supporters' own queues are in it too, named after them, with their user_id. More than 30 come in pages: ?page=2.
A single queue
GET /yoursite/queues/{id}
curl -H "Accept: application/vnd.tender-v1+json" \
-H "Authorization: Bearer $TENDER_TOKEN" \
https://api.tenderapp.com/yoursite/queues/10
{
"name": "Key accounts",
"permalink": "key-accounts",
"created_at": "2026-10-09T06:47:11Z",
"updated_at": "2026-10-09T06:47:11Z",
"show_states": ["open", "assigned", "resolved"],
"show_order": null,
"notification_ids": [],
"open_discussions_count": 2,
"assigned_discussions_count": 0,
"resolved_discussions_count": 0,
"new_discussions_count": 0,
"user_id": null,
"tracker_id": null,
"href": "https://api.tenderapp.com/yoursite/queues/10",
"html_href": "https://yoursite.tenderapp.com/dashboard/queues/10-key-accounts",
"discussions_href": "https://api.tenderapp.com/yoursite/queues/10/discussions{/state}{?page,user_email}"
}
Queues are found by id only. An unknown one gets 404.
Your own queue
mine is your own queue, the discussions assigned to you:
curl -H "Accept: application/vnd.tender-v1+json" \
-H "Authorization: Bearer $TENDER_TOKEN" \
https://api.tenderapp.com/yoursite/queues/mine
{
"name": "Maya Okafor",
"permalink": "maya-okafor",
"notification_ids": ["10"],
"open_discussions_count": 0,
"user_id": 10,
"href": "https://api.tenderapp.com/yoursite/queues/5",
"html_href": "https://yoursite.tenderapp.com/dashboard/queues/5-maya-okafor",
"discussions_href": "https://api.tenderapp.com/yoursite/queues/5/discussions{/state}{?page,user_email}"
}
Queue fields
| Field | |
|---|---|
name |
The queue's name. A supporter's own queue has their name. |
permalink |
The name in the queue's address. |
user_id |
For a supporter's own queue, that supporter's user id; otherwise null. |
notification_ids |
The ids of the supporters emailed when a discussion is added to the queue. |
new_discussions_count |
Its open discussions no supporter has replied to yet. |
open_discussions_count |
Its open discussions, without a ticket. |
assigned_discussions_count |
Its open discussions with a ticket linked. |
resolved_discussions_count |
Its resolved discussions. |
tracker_id |
The issue tracker offered first when linking a ticket to one of its discussions, or null. |
show_states, show_order |
Display settings saved with the queue. The API's lists don't use them. |
created_at, updated_at |
When the queue was made and last changed. |
href |
This queue. The last part is its id. |
html_href |
The queue in your dashboard. |
discussions_href |
Its discussions. |
Discussions in a queue
GET /yoursite/queues/{id}/discussions
GET /yoursite/queues/{id}/discussions/{state}
Without a state, you get the queue's open and assigned discussions, the most recently active first:
curl -H "Accept: application/vnd.tender-v1+json" \
-H "Authorization: Bearer $TENDER_TOKEN" \
https://api.tenderapp.com/yoursite/queues/10/discussions
{
"offset": 0,
"total": 2,
"per_page": 30,
"discussions": [
{
"title": "Feedback: Syncing with Google Calendar",
"number": 2,
"state": "open",
"author_name": "Lucas Moreau",
"cached_queue_list": [10],
"href": "https://api.tenderapp.com/yoursite/discussions/20",
"html_href": "https://yoursite.tenderapp.com/discussions/knowledge-base-feedback/2"
},
{
"title": "Rate limits on the reports API",
"number": 6,
"state": "open",
"author_name": "Lucas Moreau",
"cached_queue_list": [10],
"href": "https://api.tenderapp.com/yoursite/discussions/15",
"html_href": "https://yoursite.tenderapp.com/discussions/questions/6"
}
]
}
Add a state (resolved, pending, new and the others) for those discussions instead; the states and parameters are the same as for listing discussions.
Two special ids work here:
mine: your own queue.
curl -H "Accept: application/vnd.tender-v1+json" \
-H "Authorization: Bearer $TENDER_TOKEN" \
https://api.tenderapp.com/yoursite/queues/mine/discussions
none: the pending discussions that are in no queue. It only works with the pending state,/queues/none/discussions/pending, and is a quick way to find what nobody has picked up yet.
Adding and removing discussions
Discussions go in and out of queues through the discussion's queue and unqueue actions, with the queue's id (or mine) in queue. They need a token with Read and write access.
POST /yoursite/discussions/{id}/queue?queue={queue_id}
POST /yoursite/discussions/{id}/unqueue?queue={queue_id}
Put a discussion in the Key accounts queue:
curl -X POST \
-H "Accept: application/vnd.tender-v1+json" \
-H "Authorization: Bearer $TENDER_TOKEN" \
"https://api.tenderapp.com/yoursite/discussions/21/queue?queue=10"
Assign it to yourself:
curl -X POST \
-H "Accept: application/vnd.tender-v1+json" \
-H "Authorization: Bearer $TENDER_TOKEN" \
"https://api.tenderapp.com/yoursite/discussions/21/queue?queue=mine"
To assign it to someone else, use their queue's id (the queue whose user_id is theirs).
Both answer {}. Each adds an internal note to the discussion ("Discussion was added to Key accounts queue", "Discussion was assigned to Maya Okafor"), and adding one emails the queue's notification_ids. Adding a discussion that's already in the queue, or removing one that isn't, changes nothing. Without queue the answer is 422, and with an unknown queue 404, both with no body.
The discussion's cached_queue_list gives the ids of the queues it's in.
