Vepler logo
v4.0.0 Breaking change

One flat credit per search session, and priced AVM valuations

Every search session settles one flat credit with nothing to complete client-side, messy pasted addresses recover, and AVM valuations and postcode lookups are now priced.

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's select() 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.