These conventions hold across every Reporting API endpoint. The endpoint pages document only their own filters and column projections.Documentation Index
Fetch the complete documentation index at: https://docs.montereyfinancial.dev/llms.txt
Use this file to discover all available pages before exploring further.
Dates
All date parameters areYYYY-MM-DD and inclusive on both ends:
from / to range filters on differs per report — the endpoint page documents which one. CRR filters on effective_at; NSFR filters on effective_at.
Times in response bodies are always returned in UTC.
Money
All monetary fields are integers in cents (amount_cents, etc.). No currency conversion happens server-side — every Monterey account is denominated in USD.
Some historical rows have
amount_cents: null — the field was added more recently than the data. Treat null as “unknown”, not zero.The organization_id query parameter
Optional on every endpoint. Two modes:
- Omit it: results cover every organization the key is scoped to. Each row’s
organization_idfield tells you which org it belongs to. - Include it: results are restricted to that single org. If the org isn’t in the key’s allowlist, you get
403.
organization_id is the Party.id value Monterey assigns; the portal shows it next to each organization on the key creation screen.
Error shape
Every non-2xx response uses the same JSON body:| Status | error_code | Cause |
|---|---|---|
400 | invalid_date_range | to is earlier than from, or either is unparseable |
400 | invalid_limit | limit out of range when called outside FastAPI validation (detail includes min_limit, max_limit, provided) |
401 | missing_token | Authorization header missing or not Bearer |
401 | invalid_token | Key is unknown, revoked, expired, or has no party scopes |
403 | organization_out_of_scope | ?organization_id=X where X is outside the key’s allowlist |
422 | various | FastAPI parameter validation errors (also include a loc field); includes limit out-of-range on list endpoints |
Response shape
Every endpoint returns:Pagination
List endpoints acceptcursor and limit query parameters. The response body includes a next_cursor field when more rows are available — pass that value back as cursor on the next call to fetch the next page. When next_cursor is null, you’ve reached the end of the result set.
Limit
| Field | Value |
|---|---|
| Default | 100 |
| Minimum | 1 |
| Maximum | 500 |
limit > 500 are rejected with 422 before they reach the handler. The validation envelope (FastAPI’s default shape) carries the violated constraint:
next_cursor — there is no offset.