---
title: "List projects' counts"
method: GET
path: "/api/projects/counts/"
tags: ["Projects"]
---

# List projects' counts

`GET /api/projects/counts/`

Returns a list of projects with their counts. For example, task_number which is the total task number in project

## Query parameters

- `archived` boolean
- `filter` string
- `ids` string
- `include` string
- `ordering` string
- `page` integer
- `page_size` integer
- `search` string
- `source_interface_id` number
- `state` string
- `title` string
- `workspaces` number

## Response `200`

- PaginatedLseProjectCountsList
  - `count` integer, required
  - `next` string, uri, nullable
  - `previous` string, uri, nullable
  - `results` LseProjectCounts[], required
    - `duplication_status` string
    - `finished_task_number` integer, required — Project-wide count of tasks considered finished under project completion rules (agreement threshold, overlap, or FSM states such as needs-review and completed). Not a per-user queue counter. Analytics KPIs such as `annotated_tasks`, `done_tasks`, and `total_tasks` measure related but not identical project-wide totals.
    - `ground_truth_number` integer, required — Honeypot annotation number in project
    - `id` integer, required
    - `num_tasks_with_annotations` integer, nullable, required — Tasks with at least one annotation. For annotators, counts only tasks this user annotated; for other roles, counts project-wide. For analytics, use annotated_tasks or related KPIs with explicit project/member filters.
    - `queue_done` integer, required — Annotator-only: tasks this user has completed in the labeling queue for the project.
    - `queue_left` integer, nullable, required — Reviewer-only: remaining tasks in this user's manually assigned review queue. Returns 0 when no manual assignments apply; the project card then uses `review_total_tasks` and `reviewed_number` for auto-review progress. Not the same as the project-wide `tasks_pending_review` KPI.
    - `queue_total` integer, required — Role-dependent queue size. Annotators: total tasks in the labeling queue. Reviewers (list/counts): total manually assigned review tasks (same pool as `reviewer_queue_total`). Not the same as `task_number` (all project tasks) or `review_total_tasks` (auto-review stream pool).
    - `rejected` integer, required
    - `review_total_tasks` integer, nullable, required — Total tasks in this user's reviewer queue for the project (denominator for personal review progress). Respects review sampling limits when configured. Null for annotators. This is not the project-wide reviewed or pending count; see Analytics KPIs tasks_reviewed and tasks_pending_review for org-level totals.
    - `reviewed_number` integer, nullable, required — Tasks this user has reviewed in the project (personal reviewer progress shown on the project card). Includes only reviews created by the authenticated user, so the value can be lower than the project-wide reviewed total when multiple reviewers participate. Null for annotators. For all reviewed tasks in the project, use the Analytics KPI tasks_reviewed: GET /api/analytics/kpis/tasks_reviewed?projects={id}&tz=UTC.
    - `skipped_annotations_number` integer, nullable, required
    - `task_number` integer, required — Total task number in project
    - `total_annotations_number` integer, required
    - `total_predictions_number` integer, required
    - `useful_annotation_number` integer, nullable, required

## Changes

> 97 revisions in range; 1 not diffed.

- **2026-08-12** `89caa2dca86f` — 1 info
  - added the optional property `results/items/duplication_status` to the response with the `200` status
- **2026-07-08** `b5f055b9d45b` — 4 breaking
  - the response property `results/items/skipped_annotations_number` became nullable for the status `200`
  - the `results/items/queue_total` response's property type/format changed from `string`/`` to `integer`/`` for status `200`
  - the `results/items/skipped_annotations_number` response's property type/format changed from `string`/`` to `integer`/`` for status `200`
  - the `results/items/total_annotations_number` response's property type/format changed from `string`/`` to `integer`/`` for status `200`
- **2026-06-11** `290141244adc` — 1 info
  - added the new optional `query` request parameter `source_interface_id`
- **2026-05-29** `56cd2009bd4d` — 3 breaking
  - the response property `results/items/queue_left` became nullable for the status `200`
  - the response property `results/items/review_total_tasks` became nullable for the status `200`
  - the response property `results/items/reviewed_number` became nullable for the status `200`

[Change history](https://skmtc.dev/humansignal/apis/label-studio-api/changes/api/projects/counts/get.md)

---

[API](https://skmtc.dev/humansignal/apis/label-studio-api.md) · [All operations](https://skmtc.dev/humansignal/apis/label-studio-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/humansignal/label-studio-api/revisions/b589624c66c3/schema)
