Queues

Updated 11 Oct, 2026 08:44 PM in API

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.

More from the knowledge base