> ## Documentation Index
> Fetch the complete documentation index at: https://redbark.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# List Categories

> Retrieve Redbark's transaction category vocabulary, including category identifiers and parent relationships.

<Warning>
  **v1 is deprecated.** It stays available and unchanged for existing integrations, but it gets no new fields and will be sunset no earlier than 12 months after v2 reaches general availability (announced with `Deprecation` / `Sunset` headers). Build new work on [API v2](/docs/api-reference/v2/overview); see [migrating from v1](/docs/api-reference/v2/migrating-from-v1).
</Warning>

<Info>
  The REST API is in **beta**. This endpoint's response shape may change.
</Info>

Returns the list of transaction categories that Redbark assigns to transactions. Categories are derived from CDR enrichment data provided by the banking provider.

<Info>
  These are the raw, fixed bank category codes — distinct from your own [custom categories](/docs/categories), which appear on transactions as `customCategory` and `customCategoryGroup` and are managed on the app's Categories page.
</Info>

Use this endpoint to build category mapping configurations for tools like [Sure sync](/docs/sure) and [Actual Budget sync](/docs/actual-budget).

## Request

```
GET /v1/categories
```

### Headers

| Header          | Required | Description           |
| --------------- | -------- | --------------------- |
| `Authorization` | Yes      | `Bearer YOUR_API_KEY` |

Trialing customers retain full API access.

## Response

This is a static enum list; it does not vary per connection.

```json theme={null}
{
  "categories": [
    { "key": "BANK_FEES", "label": "Bank Fees" },
    { "key": "ENTERTAINMENT", "label": "Entertainment" },
    { "key": "FOOD_AND_DRINK", "label": "Food & Drink" },
    { "key": "GOVERNMENT_AND_NON_PROFIT", "label": "Government & Non-Profit" },
    { "key": "HOME_IMPROVEMENT", "label": "Home Improvement" },
    { "key": "INCOME", "label": "Income" },
    { "key": "LOAN_PAYMENTS", "label": "Loan Payments" },
    { "key": "MEDICAL", "label": "Medical" },
    { "key": "MERCHANDISE", "label": "Merchandise" },
    { "key": "PERSONAL_CARE", "label": "Personal Care" },
    { "key": "RENT_AND_UTILITIES", "label": "Rent & Utilities" },
    { "key": "SERVICES", "label": "Services" },
    { "key": "TRANSFER_IN", "label": "Transfer In" },
    { "key": "TRANSFER_OUT", "label": "Transfer Out" },
    { "key": "TRANSPORTATION", "label": "Transportation" },
    { "key": "TRAVEL", "label": "Travel" }
  ]
}
```

### Category object

| Field   | Type     | Description                                          |
| ------- | -------- | ---------------------------------------------------- |
| `key`   | `string` | Internal category identifier (e.g. `FOOD_AND_DRINK`) |
| `label` | `string` | Human-readable category name (e.g. `Food & Drink`)   |

The `key` matches the `category` field returned on [transaction objects](/docs/api-reference/transactions#categories) — `key` is the raw uppercase code (e.g. `FOOD_AND_DRINK`); `label` is the matching human-readable name (e.g. `Food & Drink`), provided here for display.

## Error responses

Errors use the standard envelope `{ "error": { "message": string, "code"?: string, "details"?: string[] } }`.

| Status | When                                                                                                                                                                    |
| ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `401`  | Missing or invalid bearer token                                                                                                                                         |
| `403`  | Plan does not include API access (`code: plan_upgrade_required`; requires the Developer or Professional plan). Trialing customers retain API access regardless of plan. |
| `429`  | Rate limit exceeded (cheap bucket). See `Retry-After` and `X-RateLimit-Reset`.                                                                                          |

## Example

```bash theme={null}
curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://api.redbark.com/v1/categories"
```
