Auction stats
GET /v1/auctions/statsQuarterly UK auction statistics by postcode district: lots offered, lots sold, the sale rate, and average guide, achieved and net yield.
Same call over MCP
Auction statistics by districtauction_statsAuthenticate 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/stats returns
Use this for the shape of a local auction market over time — is it clearing, are yields moving, is stock rising. For individual comparables use auction_lots.
READ n_guide AND n_achieved BEFORE COMPARING THE AVERAGES. They are computed over DIFFERENT POPULATIONS: a guide price is published for most lots, a hammer price by a minority of auctioneers. Subtracting one average from the other does not give an uplift, a discount, or any meaningful number — the two sets are not the same lots.
Each row carries a comparable flag that is false when the two populations are too unbalanced for the difference to mean anything. When it is false, report the two figures separately with their counts, and say why.
quarter_from/quarter_to are the first day of a quarter (2024-01-01, 2024-04-01, ...). 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/stats
curl "https://api.marketcode.ai/v1/auctions/stats?postcode_district=SE15&limit=4" \
-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. AL10 |
| quarter_from | Query | string | No | First day of the earliest quarter, e.g. 2024-01-01 |
| quarter_to | Query | string | No | |
| is_commercial | Query | boolean | No | |
| limit | Query | integer | No | Default: 200 |
Response
What GET /v1/auctions/stats returns for a real request
curl "https://api.marketcode.ai/v1/auctions/stats?postcode_district=SE15&limit=4" \
-H "Authorization: Bearer $MARKETCODE_API_KEY"{
"country": "UK",
"data": {
"data": [
{
"auction_quarter": "2026-07-01",
"postcode_district": "SE15",
"is_commercial": null,
"lots_offered": 4,
"lots_sold": 1,
"sale_rate_pct": 25,
"n_guide": 0,
"avg_guide_gbp": null,
"n_achieved": 0,
"avg_achieved_gbp": null,
"n_yield": 0,
"avg_net_yield_pct": null,
"comparable": false
},
{
"auction_quarter": "2026-07-01",
"postcode_district": "SE15",
"is_commercial": false,
"lots_offered": 2,
"lots_sold": 1,
"sale_rate_pct": 50,
"n_guide": 2,
"avg_guide_gbp": 318750,
"n_achieved": 0,
"avg_achieved_gbp": null,
"n_yield": 0,
"avg_net_yield_pct": null,
"comparable": false
},
{
"auction_quarter": "2026-04-01",
"postcode_district": "SE15",
"is_commercial": false,
"lots_offered": 2,
"lots_sold": 0,
"sale_rate_pct": 0,
"n_guide": 2,
"avg_guide_gbp": 395000,
"n_achieved": 0,
"avg_achieved_gbp": null,
"n_yield": 0,
"avg_net_yield_pct": null,
"comparable": false
},
"… 1 more"
],
"meta": {
"returned": 4,
"note": "avg_guide_gbp and avg_achieved_gbp are averages over DIFFERENT populations — n_guide and n_achieved say how many lots sit behind each. `comparable` is false wh…"
}
},
"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_quarter | string | 2026-07-01 |
| data.data[].postcode_district | string | SE15 |
| data.data[].is_commercial | null | |
| data.data[].lots_offered | integer | 4 |
| data.data[].lots_sold | integer | 1 |
| data.data[].sale_rate_pct | integer | 25 |
| data.data[].n_guide | integer | 0 |
| data.data[].avg_guide_gbp | null | |
| data.data[].n_achieved | integer | 0 |
| data.data[].avg_achieved_gbp | null | |
| data.data[].n_yield | integer | 0 |
| data.data[].avg_net_yield_pct | null | |
| data.data[].comparable | boolean | false |
| data.meta | object | |
| data.meta.returned | integer | 4 |
| data.meta.note | string | avg_guide_gbp and avg_achieved_gbp are averages |
| 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 stats 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.
Sources
- 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
Related
Endpoints used with Auction stats
- 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.Named in the description - Resolve an area nameFree
area_resolveResolve an area name or code ("Hackney", "E5") to its area_id, centroidSame product - Market facts for an areaFree
market_factsPrice, rent, yield and days-on-market by geography × asset class ×Same product - Rank areas on a market metricFree
market_rankingRank areas against each other on a market metric — one row per area at the latest period. Defaults to turnover_rate, which is sales as a share of the stock that could have sold: the liquidity measure, as opposed to transaction count, which measures market size.Same product - House price index seriesFree
market_index_seriesThe published house-price INDEX for one postcode district or local authority: the level per month (base period = 100), the forecast tail flagged, and provenance saying how the index was built.Same product - Asking-price index (portal listings)Free
asking_price_index_seriesHedonic ASKING-PRICE index for one postcode district, local authority or Great Britain, from portal listings (Rightmove ~95%), 2022M01 = 100, with 80% bands and posterior standard errors, smoothed toward the parent geography.Same product
Glossary
Terms used here
- Postcode district, area and sector: The parts of a UK postcode: the area ("SW"), the district ("SW11") and the sector ("SW11 1"); most MarketCode area statistics are published at district grain.
- 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.
FAQ
Questions about Auction stats
How much does `auction_stats` cost?
+
Auction stats 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_stats 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?
+
Read from UK auction houses catalogues and results. Coverage is the UK.
Does `auction_stats` 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 stats on a real address.
30-minute call. We'll provision a key and walk through the endpoint on your use case.