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. Sessions settle automatically; there is nothing to complete client-side.