# Changelog

This page lists changes to the API and developer docs; see the [versioning rules](/api#versioning).

## 2026-10-31

- Changed the [`403 free-calls-locked`](/errors/free-calls-locked) error's wording: free calls need a saved card. Its type, status and fields stay the same.
- Changed the [quickstart](/quickstart), [API keys](/api-keys) and [Your balance](/balance) pages: creating a key and making free calls need a saved card.

## 2026-10-28

- Added the [per-call price list](/pricing/per-call-prices): every call's price in dollars, its unit and who may buy it, generated from the price table the API charges by.
- Changed every call's cost line to its price in dollars, and renamed the page about your balance to [Your balance](/balance).
- Added `balance_cents`, `required_cents`, `cap_cents` and `consumed_cents` (whole cents) to the not-enough-balance and spending-cap errors. `balance`, `required`, `cap` and `consumed` keep their meaning in dollars and may now carry cents (for example `0.10`) ([Not enough balance](/errors/insufficient-credits)).
- Added the [`403 desk-only`](/errors/desk-only) error: a call sold only with a Desk, refused before anything is charged.
- Added the [`429 free-call-limit`](/errors/free-call-limit) error: an account's free calls for the day are used up.
- Added the [`403 free-calls-locked`](/errors/free-calls-locked) error: free calls wait until a card is saved.
- Added `cap_scope` to the [`429 spend-cap-exceeded`](/errors/spend-cap-exceeded) error: `account` for the account's daily spending cap, `connection` for one assistant connection's daily limit.
- Changed the MCP server to version 1.2.0: assistant tools ask you to confirm any single question that would cost more than $5.00, and accept an optional `confirmation` value on the repeat ([Connect an AI assistant](/agents/connect)).

## 2026-10-26

- Changed the MCP server to version 1.1.0: the existing single-property tools accept either an address or a property identifier, and the optional `partial_answer` flag on the same terms as the HTTP call ([Connect an AI assistant](/agents/connect)).

## 2026-10-25

- Changed the developer docs: a home page, three tabs, search, a five-step quickstart, an example answer on every call, and try-it with your own key ([Developer docs](/))
- Changed the name the MCP server reports to connected AI clients to Investorlift Data Services, with version 1.0.0 ([Connect an AI assistant](/agents/connect)).
- Added the API description at a stable address ([Download](/openapi.json))

- Added plain-text copies of every guide for AI tools ([Docs for AI tools](/agents/docs-for-ai))

## 2026-10-24

- Added identifier support: single predict and validate calls now accept exactly one of `address` or `property_id`. The existing MCP tools share this additive contract. Identifier picks use the normal price and refund rules; validate remains free. Batch requests are unchanged. Ambiguous-address candidates may include supplied, validated paired coordinates; no extra detail lookup is made for the list ([Connect an AI assistant](/agents/connect)).

- Added optional coordinates: single-property underwriting answers now optionally include paired numeric `latitude` and `longitude` in `subject_property` and each `comps` entry. These are the existing supplier coordinates; both are omitted if either is missing or invalid. Latitude is bounded to ±90 and longitude to ±180. Batch and History Call outputs and Credit prices are unchanged ([Valuation and comparable sales](/scoring/valuation-and-comps)).

- Added support for `POST /v1/predict` to accept an optional `partial_answer` member: for a property we found but the pricing model does not price, it returns the facts with a null `max_allowable_offer` and the reasons, charged as an answer. Existing calls are unchanged ([Accuracy and limits](/scoring/accuracy-and-limits)).
- Added the figures used to solve the offer: every `POST /v1/predict` answer's `cost_stack` now carries `assumptions`, the figures the maximum allowable offer was solved with. Existing integrations see no change ([The maximum allowable offer](/scoring/maximum-allowable-offer)).

## 2026-10-23

- Added the optional `X-Customer-Reference` request header on every charged call, so resellers can see usage by their own customer. Existing calls are unchanged.

## 2026-10-22

- Error responses' documentation gains a plain explanation and next step for every error type.

## 2026-10-16

- Added production access to the property and market data calls ([Property and market data](/data/property-and-market-data)).

## 2026-10-09

- Changed property identifiers; identifiers obtained before 9 October 2026 are no longer valid. Look up the address again to get a current identifier ([Property and market data](/data/property-and-market-data)).

## 2026-08-27

- Added recorded property transactions through the history call ([Property history](/data/property-history)).
- Added scoring for a list of properties in one call ([Score a list of properties](/scoring/score-a-list)).
- Changed the offer field's name to `max_allowable_offer` ([Score a property](/scoring/score-a-property)).
