- Data
- REST API
- Market data
- Market asking index
Market asking index
GET /v1/market/asking-indexHedonic 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 call over MCP
Asking-price index (portal listings)asking_price_index_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/asking-index returns
Use this for "how have asking prices in W14 moved since 2022" or to see whether sellers are ahead of or behind the sold-price index (market_index_series). Asking LEADS sold by months and includes what never sells; value is an index level, never a price. For asking-price LEVELS use listing_market_series.
area_code is a postcode district ("W14") with area_type="district", a local authority NAME ("Camden") with area_type="lad", or "NATIONAL". An unknown area is an error naming the nearest matches; read them back.
READ provenance.pub_freq: the pipeline judged which grain this area's data can resolve (posterior SE of the monthly move <= 1 pp). If it says quarterly, prefer frequency="quarterly" and say the monthly series is noisy. inc_se_pp on each point is the SE of that period's move.
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/asking-index
curl "https://api.marketcode.ai/v1/market/asking-index?area_code=SE22&area_type=district&limit=6" \
-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 ("W14"), local authority NAME ("Camden") with area_type=lad, or NATIONALDefault: NATIONAL |
| area_type | Query | string | No | district | lad | nationalDefault: district |
| frequency | Query | string | No | monthly | quarterly — read provenance.pub_freq for the grain the data resolvesDefault: monthly |
| method | Query | string | No | hedonic_smoothed | hedonic_rawDefault: hedonic_smoothed |
| from | Query | string | No | YYYY, YYYY-MM or YYYY-Qn |
| to | Query | string | No | Last period (inclusive) |
| limit | Query | integer | No | Default: 400 |
Response
What GET /v1/market/asking-index returns for a real request
curl "https://api.marketcode.ai/v1/market/asking-index?area_code=SE22&area_type=district&limit=6" \
-H "Authorization: Bearer $MARKETCODE_API_KEY"{
"country": "UK",
"query": {
"area_code": "SE22",
"area_type": "district",
"frequency": "monthly",
"method": "hedonic_smoothed",
"limit": 6
},
"data": {
"area": {
"scope": "district",
"area_key": "1520d540-4a9e-4fa2-abda-607791b5b7c3",
"area_code": "se22",
"area_name": "se22"
},
"frequency": "monthly",
"basis": "Hedonic (mix-adjusted for property type, bedrooms and new-build, within each local authority) index of ASKING prices from portal listings, 2022M01 = 100, smoot…",
"series": [
{
"period": "2026M03",
"period_start": "2026-03-01",
"value": 103.6870651248944,
"lo": 101.07804999081657,
"hi": 106.3634238609755,
"se_pp": 1.9885569914089851,
"inc_se_pp": 2.0431955404398723,
"yoy_pct": -0.7456352275839517,
"n_obs": 99,
"is_provisional": false
},
{
"period": "2026M04",
"period_start": "2026-04-01",
"value": 103.75033066008132,
"lo": 101.03323915574158,
"hi": 106.54049303005544,
"se_pp": 2.0707542055184285,
"inc_se_pp": 2.0599722859265106,
"yoy_pct": -0.4556863885037954,
"n_obs": 88,
"is_provisional": false
},
{
"period": "2026M05",
"period_start": "2026-05-01",
"value": 99.38866801208502,
"lo": 96.46237139911582,
"hi": 102.40373718727588,
"se_pp": 2.331947106257289,
"inc_se_pp": 2.1787547751714285,
"yoy_pct": -5.488050871056838,
"n_obs": 54,
"is_provisional": false
},
"… 3 more"
],
"provenance": {
"source_table": "marts_facts.listing_index",
"basis": "asking_price",
"method": "hedonic_smoothed",
"pub_freq": "quarterly",
"parent_key": "b0752e32-097d-4bc5-98b2-e9fc2425c00a",
"base_period": "2023 mean",
"n_obs_total": 4574,
"n_periods": 6,
"first_period": "2026M03",
"last_period": "2026M08",
"built_at": "2026-09-05T11:15:06.005574+00:00",
"validation": "Year-on-year compared with the published repeat-sales index (area_facts.hpi) at lags 0/3/6 months each build; reported, not gated."
},
"notes": [
"3 period(s) are PROVISIONAL (2026M06..2026M08): the crawl has not finished observing them — recent listings are mostly still live and live pages are under-date…",
"The pipeline judged quarterly the resolvable grain for this area (posterior SE of the monthly move > 1 pp); the monthly series is stored but noisier. Read inc_…"
],
"source": "robosapien",
"cached": true,
"time_ms": 0.7
},
"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.frequency | string | monthly |
| query.method | string | hedonic_smoothed |
| query.limit | integer | 6 |
| 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.frequency | string | monthly |
| data.basis | string | Hedonic (mix-adjusted for property type, bedroom |
| data.series | array | |
| data.series[].period | string | 2026M03 |
| data.series[].period_start | string | 2026-03-01 |
| data.series[].value | number | 103.6870651248944 |
| data.series[].lo | number | 101.07804999081655 |
| data.series[].hi | number | 106.3634238609755 |
| data.series[].se_pp | number | 1.9885569914089851 |
| data.series[].inc_se_pp | number | 2.0431955404398723 |
| data.series[].yoy_pct | number | -0.7456352275839517 |
| data.series[].n_obs | integer | 99 |
| data.series[].is_provisional | boolean | false |
| data.provenance | object | |
| data.provenance.source_table | string | marts_facts.listing_index |
| data.provenance.basis | string | asking_price |
| data.provenance.method | string | hedonic_smoothed |
| data.provenance.pub_freq | string | quarterly |
| data.provenance.parent_key | string | b0752e32-097d-4bc5-98b2-e9fc2425c00a |
| data.provenance.base_period | string | 2023 mean |
| data.provenance.n_obs_total | integer | 4574 |
| data.provenance.n_periods | integer | 6 |
| data.provenance.first_period | string | 2026M03 |
| data.provenance.last_period | string | 2026M08 |
| data.provenance.built_at | string | 2026-09-05T11:15:06.005574+00:00 |
| data.provenance.validation | string | Year-on-year compared with the published repeat- |
| data.notes | array | |
| data.source | string | robosapien |
| data.cached | boolean | true |
| data.time_ms | number | 0.7 |
| 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 asking index 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 asking index
- 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.Named in the description - Supply-side listing statisticsFree
listing_market_seriesMonthly supply-side statistics from portal listings for one area, channel and bedroom band: listings added and reduced, reduction share (the market-temperature signal), asking price or rent median and quartiles, £/m² where a floor area is stated, new-build share, agent concentration (HHI, top-3 share), and — on rent rows — gross yield on two bases (cell rent over cell price; per-listing rent over the unit's AVM value), and on sale rows the asking-to-sold ratio and days to completion on listings the registry matched to a sale.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 - Monthly transaction volumeFree
market_volume_seriesMonthly transaction VOLUME for a postcode district, postcode area orSame product
Glossary
Terms used here
- Hedonic index: A price index that prices the attributes of each property (type, bedrooms, size, location) so that a change in what is on the market does not read as a change in prices; the method behind the asking indices.
- Asking price and asking-to-sold ratio: The price a property is marketed at, as against the price it sells for; asking leads sold by months and includes what never sells, and the ratio between them is a temperature gauge.
FAQ
Questions about Market asking index
How much does `asking_price_index_series` cost?
+
Market asking index 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 asking_price_index_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. Coverage is Great Britain. The methodology page describes how the model or index is built.
Does `asking_price_index_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 asking index on a real address.
30-minute call. We'll provision a key and walk through the endpoint on your use case.