Auction discount
GET /v1/auctions/discountHow far below our valuation UK auction actually clears — the one auction number nobody else can produce.
Same call over MCP
Auction discount to valuationauction_discountAuthenticate with an API key from the API & MCP Hub. The same call is available as an MCP tool at the same price.
Reference
What GET /v1/auctions/discount returns
An achieved hammer price against an automated valuation of the SAME property. EIG covers 530+ auctioneers to our six and sells API data, but runs no AVM; we have less auction data and the valuation. The join is the product, not the feed.
Nationally over the last 24 months the median lot cleared at about 0.66 of our estimate — a ~34% discount — and 87% of lots sold below it. The spread by district is large and real: PR2 clears near 47% below, N1 under 8%.
READ by_year BEFORE QUOTING THE HEADLINE, and read meta.sufficient. Every AVM in the warehouse shares ONE snapshot date, so this ratio is an auction discount only where the sale and the valuation are close in time. The series sits near 0.65 from 2021 and falls to ~0.44 in 2016-2019 — that fall is house-price growth sitting between the hammer and the estimate, not a deeper discount. Widening months past about 60 measures the market, not the auction.
min_lots suppresses the headline where too few lots match; a median over three sales is not a market rate, and meta.sufficient says which you got.
Geography is by POSTCODE, not area_id — auction lots carry a postcode.
UK only.
Inputs
Before you call it
- postcode_district
- Give a postcode district ("SW11") or a postcode area ("SW"). Auction records carry a postcode rather than an area id, so there is no
area_idpath here and no lookup to make first.
Request
Calling GET /v1/auctions/discount
curl "https://api.marketcode.ai/v1/auctions/discount?postcode_area=SE&months=24" \
-H "Authorization: Bearer $MARKETCODE_API_KEY"Send your API key as a Bearer token. Every response carries credits_charged and credits_remaining.
Inputs
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| postcode_district | Query | string | No | e.g. SE10 |
| postcode_area | Query | string | No | e.g. SE |
| months | Query | integer | No | Default: 24 |
| is_commercial | Query | boolean | No | |
| min_lots | Query | integer | No | Default: 20 |
Response
What GET /v1/auctions/discount returns for a real request
curl "https://api.marketcode.ai/v1/auctions/discount?postcode_area=SE&months=24" \
-H "Authorization: Bearer $MARKETCODE_API_KEY"{
"country": "UK",
"data": {
"data": {
"n_lots": 208,
"p25": 0.744,
"median_ratio": 0.903,
"p75": 1.162,
"n_below_avm": 128,
"median_achieved": 300000,
"median_avm": 334457,
"first_lot": "2024-09-24",
"last_lot": "2026-08-18",
"avm_snapshot": "2026-09-06T05:32:15.024740",
"discount_pct": 9.7,
"pct_below_avm": 61.5
},
"by_year": [
{
"year": 2020,
"n_lots": 54,
"median_ratio": 0.864
},
{
"year": 2021,
"n_lots": 43,
"median_ratio": 1.113
},
{
"year": 2022,
"n_lots": 53,
"median_ratio": 0.84
},
"… 4 more"
],
"meta": {
"months": 24,
"min_lots": 20,
"sufficient": true,
"note": "median_ratio is the achieved price as a share of our AVM; discount_pct is (1 - that), so 34 means auction cleared 34% below the estimate.",
"drift_warning": "Every AVM shares one snapshot date, so this ratio is an auction discount only where the sale and the valuation are close in time. `by_year` shows the whole ser…",
"coverage": "Six auction houses, and only lots we could match to a UPRN that also carries a valuation. Not the whole UK auction market — EIG covers 530+ auctioneers."
}
},
"credits_charged": 0
}A real response, captured from production and trimmed: arrays to three items, long strings shortened, volatile keys dropped.
Response
Response fields
| Field | Type | Example |
|---|---|---|
| country | string | UK |
| data | object | |
| data.data | object | |
| data.data.n_lots | integer | 208 |
| data.data.p25 | number | 0.744 |
| data.data.median_ratio | number | 0.903 |
| data.data.p75 | number | 1.162 |
| data.data.n_below_avm | integer | 128 |
| data.data.median_achieved | integer | 300000 |
| data.data.median_avm | integer | 334457 |
| data.data.first_lot | string | 2024-09-24 |
| data.data.last_lot | string | 2026-08-18 |
| data.data.avm_snapshot | string | 2026-09-06T05:32:15.024740 |
| data.data.discount_pct | number | 9.7 |
| data.data.pct_below_avm | number | 61.5 |
| data.by_year | array | |
| data.by_year[].year | integer | 2020 |
| data.by_year[].n_lots | integer | 54 |
| data.by_year[].median_ratio | number | 0.864 |
| data.meta | object | |
| data.meta.months | integer | 24 |
| data.meta.min_lots | integer | 20 |
| data.meta.sufficient | boolean | true |
| data.meta.note | string | median_ratio is the achieved price as a share of |
| data.meta.drift_warning | string | Every AVM shares one snapshot date, so this rati |
| data.meta.coverage | string | Six auction houses, and only lots we could match |
| credits_charged | integer | 0 |
Fields observed in the example response above; a field the example did not exercise is not listed.
Price and licence
What it costs, and where the data comes from
Auction discount is free over MCP and over REST, and the two surfaces share one credit balance. Free calls need a signed-in account or an API key and appear in your usage, but they never touch your balance.
Credits are granted on sign-up and bought in packs; the pricing page lists every call.
Computed by MarketCode from
- UK auction houses
Auction catalogues and results (Allsop, Savills, Acuitus, Barnett Ross, Agents Property Auction)
Published catalogues and results, collected and matched by MarketCode · UK
How the model or index is built, and where it is weak, is on the methodology page.
Related
Endpoints used with Auction discount
- Auction comparablesFree
auction_compsAuction comparables on ACHIEVED prices, each against our valuation.Same category - Auction lotsFree
auction_lotsIndividual UK auction lots: the guide price a lot was marketed at, whether it sold, the HAMMER PRICE where the auctioneer published one, and the net yield where quoted.Same category - Auction statistics by districtFree
auction_statsQuarterly UK auction statistics by postcode district: lots offered, lots sold, the sale rate, and average guide, achieved and net yield.Same category - Distressed assets: repeatedly unsold lotsFree
distressed_assetsProperties that keep going to auction and NEVER SELL — the distress screen.Same category
FAQ
Questions about Auction discount
How much does `auction_discount` cost?
+
Auction discount is free over MCP and over REST, and the two surfaces share one credit balance. Free calls need a signed-in account or an API key and appear in your usage, but they never touch your balance.
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 auction_discount 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?
+
Computed by MarketCode from UK auction houses catalogues and results. Coverage is the UK. The methodology page describes how the model or index is built.
Does `auction_discount` 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 Auction discount on a real address.
30-minute call. We'll provision a key and walk through the endpoint on your use case.