Changed
- Every candidate-set search session now settles a single flat credit. Suggest requests on GET /v1/search/suggest stay free at request time; once the session's ten-minute cache window closes, the session settles exactly once, idempotently, and appears on the credits ledger as a settled search session naming its candidate set, so finance can reconcile each settled credit to a specific search. Selecting a record and abandoning a search cost the same, so the price of a search is predictable regardless of outcome.
- Address search on GET /v1/search/suggest now recovers pastes that a strict match alone cannot place: full addresses that carry county or country names, common street abbreviations, and minor typos now resolve instead of returning nothing. The matching stays strict, so a query that genuinely cannot be placed stays on the free fallback rather than widening to a wrong record. A rescued search mints a normal session and settles the same single credit as any other.
- AVM valuations are now priced: POST /v1/avm/predict-by-location and POST /v1/avm/analysis charge per valuation, with charge-once deduplication per location, where previously they were served free. See the pricing page in your dashboard for the current rate.
- Postcode lookups on GET /v1/address/postcodes/{postcode} are now priced at a flat rate per lookup, however many addresses the postcode contains, where previously they were free. Lookups that match no postcode are not charged, and POST /v1/address/postcodes/bulk keeps per-row charging.
- The dashboard's Requests page and its CSV export join each suggest request to its session settlement, so requests that are free at request time reconcile cleanly against the session's one-credit settlement.
Removed
- The retrieve step at
/v1/search/retrieve. Select a suggestion's full record with GET /v1/address/uprn/{uprn} instead: it returns the full address lines, postcode, coordinates and classification, and carries charge-once deduplication per UPRN. The official SDK'sselect()already calls the address lookup, so SDK integrations continue unchanged, and the endpoint recorded no production use in its lifetime. Sessions settle automatically; there is nothing to complete client-side.