- Data
- REST API
- Market data
- Market listing stock
Market listing stock
GET /v1/market/listing-stockLive 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 call over MCP
Live listings stock, dailylisting_stock_seriesAuthenticate 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/market/listing-stock returns
The series began 2026-09-05 and grows by one point a day: the portal keeps no exit dates, so stock cannot be reconstructed for the past, only observed forwards. A short series is therefore expected, not missing data. start / end are dates (YYYY-MM-DD).
Inputs
Before you call it
- area_code
- The area code is a postcode district ("W14") with
area_typeset to district, or a local authority name ("Camden", not a GSS code) witharea_typeset to lad. No lookup is needed. An unknown area returns an error naming the nearest matches; read them back rather than guessing.
Request
Calling GET /v1/market/listing-stock
curl "https://api.marketcode.ai/v1/market/listing-stock?area_code=SE22&area_type=district&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 |
|---|---|---|---|---|
| area_code | Query | string | No | Postcode district, local authority NAME with area_type=lad, or NATIONALDefault: NATIONAL |
| area_type | Query | string | No | district | lad | nationalDefault: district |
| channel | Query | string | No | residential_sale | residential_rentDefault: residential_sale |
| bedroom_band | Query | string | No | all | 1bed | 2bed | 3bed | 4bed | 5plus | unknownDefault: all |
| from | Query | string | No | YYYY-MM-DD |
| to | Query | string | No | |
| limit | Query | integer | No | Default: 90 |
Response
What GET /v1/market/listing-stock returns for a real request
curl "https://api.marketcode.ai/v1/market/listing-stock?area_code=SE22&area_type=district&limit=3" \
-H "Authorization: Bearer $MARKETCODE_API_KEY"{
"country": "UK",
"query": {
"area_code": "SE22",
"area_type": "district",
"channel": "residential_sale",
"bedroom_band": "all",
"limit": 3
},
"data": {
"area": {
"scope": "district",
"area_key": "1520d540-4a9e-4fa2-abda-607791b5b7c3",
"area_code": "se22",
"area_name": "se22"
},
"channel": "residential_sale",
"bedroom_band": "all",
"basis": "Daily count of LIVE portal listings by area. The portal records no exit dates, so stock on the market cannot be reconstructed for the past; it is observed forw…",
"series": [
{
"as_of_date": "2026-09-05",
"live_n": 192,
"live_dated_n": 147,
"median_age_days": 126,
"asking_price_median": 592500,
"asking_rent_median": null,
"new_home_n": 0
},
{
"as_of_date": "2026-09-06",
"live_n": 209,
"live_dated_n": 147,
"median_age_days": 127,
"asking_price_median": 625000,
"asking_rent_median": null,
"new_home_n": 0
}
],
"provenance": {
"source_table": "marts_facts.listing_stock_snapshot",
"n_days": 2,
"first_date": "2026-09-05",
"last_date": "2026-09-06",
"built_at": "2026-09-06T03:10:53.932065+00:00"
},
"notes": [
"Until the portal sweep completes (expected late September 2026) live counts reflect which pages have been crawled, not the market: on 2026-09-05 all 105k live …"
],
"source": "robosapien",
"cached": true,
"time_ms": 0.4
},
"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 |
| query | object | |
| query.area_code | string | SE22 |
| query.area_type | string | district |
| query.channel | string | residential_sale |
| query.bedroom_band | string | all |
| query.limit | integer | 3 |
| data | object | |
| data.area | object | |
| data.area.scope | string | district |
| data.area.area_key | string | 1520d540-4a9e-4fa2-abda-607791b5b7c3 |
| data.area.area_code | string | se22 |
| data.area.area_name | string | se22 |
| data.channel | string | residential_sale |
| data.bedroom_band | string | all |
| data.basis | string | Daily count of LIVE portal listings by area. The |
| data.series | array | |
| data.series[].as_of_date | string | 2026-09-05 |
| data.series[].live_n | integer | 192 |
| data.series[].live_dated_n | integer | 147 |
| data.series[].median_age_days | integer | 126 |
| data.series[].asking_price_median | integer | 592500 |
| data.series[].asking_rent_median | null | |
| data.series[].new_home_n | integer | 0 |
| data.provenance | object | |
| data.provenance.source_table | string | marts_facts.listing_stock_snapshot |
| data.provenance.n_days | integer | 2 |
| data.provenance.first_date | string | 2026-09-05 |
| data.provenance.last_date | string | 2026-09-06 |
| data.provenance.built_at | string | 2026-09-06T03:10:53.932065+00:00 |
| data.notes | array | |
| data.source | string | robosapien |
| data.cached | boolean | true |
| data.time_ms | number | 0.4 |
| 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
Market listing stock 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
- Property portals
Sale and lettings listings
Collected from publicly marketed listings · Great Britain
How the model or index is built, and where it is weak, is on the methodology page.
Related
Endpoints used with Market listing stock
- 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 - Monthly transaction volumeFree
market_volume_seriesMonthly transaction VOLUME for a postcode district, postcode area orSame product
Glossary
Terms used here
- Days on market: How long a listing has been marketed; MarketCode reports the age of live stock and the days to completion on matched sales, and is explicit that a true days-to-sale is not observable from portals.
- Listing stock (stock on market): The number of properties live on the market in an area on a given day, by channel and bedroom band; a series MarketCode observes forward from September 2026 because it cannot be reconstructed.
FAQ
Questions about Market listing stock
How much does `listing_stock_series` cost?
+
Market listing stock 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 listing_stock_series 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 Property portals listings. The methodology page describes how the model or index is built.
Does `listing_stock_series` 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 Market listing stock on a real address.
30-minute call. We'll provision a key and walk through the endpoint on your use case.