API Reference
Queue
REST API endpoints for the human review queue — enqueue, claim, submit.
Enqueue datapoints
POST /api/datasets/:id/queueAdd datapoints to the review queue:
{
"datapoint_ids": ["01J...", "01J...", "01J..."]
}Creates a queue item for each datapoint ID. Items start in pending status.
Response:
{
"items": [
{
"id": "01J...",
"dataset_id": "01J...",
"datapoint_id": "01J...",
"status": "pending",
"claimed_by": null,
"claimed_at": null,
"original_data": { ... },
"edited_data": null,
"created_at": "2024-06-15T12:00:00Z"
}
],
"count": 3
}List queue items
GET /api/datasets/:id/queueReturns all queue items for the dataset:
{
"items": [
{
"id": "01J...",
"dataset_id": "01J...",
"datapoint_id": "01J...",
"status": "pending",
"claimed_by": null,
"claimed_at": null,
"original_data": { ... },
"edited_data": null,
"created_at": "2024-06-15T12:00:00Z"
}
],
"count": 10
}Claim a queue item
POST /api/queue/:item_id/claim{
"claimed_by": "reviewer@example.com"
}Locks the item for the specified reviewer. No one else can claim it while it's locked.
Returns the updated queue item with status: "claimed", claimed_by, and claimed_at set.
Returns 409 Conflict if the item is already claimed by someone else.
Submit a reviewed item
POST /api/queue/:item_id/submit{
"edited_data": {
"corrected_output": "The actual correct answer is...",
"notes": "Original output was missing context"
}
}The edited_data field accepts any JSON. It's stored alongside the original_data so you can compare what changed.
Returns the updated queue item with status: "completed" and edited_data set.