---
title: "List Statuses"
method: GET
path: "/api/psa/{team_key}/connection/{connection_key}/statuses"
tags: ["psa"]
---

# List Statuses

`GET /api/psa/{team_key}/connection/{connection_key}/statuses`

## Request

- Base URL: `https://api.superit.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.superit.ai/api/psa/{team_key}/connection/{connection_key}/statuses`
- Auth: HTTP bearer

## Path parameters

- `team_key` string, required
- `connection_key` string, required

## Response `200`

Successful Response

- StatusResponse[]
  - `key` string, required
  - `entityId` string, required
  - `name` string, required
  - `psaType` string, required
  - `isActive` boolean, required
  - `statusCategory` 'NEW' | 'OPEN' | 'CLOSED', required: Generalised PSA ticket status category. Each PsaStatus row is mapped to one of these by an admin (or by the name-pattern backfill in migration 0182). Triage rules reference categories rather than raw status names so defaults stay universal. Three buckets, deliberately. The original nine (WAITING, ESCALATED, ON_HOLD, CANCELLED, MERGED, DUPLICATE) made the one question this field exists to answer — "how many tickets are open right now" — impossible to express as a single predicate, because whether WAITING and ON_HOLD counted as open was a judgement call every caller made differently. WAITING / ESCALATED / ON_HOLD are open; CANCELLED / MERGED / DUPLICATE are closed. MERGED and DUPLICATE never had a single row in production.
  - `cwBoardId` integer, nullable, required
  - `llmInstructions` string, nullable, required

## Other responses

- `400`: Invalid input
- `401`: Not authenticated
- `403`: Forbidden
- `404`: Not found
- `405`: Method not allowed
- `409`: Conflict
- `422`: Validation Error

---

[API](https://skmtc.dev/superit/apis/super-it-api.md) - [All operations](https://skmtc.dev/superit/apis/super-it-api/llms.txt) - [OpenAPI document](https://skmtc.dev/superit/apis/super-it-api/revisions/4944d556c2bb?raw)
