Sloth-ninja turns Land Registry research into a usable property-price check

A dormant navigation item now gives authorised users a safe way to check recent property sales by postcode.

searchworkflow

The new research page searches HM Land Registry's open Price Paid data and returns recent sales with the address, property type, tenure, price and transaction date. It is designed for quick context on a property, not as a replacement for official documents.

  • Postcode lookup: shows up to 25 of the most recent recorded sales.
  • Official service links: point users to HM Land Registry's paid services when they need formal records.
  • Matter workflow: explains how to upload a purchased document into the relevant matter.

There is deliberately no account connection yet. The page makes clear that portal credentials cannot be entered into a third-party product until the necessary authorisation is in place.

So what Property and conveyancing teams should care if they want a fast first pass on local sale history without blurring the line between open data and official evidence.

View this fork on GitHub →

Spotted something wrong? Or know the PR text has fresher detail than the writeup above?

Commits in this thread

4 commits from Sloth-ninja/JessicaOSS, oldest first. Source extracted verbatim from the harvested git log.

SHA Subject Author Date
a6ae0acf WS7: Land Registry v1 panel (open-data Price Paid lookup) sloth-ninja 2026-07-28 ↗ GitHub
commit body
Replace the inert "coming soon" sidebar stub with a clickable Research page:
honest account-connection status, a free open-data Price Paid lookup by
postcode, and outbound links to HM Land Registry's chargeable services. v1 has
no HMLR account-connection path by design (conditions of use bar third-party
credential entry until channel-partner authorisation).

Backend: self-contained lib/landRegistry.ts querying the HM Land Registry Price
Paid SPARQL endpoint (keyless, OGL v3.0), postcode validated/normalised before
it reaches any query string, 10s fetch timeout, TTL cache + single-flight;
route GET /land-registry/price-paid mounted under requireAuth + researchLimiter
with fixed generic error mapping. 27 vitest tests (validation matrix,
normalisation, cap-at-25, upstream/network/timeout errors, error mapper).

Frontend: new /land-registry page to the approved mock-up (3 cards), mikeApi
getPricePaid(postcode, signal), sidebar entry now a normal clickable item.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
178c5ba2 Merge remote-tracking branch 'origin/main' into land-registry-v1 sloth-ninja 2026-07-28 ↗ GitHub
# Conflicts:
#	docs/BUILD_LOG.md
b6e3f389 Land Registry: drop premature channel-partner progress claim; dynamic OGL year sloth-ninja 2026-07-28 ↗ GitHub
commit body
The account-connection card claimed "JessicaOS has started that process" of
becoming an authorised HM Land Registry channel partner. The application has
not been sent yet, so the claim is premature in a representation to solicitors.
Reworded to make no progress claim. Also replace the hardcoded 2026 in the OGL
attribution with new Date().getFullYear().

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
607e0738 Merge remote-tracking branch 'origin/main' into land-registry-v1 sloth-ninja 2026-07-28 ↗ GitHub
# Conflicts:
#	docs/BUILD_LOG.md

Capture this thread into my fork

Download a single Markdown prompt that tells Claude how to port every commit above into your working tree — adapting paths and structure to match your repo. Run it via claude -p < capture-thread-1136.md from inside the repo you want the changes in.

⬇ Download capture-thread-1136.md