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

# explain_rule

`POST /v1/tools/explain_rule`

## Request

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

Get a tax rule in full: statutory citation with its verbatim excerpt, validity window, parameters, the formula and applicability guard (the rule IR — rules are data), the rules and facts it depends on, and its content hash. Use to quote and explain the actual law behind an answer. Pass asOf to see only the version in force on that date.

## Headers

- `X-OpenTax-Return-Id` string

## Request body

- object
  - `ruleId` string, required: e.g. "us.federal.standard_deduction" — list via calculate_tax proof, search_tax_rules, or the corpus
  - `asOf` string: ISO date; when given, only the version valid on that date is returned (omit for every version)

## 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)
