- Data
- REST API
- Market Intelligence
- Market agent activity
Market agent activity
GET /v1/market/agents/{area_id}Which estate agents actually transact in an area, ranked by listing count.
Same call over MCP
Estate agent activity in an areaagent_activityAuthenticate 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/agents/{area_id} returns
Sale and rental are counted and averaged SEPARATELY — an asking price and a monthly rent do not combine into one median, so read median_asking_price and median_monthly_rent as answering different questions.
area_id is the marts area id from area_resolve.
UK only.
Inputs
Before you call it
- area_id
- The area id is the analytics area identifier, not a name or a GSS code. Call area_resolve with a place name or code ("Hackney", "E5") first; it is free and returns the id with the area's hierarchy. Where it gives both
area_idandanalytics_area_id, passanalytics_area_id.
Request
Calling GET /v1/market/agents/{area_id}
curl "https://api.marketcode.ai/v1/market/agents/c0694b59-04d1-48ab-9a4c-c4f9d7b74f60?limit=5" \
-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_id | Path | string | Yes | Marts area id from /areas/resolve |
| months | Query | integer | No | |
| listing_type | Query | string | No | One of: sale, rental |
| limit | Query | integer | No | Default: 25 |
Response
What GET /v1/market/agents/{area_id} returns for a real request
curl "https://api.marketcode.ai/v1/market/agents/c0694b59-04d1-48ab-9a4c-c4f9d7b74f60?limit=5" \
-H "Authorization: Bearer $MARKETCODE_API_KEY"{
"area_id": "c0694b59-04d1-48ab-9a4c-c4f9d7b74f60",
"months": null,
"listing_type": null,
"agents": [
{
"agent_name": "OpenRent, London",
"n_properties": 1580,
"n_listings": 4825,
"n_rental": 4825,
"n_sale": 0,
"median_asking_price": null,
"median_monthly_rent": 1650,
"first_listing": "2021-08-06",
"last_listing": "2026-07-29"
},
{
"agent_name": "Winkworth, Forest Hill",
"n_properties": 448,
"n_listings": 1098,
"n_rental": 671,
"n_sale": 427,
"median_asking_price": 500000,
"median_monthly_rent": 1650,
"first_listing": "2021-10-07",
"last_listing": "2026-08-26"
},
{
"agent_name": "UNCLE, Deptford",
"n_properties": 4,
"n_listings": 1056,
"n_rental": 1056,
"n_sale": 0,
"median_asking_price": null,
"median_monthly_rent": 2505,
"first_listing": "2024-03-26",
"last_listing": "2026-07-29"
},
"… 2 more"
],
"count": 5,
"note": "Ranked by listing count. Sale and rental medians are separate because an asking price and a monthly rent do not average.",
"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 |
|---|---|---|
| area_id | string | c0694b59-04d1-48ab-9a4c-c4f9d7b74f60 |
| months | null | |
| listing_type | null | |
| agents | array | |
| agents[].agent_name | string | OpenRent, London |
| agents[].n_properties | integer | 1580 |
| agents[].n_listings | integer | 4825 |
| agents[].n_rental | integer | 4825 |
| agents[].n_sale | integer | 0 |
| agents[].median_asking_price | null | |
| agents[].median_monthly_rent | integer | 1650 |
| agents[].first_listing | string | 2021-08-06 |
| agents[].last_listing | string | 2026-07-29 |
| count | integer | 5 |
| note | string | Ranked by listing count. Sale and rental medians |
| 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 agent activity 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
- Property portals
Sale and lettings listings
Collected from publicly marketed listings · Great Britain
Related
Endpoints used with Market agent activity
- Resolve an area nameFree
area_resolveResolve an area name or code ("Hackney", "E5") to its area_id, centroidNamed in the description - What changed since your cursor1 credit
changes_sinceWhat changed since you last looked — the portal change feed. Pass the `next_cursor` from your previous call to get only what is new; on a first call give a scope (`postcode_districts` or `uprns`) or a `since` date, because an unbounded read of a 14.6-million-row feed is refused.Same category - Equity gain estimateFree
equity_estimateCurrent estimated value against the last recorded sale: gain in pounds and percent, and how long it has been held.Same category - Listing history for a property3 credits
listing_historyEvery marketing snapshot for a property: asking price over time, price reductions, days listed, status changes, agent, image count and whether it had a floor plan.Same category - 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.Same category - Live listings stock, dailyFree
listing_stock_seriesLive 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 category
Glossary
Terms used here
- 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.
- Agent market share: Which estate and letting agents actually list in an area, ranked by listings, with concentration measured by the Herfindahl index and the top-three share.
FAQ
Questions about Market agent activity
How much does `agent_activity` cost?
+
Market agent activity 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.
Where do I get the area id?
+
From area_resolve, which is free: give it a place name or postcode district and it returns the area id, centroid and hierarchy. agent_activity then takes that id.
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 agent_activity 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 Property portals listings. Coverage is the UK.
Does `agent_activity` 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 agent activity on a real address.
30-minute call. We'll provision a key and walk through the endpoint on your use case.