- Data
- REST API
- Property record
- Property changes since
Property changes since
POST /v1/property/changes-sinceWhat changed since you last looked — the portal change feed. Pass the `next_cursor` from your previous call to get only what is new; on a first call give a scope (`postcode_districts` or `uprns`) or a `since` date, because an unbounded read of a 14.6-million-row feed is refused.
Same call over MCP
What changed since your cursorchanges_sinceAuthenticate with an API key from the API & MCP Hub. The same call is available as an MCP tool at the same price.
Reference
What POST /v1/property/changes-since returns
THE CURSOR IS AN EVENT ID, not a timestamp. Rows recorded late always take higher ids, so nothing slips behind your watermark between polls. Each event carries both event_date (when the portal says it happened) and observed_at (when our sweep saw it) — a backfill has an old date and a recent observation, which is exactly why the cursor is an id.
READ coverage.event_types BEFORE TRUSTING AN EMPTY PAGE. added and price_reduced are live and daily. price_increased and status_changed are sparse and only start in late August. **delisted has ONE row in the whole table: withdrawal is NOT observed, so an empty result for it means we cannot see it, not that nothing was withdrawn.** Five change kinds a user may ask for — planning decisions, ownership changes, a lease crossing 80 or 60 years, a new EPC, an AVM move — have no feed at all and are listed under coverage.not_yet_fed. Say which of these you cannot answer.
On a price change, price.old_price_source says whether the old price came from the event itself or was derived from the listing's previous event; the portal usually reports only the new price. Where neither is available the change is null, never zero. UK only.
Inputs
Before you call it
- uprns
- A UPRN is the Unique Property Reference Number every UK address carries. Narrow the address with address_autocomplete, which is free, then address_resolve returns the UPRN for 8 credits. property_summary and address_by_postcode return UPRNs too.
Request
Calling POST /v1/property/changes-since
curl -X POST "https://api.marketcode.ai/v1/property/changes-since" \
-H "Authorization: Bearer $MARKETCODE_API_KEY"
-H "Content-Type: application/json" \
-d '{}'Send your API key as a Bearer token. Every response carries credits_charged and credits_remaining.
Inputs
Parameters
This endpoint takes no path or query parameters.
Request body
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| cursor | Body | integer | No | Event id from a previous next_cursor |
| event_types | Body | string[] | No | added | price_reduced | price_increased | status_changed | delisted |
| postcode_districts | Body | string[] | No | |
| uprns | Body | integer[] | No | |
| channel | Body | string | No | |
| since | Body | string | No | ISO date; filters on event_date |
| limit | Body | integer | No | Default: 100 |
Price and licence
What it costs, and where the data comes from
Property changes since costs 1 credit per successful call over MCP and over REST, and the two surfaces share one credit balance.
The price covers licensed records in the response. A call that fails is not charged.
Credits are granted on sign-up and bought in packs; the pricing page lists every call.
Related
Endpoints used with Property changes since
- Estate agent activity in an areaFree
agent_activityWhich estate agents actually transact in an area, ranked by listing count.Same category - Equity gain estimateFree
equity_estimateCurrent estimated value against the last recorded sale: gain in pounds and percent, and how long it has been held.Same category - Listing history for a property3 credits
listing_historyEvery marketing snapshot for a property: asking price over time, price reductions, days listed, status changes, agent, image count and whether it had a floor plan.Same category - Supply-side listing statisticsFree
listing_market_seriesMonthly supply-side statistics from portal listings for one area, channel and bedroom band: listings added and reduced, reduction share (the market-temperature signal), asking price or rent median and quartiles, £/m² where a floor area is stated, new-build share, agent concentration (HHI, top-3 share), and — on rent rows — gross yield on two bases (cell rent over cell price; per-listing rent over the unit's AVM value), and on sale rows the asking-to-sold ratio and days to completion on listings the registry matched to a sale.Same category - Live listings stock, dailyFree
listing_stock_seriesLive listings on the market by day for one area, channel and bedroom band — the stock-on-market series, with the median age of the dated live stock, median asking price or rent, and the new-build count.Same category - Long-held, high-equity properties8 credits
long_held_high_equityLong-held properties in an area carrying a large paper gain — the classic off-market cohort, ordered by gain rather than by value.Same category
FAQ
Questions about Property changes since
How much does `changes_since` cost?
+
Property changes since costs 1 credit per successful call over MCP and over REST, and the two surfaces share one credit balance. The price covers licensed records in the response. A call that fails is not charged.
Do I need to resolve the address first?
+
Yes. changes_since takes a UPRN, not an address. Start with address_autocomplete (free) to narrow the address, then address_resolve (8 credits) to get the UPRN. An assistant with the MarketCode skills installed does both steps on its own.
How do I authenticate?
+
Send your API key as a Bearer token in the Authorization header. Keys are created in the API & MCP Hub, shown once and revocable. Every response carries the credits charged and your remaining balance.
Is there an MCP version?
+
Yes. The changes_since tool on the MarketCode MCP server is the same call at the same price, signed in with OAuth rather than a key, so Claude, ChatGPT, Codex and Cursor can run it in a conversation.
Where does the data come from?
+
The answer is computed by MarketCode. Coverage is the UK.
Can I store or republish the results?
+
The response includes records we license. Use them in your own analysis, reports and products; bulk redistribution of the raw records or building a competing dataset from them is not covered. Ask us if you need a redistribution licence.
Does `changes_since` change anything?
+
No. The tool is annotated read-only on the server, so it never writes to your data or ours and an assistant can call it without a confirmation step.
Try Property changes since on a real address.
30-minute call. We'll provision a key and walk through the endpoint on your use case.