> This page is for version v1 (default).
> For other versions, use one of these documentation indexes:
> - v1 (default): https://docs.truemed.com/v-1/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.truemed.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.truemed.com/_mcp/server.

# Retrieve Catalog Eligibility

GET https://dev-api.truemed.com/api/v1/eligibility

Returns every item in your catalog that can be charged to an HSA/FSA card, with no customer in context.

This is **catalog eligibility** — a property of the product. An item appears here when its eligibility category
is HSA/FSA-payable for your merchant account, whether it requires a Letter of Medical Necessity or is
pre-approved and requires none. It is the widest possible answer: everything a customer *could* be eligible
for, before anyone has qualified.

Whether a *particular* customer can put one of these items on their HSA/FSA card is a separate question —
**customer eligibility** — answered by the keyed forms of this endpoint. Use this form to mark eligible items
wherever you present your catalog, and a keyed form once you know who is shopping.

Because no customer is identified, `eligibility_status` and `lmn_expires_at` are both null. Nothing in the response depends
on a customer, so it is safe to cache for as long as your catalog is stable.

Reference: https://docs.truemed.com/api-reference/eligibility/retrieve-catalog-eligibility

## Authentication

- `x-truemed-api-key` header (required) — Sales channel API key for merchant server-to-server authentication

## Servers

- `https://dev-api.truemed.com` (Development server, default)
- `https://api.truemed.com` (Production server)

## Response

### 200

Successful response

- `items` (list of string, required) — The catalog items that can be charged to an HSA/FSA card, each identified exactly as it is in order_items when you charge.
- `eligibility_status` (enum, optional, nullable) — Where this customer's clinical eligibility stands. Named apart from the payment `status` on other Truemed payloads, which is a different vocabulary. Per-value meanings are listed on the enum. Null for catalog eligibility, which identifies no customer. One of: - `approved` — A verified, unexpired letter stands for this customer. - `pending` — A survey is with a clinician; the outcome is not decided yet. - `expired` — The letter that covered this customer has lapsed and not been renewed. - `rejected` — A clinician reviewed this customer's most recent survey and declined it. - `never_requested` — No letter has ever been requested for this customer here.
  - Allowed values: `approved`, `pending`, `expired`, `rejected`, `never_requested`
- `lmn_expires_at` (date, optional, nullable) — When the letter determining this customer's coverage expires (inclusive, UTC). Null for catalog eligibility, which identifies no customer.

## Errors

### 400 Bad Request Error

Bad Request

- `error` (enum, required)
  - Allowed values: `TotalAmountInvalid`, `ValidationError`
- `message` (string, required)

### 404 Not Found Error

Not Found

- `error` (enum, required)
  - Allowed values: `NotFound`
- `message` (string, required)

### 405 Method Not Allowed Error

Method Not Allowed

- `error` (enum, required)
  - Allowed values: `MethodNotAllowed`
- `message` (string, required)

### 500 Internal Server Error

Internal Server Error

- `error` (enum, required)
  - Allowed values: `ServerError`
- `message` (string, required)

### 501 Not Implemented Error

Not Implemented

- `error` (enum, required)
  - Allowed values: `NotImplemented`
- `message` (string, required)

## Examples

**Response**

```json
{
  "items": [
    "string"
  ],
  "eligibility_status": "approved",
  "lmn_expires_at": "2023-01-15"
}
```

**SDK Code**

```python
import requests

url = "https://dev-api.truemed.com/api/v1/eligibility"

headers = {"x-truemed-api-key": "<apiKey>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```javascript
const url = 'https://dev-api.truemed.com/api/v1/eligibility';
const options = {method: 'GET', headers: {'x-truemed-api-key': '<apiKey>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```