---
title: "search_tax_rules"
method: POST
path: "/v1/tools/search_tax_rules"
tags: ["tools"]
---

# search_tax_rules

`POST /v1/tools/search_tax_rules`

## Request

- Base URL: `https://opentax.invaro.ai`
- URL: `https://opentax.invaro.ai/v1/tools/search_tax_rules`
- Auth: one of:
  - HTTP bearer
  - none

Full-text search over the encoded tax-law corpus ('kiddie tax', 'NIIT threshold', 'california renters credit'). Returns matching rules: id, title, statutory citation, effective window, and a verbatim excerpt of the law text. A hit means the engine computes this; zero hits means it is outside the corpus — say so rather than guessing. Follow up with explain_rule for a hit's full formula, or lookup_tax_parameter for its dollar amounts.

## Headers

- `X-OpenTax-Return-Id` string

## Request body

- object
  - `query` string, required: plain-English search, e.g. 'kiddie tax'
  - `asOf` string
  - `limit` integer

## Response `200`

ok:true with the computed value, line set or lookup hits; ok:false with error.code when the engine refuses (NEEDS_FACTS, NO_APPLICABLE_RULE, UNHANDLED_ENUM_CASE)

- object
  - `ok` boolean, required

## Other responses

- `400`: transport-level error
- `401`: transport-level error
- `429`: transport-level error

---

[API](https://skmtc.dev/invaro/apis/opentax-rest-api.md) · [All operations](https://skmtc.dev/invaro/apis/opentax-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/invaro/apis/opentax-rest-api/revisions/61fd3e3e6018?raw)
