List projects
Retrieve a list of projects. Counter fields in each result follow one of two scopes:
- Per-user progress — computed for the authenticated user and their project role (for example
reviewed_number,review_total_tasks,queue_done,queue_total,queue_left). These power project-card progress in the UI and differ across users. Note:queue_leftcounts manual review assignments only; when it is0, the card usesreview_total_tasks/reviewed_numberfor auto-review progress. - Project-wide totals — the same for every caller (for example
task_number,finished_task_number).
For organization-level reviewed-task totals (all reviewers combined), use GET /api/analytics/kpis/tasks_reviewed?projects={id}&tz=UTC rather than reviewed_number. See Analytics KPI tasks_reviewed, tasks_pending_review, annotated_tasks, and total_tasks for other project-wide metrics.
Authentication
The token (or API key) must be passed as a request header. You can find your user token on the User Account page in Label Studio. Example:
curl https://label-studio-host/api/projects -H “Authorization: Token [your-token]”Query parameters
Filter projects by pinned status. Use ‘pinned_only’ to return only pinned projects, ‘exclude_pinned’ to return only non-pinned projects, or ‘all’ to return all projects.
Multiple values may be separated by commas. (comma-separated values)
Comma-separated list of count fields to include in the response to optimize performance. Available fields: task_number, finished_task_number, total_predictions_number, total_annotations_number, num_tasks_with_annotations, useful_annotation_number, ground_truth_number, skipped_annotations_number. If not specified, all count fields are included.
Filter lse_project__source_interface_id by exact match
Filter current_state by exact match
Filter title by contains (case-insensitive)