---
title: "The front desk: badge counts and what needs the owner"
method: GET
path: "/api/v1/desk"
tags: ["Dardaris"]
---

# The front desk: badge counts and what needs the owner

`GET /api/v1/desk`

## Request

- Base URL: `http://localhost:5180`
- URL: `http://localhost:5180/api/v1/desk`
- Auth: API key in cookie `better-auth.session_token`

Everything here is traced to a record that exists. `attention` is ordered by weight, so an emergency sits above a rent figure and the hand-off sits last. Use `limit` to take only the top of it.

## Query parameters

- `limit` integer

## Response `200`

The counts and the attention list.

- object
  - `ok` unknown, required
  - `data` object, required
    - `badges` object, required: The counts the rail wears, so a client never recomputes them.
      - `pendingApprovals` number, required
      - `unreadThreads` number, required
      - `openArrears` number, required
      - `openIssues` number, required
      - `openTasks` number, required
      - `expiringCertificates` number, required
      - `unmatchedTransactions` number, required
      - `needsYou` number, required: Everything genuinely waiting on a human, rather than everything that is open.
    - `attention` object[], required: What the owner should look at, sorted by weight so the worst thing is first.
      - `id` string, required: Composite and stable, such as `arrears:arr_003`. Not a record id: use `entityId` for that.
      - `kind` 'approval' | 'arrears' | 'issue' | 'certificate' | 'lease' | 'task' | 'reconciliation' | 'vacancy', required
      - `title` string, required
      - `detail` string, required
      - `weight` number, required: Higher sorts first.
      - `severity` 'critical' | 'serious' | 'warning' | 'info', required
      - `link` string, required: Where in the product to go to deal with it.
      - `entityId` string, required: Stable record id, e.g. `lse_012`.
  - `meta` object, required
    - `requestId` string, required: Echoed in the x-request-id header. Quote it in a bug report.

## Other responses

- `400`: `limit` was not a whole number between 1 and 50.

---

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