Auction comps
GET /v1/auctions/compsAuction comparables on ACHIEVED prices, each against our valuation.
Same call over MCP
Auction comparablesauction_compsAuthenticate 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/comps returns
A portal tells you a property went to auction. This says what it MADE, and what our AVM thought it was worth at the same address — the difference between a comparable and a listing. Use it to judge whether a guide price is realistic, or what a lot is likely to fetch.
achieved_to_avm is the hammer price as a share of our AVM. Below 1.0 the lot sold under the estimate; the useful spread is wide, from about 0.45 to 0.95 within a single postcode area. Read it alongside auction_date: all AVMs share one snapshot date, so an older lot carries market movement as well as discount.
Bedrooms and property type come from the UPRN-matched unit rather than the auction catalogue, which populates property_type on 12% of sold lots and tenure on none at all.
Give postcode_district or postcode_area — auction lots carry a postcode, not an area_id, so there is no area_id path here.
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/comps
curl "https://api.marketcode.ai/v1/auctions/comps?postcode_area=SE&months=24&limit=3" \
-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_beds | Query | integer | No | |
| max_beds | Query | integer | No | |
| limit | Query | integer | No | Default: 50 |
Response
What GET /v1/auctions/comps returns for a real request
curl "https://api.marketcode.ai/v1/auctions/comps?postcode_area=SE&months=24&limit=3" \
-H "Authorization: Bearer $MARKETCODE_API_KEY"{
"country": "UK",
"data": {
"data": [
{
"auction_date": "2026-08-18",
"auctioneer": "savills",
"address": "217A Westcombe Hill, Kidbrooke, London, SE3 7DR",
"postcode_full": "SE3 7DR",
"postcode_district": "SE3",
"is_commercial": null,
"net_yield_pct": null,
"url": "http://auctions.savills.co.uk/component/bidding/18-august-2026-240/217a-westcombe-hill-kidbrooke-london-se3-7dr-24268",
"uprn": 100021015933,
"achieved_price": 280000,
"estimated_value": 293309,
"achieved_to_avm": 0.955,
"property_type": null,
"num_beds": 4,
"floor_area_m2": 56
},
{
"auction_date": "2026-08-18",
"auctioneer": "savills",
"address": "Flat B, 116 Hinton Road, Herne Hill, London, SE24 0HU",
"postcode_full": "SE24 0HU",
"postcode_district": "SE24",
"is_commercial": null,
"net_yield_pct": null,
"url": "http://auctions.savills.co.uk/component/bidding/18-august-2026-240/flat-b-116-hinton-road-herne-hill-london-se24-0hu-24299",
"uprn": 100023257256,
"achieved_price": 331000,
"estimated_value": 426881,
"achieved_to_avm": 0.775,
"property_type": null,
"num_beds": null,
"floor_area_m2": 57
},
{
"auction_date": "2026-08-18",
"auctioneer": "savills",
"address": "Flat A, 19 Sydenham Park, Sydenham, London, SE26 4EE",
"postcode_full": "SE26 4EE",
"postcode_district": "SE26",
"is_commercial": null,
"net_yield_pct": null,
"url": "http://auctions.savills.co.uk/component/bidding/18-august-2026-240/flat-a-19-sydenham-park-sydenham-london-se26-4ee-24040",
"uprn": 100022010365,
"achieved_price": 210000,
"estimated_value": 356727,
"achieved_to_avm": 0.589,
"property_type": null,
"num_beds": null,
"floor_area_m2": 63
}
],
"meta": {
"returned": 3,
"months": 24,
"median_achieved_to_avm": 0.775,
"note": "achieved_to_avm is the hammer price as a share of our current AVM. Below 1.0 the lot sold under the estimate. Read it alongside auction_date: all AVMs share on…",
"attributes_note": "num_beds and property_type come from the UPRN-matched unit, not the auction catalogue — the catalogue populates property_type on 12% of sold lots and tenure on…"
}
},
"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 | array | |
| data.data[].auction_date | string | 2026-08-18 |
| data.data[].auctioneer | string | savills |
| data.data[].address | string | 217A Westcombe Hill, Kidbrooke, London, SE3 7DR |
| data.data[].postcode_full | string | SE3 7DR |
| data.data[].postcode_district | string | SE3 |
| data.data[].is_commercial | null | |
| data.data[].net_yield_pct | null | |
| data.data[].url | string | http://auctions.savills.co.uk/component/bidding/ |
| data.data[].uprn | integer | 100021015933 |
| data.data[].achieved_price | integer | 280000 |
| data.data[].estimated_value | integer | 293309 |
| data.data[].achieved_to_avm | number | 0.955 |
| data.data[].property_type | null | |
| data.data[].num_beds | integer | 4 |
| data.data[].floor_area_m2 | integer | 56 |
| data.meta | object | |
| data.meta.returned | integer | 3 |
| data.meta.months | integer | 24 |
| data.meta.median_achieved_to_avm | number | 0.775 |
| data.meta.note | string | achieved_to_avm is the hammer price as a share o |
| data.meta.attributes_note | string | num_beds and property_type come from the UPRN-ma |
| 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 comps 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
- HM Land Registry
Price Paid Data
Open Government Licence v3 · England and Wales
- 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 comps
- Auction discount to valuationFree
auction_discountHow far below our valuation UK auction actually clears — the one auction number nobody else can produce.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
Glossary
Terms used here
- Comparable (comp): A recent sale or listing of a similar property nearby, used to support or challenge a valuation; MarketCode draws them from the same building and street first.
- Guide price and hammer price: The price a lot is marketed at before auction (the guide) and the price it sells for under the hammer (the achieved price); most auctioneers publish the first and few publish the second.
- Auction discount: How far below an automated valuation of the same property an auction lot actually sells; a ratio MarketCode can compute because it holds both the hammer price and the valuation.
FAQ
Questions about Auction comps
How much does `auction_comps` cost?
+
Auction comps 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_comps 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 HM Land Registry price paid data and UK auction houses catalogues and results. Coverage is the UK. The methodology page describes how the model or index is built.
Does `auction_comps` 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 comps on a real address.
30-minute call. We'll provision a key and walk through the endpoint on your use case.