Queue settings & limits
Every default value, permission, and cap that governs how a queue behaves
This is the reference for every field, status, role, and limit that shapes a queue in the annotation workspace. Field names below are the API/SDK payload names; where a field is also a control on the queue’s form in the app, both set the same value.
Queue fields and their defaults
| Field | What it holds | Default |
|---|---|---|
name | The queue’s name. Must be unique among non-archived queues in its org and scope | required, no default |
description | Free text describing the queue’s purpose | empty |
instructions | Markdown guidelines shown to annotators | empty |
status | Workflow state: draft, active, paused, or completed (see transitions below) | draft |
assignment_strategy | How items get handed to annotators: manual, round robin, or load balanced. Round robin and load balanced are marked “Coming soon” in the app today, only manual is selectable | manual |
annotations_required | How many independent annotators must complete an item before it’s done | 1 |
reservation_timeout_minutes | How long an opened item stays locked to the annotator who opened it before it’s released back to the queue. Options are 15, 30, 60, or 240 minutes | 60 |
requires_review | Whether a completed item needs reviewer approval before it counts as done. Needs an entitlement, see Limits, caps, and gated features | false |
auto_assign | Whether every queue member can annotate any item without being assigned to it first | false |
is_default | Whether this is the queue Future AGI creates automatically for a project, dataset, or agent definition | false |
project / dataset / agent_definition | Which one, if any, the queue is scoped to. A queue is scoped to at most one of the three, or to none for an org-level queue | none |
A queue’s name only has to be unique among non-archived queues in its scope, so archiving a queue frees up its name for reuse. The same logic caps default queues: only one non-archived default queue can exist per project, per dataset, and per agent definition at a time.
Each label you attach to a queue carries two settings of its own: order, which controls where it appears in the annotation workspace, and required, which forces the annotator to fill it in before submitting. Marking a label required needs an entitlement, covered in Limits, caps, and gated features.
Queue statuses and the exact permitted transitions
| Status | Can move to |
|---|---|
| Draft | Active |
| Active | Paused, Completed |
| Paused | Active, Completed |
| Completed | Active, Paused |
There’s no path back to Draft once a queue leaves it, and Completed isn’t a dead end: reopening it by moving it to Active or Paused is a normal transition, not a special case.
Archive, restore, and hard delete
Archiving a queue takes it out of the active list. It stops accepting new work, but it can be restored later: everything about it (its items, labels, and annotators) comes back as it was.
Hard delete is different: it’s permanent. It removes the queue and everything attached to it for good, with no way to bring it back. To hard delete a queue, you have to pass force=true and type the queue’s exact name to confirm, so it can’t fire from a stray click or a typo.
Item statuses and the six source types
| Status | Meaning |
|---|---|
| Pending | Waiting for an annotator to pick it up |
| In Progress | An annotator has it open, reserved to them for the queue’s reservation_timeout_minutes so nobody else can grab it in the meantime. On a queue that requires review, In Progress also covers a submitted item awaiting reviewer approval: its reservation is cleared and it’s no longer open to anyone until a reviewer acts on it |
| Completed | All required annotations have been submitted for it (and approved, if the queue requires review) |
| Skipped | An annotator passed on it. It stays available for someone else to pick up |
An item can come from six sources:
| Source type | What it points to |
|---|---|
| Dataset row | A row from a dataset |
| Trace | A full trace |
| Span | A single span inside a trace |
| Prototype | A prototype run |
| Simulation | A simulation |
| Session | A trace session |
Roles and what each role can do
| Role | Can do |
|---|---|
| Annotator | Submit annotations on items in the queue |
| Reviewer | Approve or send back submitted annotations, when the queue requires review |
| Manager | Configure the queue: its settings, labels, and annotators |
Only annotators and managers can actually submit an annotation. Holding the reviewer role by itself doesn’t grant that.
Whoever creates a queue becomes its first manager automatically. Org admins and workspace admins act as managers on every queue in their scope too, without ever being added as a member.
Limits, caps, and gated features
| Limit | Value |
|---|---|
| Items per Add Items call | 1,000 |
| Filter-based selection ceiling | 10,000 items |
| Items per synchronous export | 1,000 |
| Mentions per comment | 50 |
| Emoji reaction length | 16 characters |
Note
How many queues your org can have is capped by your plan, not by the product itself, so the number depends on your plan.
Two more things need an entitlement: turning on Requires Review for a queue, and marking a per-label required flag. Both fail with an upgrade prompt if your plan doesn’t include them.
Keep exploring
Questions & Discussion