---
title: "List pricing rules"
method: GET
path: "/v1/rules"
---

# List pricing rules

`GET /v1/rules`

## Request

- Base URL: `https://pricing-api.vyro.com.au`
- URL: `https://pricing-api.vyro.com.au/v1/rules`
- Auth: one of:
  - HTTP bearer
  - API key in header `x-api-key`

Returns rule metadata that will be active for the given showroom and date, plus the full supported tax-date range for that showroom.

## Query parameters

- `pricingCode` 'AU_NSW' | 'AU_QLD' | 'AU_WA' | 'AU_SA' | 'AU_ACT' | 'AU_VIC' | 'AU_TAS' | 'AU_NT', required
- `showroomCode` string, required
- `date` string, date, required

## Response `200`

Active rules for the requested criteria.

- RulesListResponse
  - `rules` RuleMetadata[], required
    - `id` string, required: Rule identifier.
    - `name` string, required
    - `description` string, required
    - `pricingCode` string, required
    - `startDate` string, date, required
    - `endDate` string, date, nullable
    - `priority` integer, required: Rules execute in ascending priority order.
    - `verification` RuleVerificationMetadata
      - `mode` 'none' | 'statutory' | 'insurer_filed' | 'commercial_default', required
      - `componentType` 'registration' | 'ctp_or_mai' | 'stamp_duty' | 'levy' | 'postcode_mapping' | 'default_assumption' | 'lct' | 'concession' | 'dutiable_value', required
      - `strategy` 'nsw_stamp_duty' | 'qld_registration_core_fees' | 'wa_registration_core_fees' | 'nt_registration_core_fees' | 'qld_stamp_duty' | 'act_stamp_duty' | 'vic_stamp_duty' | 'sa_stamp_duty' | 'tas_stamp_duty' | 'wa_stamp_duty' | 'nt_stamp_duty' | 'nsw_green_slip_assumption' | 'nsw_registration_core_fees' | 'act_registration_core_fees' | 'sa_registration_core_fees' | 'tas_registration_core_fees' | 'vic_registration_core_fees' | 'qld_class1_range' | 'act_mai_provider_rate' | 'vic_tac_risk_zones' | 'ato_lct_thresholds' | 'registration_transfer_fee' | 'wa_vehicle_inspection_fee', required
      - `governs` string[], required
      - `governedFiles` string[], required
      - `officialSources` RuleVerificationSource[], required
        - `label` string, required
        - `url` string, required
        - `authority` 'regulator' | 'legislation' | 'transport' | 'treasury' | 'insurer' | 'ato', required
        - `kind` 'html' | 'pdf' | 'json' | 'csv' | 'manual', required
        - `official` boolean, required
      - `sharedVerifierId` string
      - `cadence` 'daily' | 'weekly' | 'quarterly' | 'annual' | 'ad_hoc'
      - `lookaheadDays` integer
      - `nextExpectedBoundary` string, date
      - `boundaryWatches` RuleVerificationBoundaryWatch[]
        - `label` string, required
        - `effectiveDate` string, date, required
        - `lookaheadDays` integer, required
        - `governedComponent` string
      - `tests` string[], required
      - `discovery` RuleVerificationDiscovery, required
        - `allowWebSearch` boolean, required
        - `allowedDomains` string[], required
        - `canProposeReplacementSources` boolean, required
  - `supportedTaxRange` SupportedTaxRange, required: The tax-date range this showroom has pricing data for, derived from the foundational per-financial-year rules. Independent of the `date` query parameter. Clients should use this to bound their own date inputs instead of hardcoding a financial year.
    - `start` string, date, nullable, required: Earliest supported tax date, or null when unbounded.
    - `end` string, date, nullable, required: Latest supported tax date, or null when open-ended.
    - `financialYears` string[], required: Australian financial-year labels (e.g. "2025-2026") that have pricing data, ascending.

## Other responses

- `400`: Invalid input
- `401`: Authentication required
- `403`: Showroom access denied
- `500`: Server error

---

[API](https://skmtc.dev/vyro/apis/pricing-api.md) - [All operations](https://skmtc.dev/vyro/apis/pricing-api/llms.txt) - [OpenAPI document](https://skmtc.dev/vyro/apis/pricing-api/revisions/cbb70392151c?raw)
