Auction distressed
GET /v1/auctions/distressedProperties that keep going to auction and NEVER SELL — the distress screen.
Same call over MCP
Distressed assets: repeatedly unsold lotsdistressed_assetsAuthenticate 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/distressed returns
The clearest distress signal in the warehouse: a vendor who wants out and a market that has said no more than once, both on the public record. Ranked by how many separate auctions the lot has failed at, then by how long it has been on the circuit.
READ guide_to_avm BEFORE CALLING ANY ROW AN OPPORTUNITY. It is the latest guide divided by our AVM, and it is the difference between the two reasons a lot fails: * above 1.0 — guided ABOVE our estimate. It keeps failing because it is priced wrong. That is a repricing conversation, not a discount. * 0.5-1.0 — guided below estimate and repeatedly unsold. The cohort worth a call. * below ~0.5 — check the lease before anything else. A flat guided at a fraction of a freehold estimate is usually short lease, ground rent or a garage, not a bargain.
max_guide_to_avm filters on that ratio; 0.8 keeps only lots guided at least 20% below estimate. Lots with no guide or no AVM are EXCLUDED when it is set, because an unknown ratio is not a low one.
Rows are grouped by ADDRESS, not UPRN. Flat-level UPRN matching in this table collapses separate flats onto one id — five flats in one Nottingham block share a single UPRN — so a per-UPRN count over-reports. uprn is returned for onward lookups but is not what rows are counted by, and for a subdivided building it may name a neighbouring unit.
Geography is postcode district or area, not area_id — the auction table carries postcodes and the UPRN join is too weak to filter on.
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/distressed
curl "https://api.marketcode.ai/v1/auctions/distressed?postcode_area=SE&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 |
| min_auctions | Query | integer | No | Distinct auction dates the lot has appeared on without selling.Default: 3 |
| years | Query | integer | No | How far back to look.Default: 3 |
| max_guide_to_avm | Query | number | No | Keep only lots guided at most this multiple of our AVM. 0.8 finds lots guided 20%+ below estimate. Lots with no guide or no AVM are excluded when set. |
| is_commercial | Query | boolean | No | |
| limit | Query | integer | No | Default: 50 |
| offset | Query | integer | No | Default: 0 |
Response
What GET /v1/auctions/distressed returns for a real request
curl "https://api.marketcode.ai/v1/auctions/distressed?postcode_area=SE&limit=3" \
-H "Authorization: Bearer $MARKETCODE_API_KEY"{
"country": "UK",
"data": {
"data": [
{
"address": "16 Orlop Street, Greenwich, London, SE10 9AB",
"postcode_full": "SE10 9AB",
"postcode_district": "SE10",
"postcode_area": "SE",
"is_commercial": null,
"url": "http://auctions.savills.co.uk/component/bidding/8-october-2024-156/16-orlop-street-greenwich-london-se10-9ab-13265",
"distinct_auctions": 8,
"first_seen": "2023-11-21",
"last_seen": "2024-10-08",
"days_on_circuit": 322,
"n_auctioneers": 1,
"uprn": 100020991691,
"latest_guide": 600000,
"guide_date": "2024-10-08",
"estimated_value": 457988,
"guide_to_avm": 1.31
},
{
"address": "29 Menlo Gardens, Beulah Hill, Upper Norwood, SE19 3DT",
"postcode_full": "SE19 3DT",
"postcode_district": "SE19",
"postcode_area": "SE",
"is_commercial": null,
"url": "http://auctions.savills.co.uk/component/bidding/15--16-september-2026-242/29-menlo-gardens-beulah-hill-upper-norwood-se19-3dt-24542",
"distinct_auctions": 5,
"first_seen": "2026-06-09",
"last_seen": "2026-09-15",
"days_on_circuit": 98,
"n_auctioneers": 1,
"uprn": 100020651456,
"latest_guide": null,
"guide_date": null,
"estimated_value": 227151,
"guide_to_avm": null
},
{
"address": "Former Public Conveniences, Robson Road, West Norwood, London SE27 9LA",
"postcode_full": "SE27 9LA",
"postcode_district": "SE27",
"postcode_area": "SE",
"is_commercial": null,
"url": "http://auctions.savills.co.uk/component/bidding/24--25-november-2025-197/former-public-conveniences-robson-road-west-norwood-london-se27-9la-19903",
"distinct_auctions": 4,
"first_seen": "2025-06-17",
"last_seen": "2025-11-25",
"days_on_circuit": 161,
"n_auctioneers": 1,
"uprn": 100021884727,
"latest_guide": 150000,
"guide_date": "2025-11-25",
"estimated_value": 248592,
"guide_to_avm": 0.603
}
],
"meta": {
"returned": 3,
"min_auctions": 3,
"years": 3,
"coverage": {
"with_guide": 2,
"with_avm": 3,
"with_guide_to_avm": 2
},
"grouping": "Grouped by ADDRESS, not UPRN. Flat-level UPRN matching in this table is unreliable — five different flats in one Nottingham block share a single UPRN — so a pe…",
"note": "distinct_auctions counts separate auction DATES, not catalogue rows. guide_to_avm above 1.0 means the lot is guided above our estimate, which is usually why it…"
}
},
"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[].address | string | 16 Orlop Street, Greenwich, London, SE10 9AB |
| data.data[].postcode_full | string | SE10 9AB |
| data.data[].postcode_district | string | SE10 |
| data.data[].postcode_area | string | SE |
| data.data[].is_commercial | null | |
| data.data[].url | string | http://auctions.savills.co.uk/component/bidding/ |
| data.data[].distinct_auctions | integer | 8 |
| data.data[].first_seen | string | 2023-11-21 |
| data.data[].last_seen | string | 2024-10-08 |
| data.data[].days_on_circuit | integer | 322 |
| data.data[].n_auctioneers | integer | 1 |
| data.data[].uprn | integer | 100020991691 |
| data.data[].latest_guide | integer | 600000 |
| data.data[].guide_date | string | 2024-10-08 |
| data.data[].estimated_value | integer | 457988 |
| data.data[].guide_to_avm | number | 1.31 |
| data.meta | object | |
| data.meta.returned | integer | 3 |
| data.meta.min_auctions | integer | 3 |
| data.meta.years | integer | 3 |
| data.meta.coverage | object | |
| data.meta.coverage.with_guide | integer | 2 |
| data.meta.coverage.with_avm | integer | 3 |
| data.meta.coverage.with_guide_to_avm | integer | 2 |
| data.meta.grouping | string | Grouped by ADDRESS, not UPRN. Flat-level UPRN ma |
| data.meta.note | string | distinct_auctions counts separate auction DATES, |
| 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 distressed 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 distressed
- Search land or units by criteria8 credits
sourcing_searchFind land parcels or residential units matching investment criteria — the sourcing tool. Give a `location` (place or area name) or a `bbox`.Same product - Owners of sourced parcels5 credits
sourcing_ownersResolve registered owners for parcels returned by `sourcing_search`.Same product - Titles held by a company3 credits
ownership_by_companyTitles held by a company, by Companies House number. Useful for mapping aSame product - Proprietor profile5 credits
owner_profileWhat the Land Registry shows for one proprietor: titles held, company status, country of incorporation, directors and PSCs where known.Same product - 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 product - Site appraisal dossier5 credits
site_appraisalEverything known about ONE site, assembled and judged — the site dossier.Same product
FAQ
Questions about Auction distressed
How much does `distressed_assets` cost?
+
Auction distressed 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 distressed_assets 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 `distressed_assets` 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 distressed on a real address.
30-minute call. We'll provision a key and walk through the endpoint on your use case.