# Read a fact with its source and history

One fact as montaye’s computations read it: the revision in force on a day (or the one a calculation line names by revision_id), its values (amounts, bracket tables, lookup grids), the official document with the page and words it was read from, and every span of the same fact the published facts hold, earliest first. Values are decimal strings; ratios are fractions (0.062), never percents. GET /v1/status lists the codes. Fields are only ever added.

- REST: `GET https://montaye.com/v1/facts` with `Authorization: Bearer <key>`
- MCP tool: `fact_read` at https://montaye.com/mcp
- Answer: `{ "result": …, "usage": … }`; refusals are `application/problem+json`

## Refusals

- [`input_invalid`](https://montaye.com/refusals/input_invalid) (400): The request does not match the action’s input schema.
- [`parameter_missing`](https://montaye.com/refusals/parameter_missing) (400): A parameter the computation needs was not given.
- [`not_found`](https://montaye.com/refusals/not_found) (404): No such action or document.
- [`table_not_effective`](https://montaye.com/refusals/table_not_effective) (422): No reviewed fact is in force for this pay date.
- [`key_missing`](https://montaye.com/refusals/key_missing) (401): This action needs an API key (Authorization: Bearer <key>).
- [`key_invalid`](https://montaye.com/refusals/key_invalid) (401): The API key is unknown, revoked or expired.
- [`rate_limited`](https://montaye.com/refusals/rate_limited) (429): Too many requests from this client; slow down.
- [`plan_excludes_action`](https://montaye.com/refusals/plan_excludes_action) (403): The account’s plan does not include this action.
