---
title: "Task Counts"
method: GET
path: "/tasks/counts"
---

# Task Counts

`GET /tasks/counts`

Return task counts per status without serialising task bodies.

This is the lightweight alternative to GET /tasks for orchestrator
tick summaries and dashboard polling.

## Query parameters

- `tenant` string, nullable

## Response `200`

Successful Response

- TaskCountsResponse — Lightweight status counts - no task bodies. Every value in :class:`bernstein.core.tasks.models.TaskStatus` is exposed as a field so the GUI's status-chip badges can render real numbers instead of ``-``. Adding fields here is non-breaking - existing clients that consume only ``open``/``claimed``/``done`` continue to work and the new fields default to ``0``.
  - `open` integer
  - `claimed` integer
  - `in_progress` integer
  - `done` integer
  - `closed` integer
  - `failed` integer
  - `blocked` integer
  - `cancelled` integer
  - `planned` integer
  - `pending_approval` integer
  - `waiting_for_subtasks` integer
  - `orphaned` integer
  - `abandoned` integer
  - `blocked_by_abandon` integer
  - `refused` integer
  - `suspended` integer
  - `total` integer

## Other responses

- `403` — Tenant scope access denied
- `404` — Resource not found or tenant mismatch
- `422` — Validation Error

---

[API](https://skmtc.net/sipyourdrink-ltd/apis/bernstein-task-server.md) · [All operations](https://skmtc.net/sipyourdrink-ltd/apis/bernstein-task-server/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/sipyourdrink-ltd/bernstein-task-server/versions/86f514b4e920/schema)
