BrowserStack AI Evals

Annotation Queues API

Create and manage annotation queues for human review of traces.

Annotation Queues API

Annotation queues enable human reviewers to score and label traces. You can create queues, add items from traces, and track review progress programmatically.

List Annotation Queues

GET /api/public/annotation-queues
ParameterTypeDescription
pageintegerPage number (default: 1)
limitintegerItems per page (default: 50)
curl "https://evals-api.browserstack.com/api/public/annotation-queues" \
  -u "pk-lf-...:sk-lf-..."

Response:

{
  "data": [
    {
      "id": "queue-uuid-1",
      "name": "Production Review",
      "description": "Review production traces for quality",
      "scoreConfigIds": ["config-uuid-1", "config-uuid-2"],
      "createdAt": "2026-04-03T10:00:00.000Z",
      "updatedAt": "2026-04-03T10:00:00.000Z"
    }
  ],
  "meta": {
    "page": 1,
    "limit": 50,
    "totalItems": 3,
    "totalPages": 1
  }
}

Get Annotation Queue

GET /api/public/annotation-queues/{queueId}
curl "https://evals-api.browserstack.com/api/public/annotation-queues/queue-uuid-1" \
  -u "pk-lf-...:sk-lf-..."

Response:

{
  "id": "queue-uuid-1",
  "name": "Production Review",
  "description": "Review production traces for quality",
  "scoreConfigIds": ["config-uuid-1"],
  "createdAt": "2026-04-03T10:00:00.000Z",
  "updatedAt": "2026-04-03T10:00:00.000Z"
}

Create Annotation Queue

POST /api/public/annotation-queues
FieldTypeRequiredDescription
namestringYesQueue name
descriptionstringNoDescription
scoreConfigIdsstring[]NoScore config IDs for this queue
curl -X POST https://evals-api.browserstack.com/api/public/annotation-queues \
  -u "pk-lf-...:sk-lf-..." \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Production Review",
    "description": "Review production traces",
    "scoreConfigIds": ["config-uuid-1"]
  }'

Delete Annotation Queue

DELETE /api/public/annotation-queues/{queueId}
curl -X DELETE "https://evals-api.browserstack.com/api/public/annotation-queues/queue-uuid-1" \
  -u "pk-lf-...:sk-lf-..."

Queue Items

Queue items are the individual traces or observations assigned for review.

List Queue Items

GET /api/public/annotation-queues/{queueId}/items
ParameterTypeDescription
pageintegerPage number
limitintegerItems per page
statusstringFilter by status: PENDING, ACTIVE, DONE, SKIPPED
runIdsstring | string[]Filter by run IDs
curl "https://evals-api.browserstack.com/api/public/annotation-queues/queue-uuid-1/items?status=PENDING" \
  -u "pk-lf-...:sk-lf-..."

Response:

{
  "data": [
    {
      "id": "item-uuid-1",
      "queueId": "queue-uuid-1",
      "objectId": "trace-uuid-1",
      "objectType": "TRACE",
      "status": "PENDING",
      "completedAt": null,
      "createdAt": "2026-04-03T10:00:00.000Z",
      "updatedAt": "2026-04-03T10:00:00.000Z"
    }
  ],
  "meta": {
    "page": 1,
    "limit": 50,
    "totalItems": 5,
    "totalPages": 1
  }
}

Get Queue Item

GET /api/public/annotation-queues/{queueId}/items/{itemId}
curl "https://evals-api.browserstack.com/api/public/annotation-queues/queue-uuid-1/items/item-uuid-1" \
  -u "pk-lf-...:sk-lf-..."

Create Queue Item

POST /api/public/annotation-queues/{queueId}/items
FieldTypeRequiredDescription
objectIdstringYesID of the trace or observation
objectTypestringYesTRACE or OBSERVATION
curl -X POST "https://evals-api.browserstack.com/api/public/annotation-queues/queue-uuid-1/items" \
  -u "pk-lf-...:sk-lf-..." \
  -H "Content-Type: application/json" \
  -d '{
    "objectId": "trace-uuid-1",
    "objectType": "TRACE"
  }'

Delete Queue Item

DELETE /api/public/annotation-queues/{queueId}/items/{itemId}
curl -X DELETE "https://evals-api.browserstack.com/api/public/annotation-queues/queue-uuid-1/items/item-uuid-1" \
  -u "pk-lf-...:sk-lf-..."

Item Status Values

StatusDescription
PENDINGWaiting for review
ACTIVECurrently being reviewed
DONEReview complete
SKIPPEDReviewer skipped this item

Object Types

objectTypeDescription
TRACEThe item references a trace
OBSERVATIONThe item references a specific observation