---
title: "Read the condition-classification flags for a passport."
method: GET
path: "/api/v1/passports/{id}/condition-flags"
tags: ["Passports"]
---

# Read the condition-classification flags for a passport.

`GET /api/v1/passports/{id}/condition-flags`

## Request

- Base URL: `https://app.tracepass.eu`
- URL: `https://app.tracepass.eu/api/v1/passports/{id}/condition-flags`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://app.tracepass.eu/api/oauth/authorize`, token URL `https://app.tracepass.eu/api/oauth/token`, scopes: `passports:read`)

Returns the resolved condition profile for a passport —
`Record<flagKey, { value, status, source }>`. Condition flags
are reviewer-approved yes/no facts (e.g. `hasBMS`,
`rechargeable`, `externalStorageOnly`, `isStationaryBess` for
batteries) that gate conditional legal duties: an `approved`
flag whose gate applies makes the gated field required, and an
empty such field is a **hard publish block** (`conditional_missing`).
Absent or `pending_review` flags never block publishing.

Valid flag keys are category-specific (battery: `hasBMS`,
`rechargeable`, `externalStorageOnly`, `isStationaryBess`).
Categories with no flags in the registry return an empty profile.

The `audit` array is stripped from the v1 response; use the
dashboard to inspect per-flag history.

Read-only. Counts as one v1 passport read against the daily cap.

## Response `200`

Condition profile.

- object
  - `passportId` string, required: MongoDB ObjectId hex string (24 chars).
  - `conditionProfile` ConditionProfile, required: A map of flagKey → ConditionFlag representing the resolved condition profile for a passport. Valid flag keys are category-specific: `battery` supports `hasBMS`, `rechargeable`, `externalStorageOnly`, and `isStationaryBess`. Categories with no flags return an empty object. The `audit` array is stripped from v1 responses.

## Other responses

- `401`: Missing or invalid API key.
- `404`: Resource doesn't exist or is in a different workspace.
- `429`: Daily v1 write or passport-read budget exhausted. Resets at 00:00 UTC.

---

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