---
title: "List Expenses"
method: GET
path: "/api/internal/expenses"
tags: ["internal"]
---

# List Expenses

`GET /api/internal/expenses`

List expenses with optional filters.

## Query parameters

- `user_id` string
- `org_id` string
- `merchant_name` string, nullable — Partial match on merchant name
- `description` string, nullable — Partial match on description
- `client_id` string, nullable — Filter by client UUID
- `category` string, nullable — Filter by expense category
- `invoice_id` string, nullable — Filter by invoice UUID
- `is_archived` boolean, nullable — Filter by archived status
- `order_by` string, nullable — Column to sort by (e.g., expense_date, amount, created_at, merchant_name)
- `order_desc` boolean, nullable — Sort in descending order (most recent first)
- `limit` integer — Maximum number of expenses to return
- `offset` integer — Number of expenses to skip

## Response `200`

Successful Response

- unknown

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/every/apis/every-api.md) · [All operations](https://skmtc.net/every/apis/every-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/every/every-api/versions/f8600f7a4ae3/schema)
