---
title: "Tickets and hours left on the board"
method: GET
path: "/api/v1/board/remaining"
---

# Tickets and hours left on the board

`GET /api/v1/board/remaining`

## Request

- Base URL: `https://tallymeter.com`
- URL: `https://tallymeter.com/api/v1/board/remaining`
- Auth: HTTP bearer

Outstanding work on a board: original estimate minus logged time, clamped to zero per ticket so an overrun on one ticket cannot cancel out another's real remaining work. Done and backlog columns are excluded — finished work and uncommitted ideas are not "left". Tickets with no estimate are counted in `tickets` and `unestimated_tickets` but contribute no hours. `since_last_snapshot` compares against the most recent nightly snapshot and is null until one exists. Requires the `board:read` scope.

## Query parameters

- `board` string

## Response `200`

Remaining work, overall and per column

- object
  - `board` string, required
  - `tickets` integer, required
  - `unestimated_tickets` integer: counted as tickets, contributing no hours
  - `remaining_seconds` integer, required
  - `remaining_hours` number, required
  - `logged_seconds` integer
  - `estimate_seconds` integer
  - `columns` object[], required
    - `name` string
    - `tickets` integer
    - `remaining_seconds` integer
    - `overrun_seconds` integer: logged past estimate, clamped out of the totals
  - `since_last_snapshot` object, nullable
    - `since` string, date
    - `tickets` integer
    - `remaining_seconds` integer

## Other responses

- `401`: Missing or invalid token
- `403`: Token lacks the required scope, or the account has no active plan
- `404`: No board in this workspace

---

[API](https://skmtc.dev/tallymeter/apis/tallymeter-api.md) · [All operations](https://skmtc.dev/tallymeter/apis/tallymeter-api/llms.txt) · [OpenAPI document](https://skmtc.dev/tallymeter/apis/tallymeter-api/revisions/50044367b64e?raw)
