---
title: "Select exception ids by filter"
method: GET
path: "/v1/exceptions/ids"
tags: ["Exception"]
---

# Select exception ids by filter

`GET /v1/exceptions/ids`

Resolves the ids of every exception matching the SAME filter as GET /v1/exceptions (status, severity, contextId, reason, assigned_to, external_system, search, date_from, date_to, min_age_days), up to a cap of 10000, for the bulk "select all matching" path. The response carries the filtered total and a truncated flag; the client chunks the returned ids into the capped bulk-action calls. No pagination/sort: it returns the whole filtered set (capped).

## Query parameters

- `contextId` string, uuid — Filter by reconciliation context ID (UUID, verified against the tenant; 404 when unknown)
- `status` 'OPEN' | 'ASSIGNED' | 'RESOLVED' — Filter by status
- `severity` 'LOW' | 'MEDIUM' | 'HIGH' | 'CRITICAL' — Filter by severity
- `reason` 'UNMATCHED' | 'FX_RATE_UNAVAILABLE' | 'MISSING_BASE_AMOUNT' | 'MISSING_BASE_CURRENCY' | 'SPLIT_INCOMPLETE' | 'VALIDATION_FAILED' | 'SOURCE_MISMATCH' | 'DUPLICATE_TRANSACTION' | 'FEE_VARIANCE' | 'FEE_DATA_MISSING' | 'FEE_CURRENCY_MISMATCH' | 'FX_RATE_VARIANCE' | 'AGED_BREAK' | 'OVER_SETTLED' — Filter by exception reason
- `assigned_to` string — Filter by assigned user
- `external_system` string — Filter by external system
- `search` string — Free-text search across transaction id, reason, and external issue id (case-insensitive substring match)
- `date_from` string — Filter from date, inclusive lower bound. Accepts an RFC 3339 timestamp or a bare date (YYYY-MM-DD); a bare date is taken at 00:00:00 UTC
- `date_to` string — Filter to date, inclusive upper bound. Accepts an RFC 3339 timestamp or a bare date (YYYY-MM-DD); a bare date covers the whole day through 23:59:59.999999999 UTC
- `min_age_days` integer — Filter to exceptions at least this many days old (by created_at). 0 (default) disables the filter.

## Response `200`

OK

- SelectExceptionIDsResponse
  - `ids` string[], nullable, required — Exception ids matching the filter, deterministically ordered (created_at DESC, id DESC), capped at 10000
  - `total` integer, required — Total exceptions matching the filter (full set; may exceed the returned ids)
  - `truncated` boolean, required — True when the filtered set exceeds the returned ids (the cap was reached); a single bulk pass will not cover every match

## Other responses

- `default` — Error

---

[API](https://skmtc.net/lerian/apis/identity-plugin.md) · [All operations](https://skmtc.net/lerian/apis/identity-plugin/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/lerian/identity-plugin/versions/25daba385532/schema)
