---
title: "Get Budget Rules"
method: GET
path: "/api/v1/budget_rules/"
---

# Get Budget Rules

`GET /api/v1/budget_rules/`

Get all budget rules for the authenticated plan manager.

Optional filters:
- participant_id: Filter rules for a specific participant
- active_only: Only return active rules (default: true)

## Query parameters

- `participant_id` string, uuid, nullable — Filter by participant ID
- `active_only` boolean — Only return active rules
- `plan_manager_id` string, nullable

## Response `200`

Successful Response

- ApiResponseJSONBudgetRuleResponse
  - `data` BudgetRuleResponse[] — List of items returned in the response following given criteria
    - `id` integer, required
    - `created_at` string, date-time, required
    - `budget_category` string, nullable
    - `plan_manager` string, uuid, required
    - `effective_date` string, date, nullable
    - `expiry_date` string, date, nullable
    - `associated_rule` string, uuid, nullable
    - `provider_rules` ProviderBudgetRuleResponse[], required
      - `id` integer, required
      - `plan_manager` string, uuid, required
      - `participant_id` string, uuid, required
      - `pm_provider_id` string, uuid, nullable
      - `budget_category` string, nullable
      - `budget_rule_type` string, required
      - `budget_amount` string, required
      - `effective_date` string, date, required
      - `expiry_date` string, date, nullable
      - `created_at` string, date-time, required
      - `modified_at` string, date-time, nullable
      - `current_used_amount` string, nullable
      - `is_violated` boolean, nullable
      - `is_75_percent_violated` boolean, nullable
      - `active` boolean, required
      - `budget_table_name` string, nullable
      - `budget_id` integer, nullable
      - `linked_document` integer, nullable
      - `name` string, nullable
      - `temp_external_id` string, nullable
      - `budget_rules_group_id` integer, nullable
    - `invoice_rule` InvoiceRuleResponse — Response model for invoice rules
      - `id` string, uuid, required
      - `name` string, required
      - `description` string, nullable
      - `target` 'ndis_invoices' | 'ndis_line_items', required
      - `condition` unknown
      - `custom_sql` string, nullable
      - `rule_message` string, required
      - `active` boolean, nullable
      - `mode` 'active' | 'test' | 'off', nullable
      - `scoped_to` 'global' | 'plan_manager' | 'provider' | 'participant', nullable
      - `scoped_id` string, uuid, nullable
      - `category` string, nullable
      - `severity` 'info' | 'warning' | 'error', nullable
      - `start_date` string, date, nullable
      - `end_date` string, date, nullable
      - `created_at` string, date-time, nullable
      - `updated_at` string, date-time, nullable
      - `condition_type` 'simple' | 'composite', nullable
  - `meta` ApiResponseMeta — Standardised Api Response Meta Not always required (except for example; with paginated results) Future: Could provide base that includes org information, copy-write etc
    - `processing_time_ms` integer, nullable
    - `total_records` integer, nullable
    - `page` integer, nullable
    - `limit` integer, nullable
    - `count` integer, nullable
    - `cursor` unknown
    - `cursor_last` unknown
    - `more_data_available` boolean, nullable
  - `messages` ApiResponseMessage[], nullable — Response Messages
    - `message_type` 'debug' | 'info' | 'warning' | 'error', required
    - `message` string, required

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/caresquare/apis/fastapi.md) · [All operations](https://skmtc.dev/caresquare/apis/fastapi/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/caresquare/fastapi/revisions/c9df874d8d59/schema)
