---
title: "List budgets"
method: GET
path: "/v1/businesses/{client_id}/budgets"
tags: ["Budgets"]
---

# List budgets

`GET /v1/businesses/{client_id}/budgets`

## Path parameters

- `client_id` integer, required

## Query parameters

- `offset` integer
- `limit` integer
- `is_deleted` boolean
- `budget_type` 'BUDGET' | 'SUBSCRIPTION'
- `has_member_limits` boolean

## Response `200`

OK

- BudgetListResponse
  - `count` integer — The total number of budgets that match the query.
  - `next` string — The URL to the next page of budgets.
  - `previous` string — The URL to the previous page of budgets.
  - `results` Budget[]
    - `id` string, required — The ID of the budget.
    - `name` string, required — The name of the budget.
    - `budget_type` 'BUDGET' | 'SUBSCRIPTION', required — The type of budget.
    - `available_amount` number, required — The available amount of the budget.
    - `spent_amount` number, required — The amount of the budget that has been spent.
    - `reset_amount` number, required — The reset amount of the budget.
    - `reset_period` 'DAILY' | 'WEEKLY' | 'FORTNIGHTLY' | 'MONTHLY' | 'QUARTERLY' | 'ANNUALLY' | 'JULY_FINANCIAL_YEAR' | 'APRIL_FINANCIAL_YEAR' | 'NEVER', required — The reset cadence for the budget. JULY_FINANCIAL_YEAR resets on 1 July; APRIL_FINANCIAL_YEAR resets on 1 April.
    - `current_period_start` string, date-time, nullable, required — The start date of the current period in UTC.
    - `current_period_end` string, date-time, nullable, required — The end date of the current period in UTC.
    - `has_member_limits` boolean, required — Whether the budget has member limits.
    - `rollover_funds` boolean, required — When true, unspent balance rolls over to the next period instead of resetting.
    - `limit_categories` boolean, required — When true, only categories listed in `categories` are visible on the budget. When false, all enabled business categories are visible.
    - `categories` object[], required — Categories currently visible on the budget. Returns an empty array when `limit_categories` is false (no restriction in force).
      - `id` string, uuid, required
      - `name` string, required
    - `custom_fields` object[], required — Custom fields attached to this budget.
      - `id` string, uuid, required — The id of the custom field.
      - `name` string, required
      - `allow_options` string[], nullable, required — For LIST-type custom fields, the list-item ids selectable on this budget. `null` means no per-budget restriction (all enabled options are selectable). An empty array means no options are selectable on this budget. Always `null` for FREE_TEXT custom fields.
    - `is_deleted` boolean, required — Whether the budget is deleted.
    - `created` string, date-time, required — The date and time when the budget was created in UTC.
    - `updated` string, date-time, required — The date and time when the budget was last updated in UTC.

## Other responses

- `401` — Unauthorized
- `403` — Forbidden

---

[API](https://skmtc.net/letsweel/apis/weel-openapi.md) · [All operations](https://skmtc.net/letsweel/apis/weel-openapi/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/letsweel/weel-openapi/revisions/55da5fa350fb/schema)
