Area analytics
Location-level intelligence for screening areas before you screen properties. Three families of endpoints: area intelligence (/api/v1/area) for point-based lookups of amenities, transport, schools and walkability; area analytics (/api/v1/area-analytics) for postcode-level market aggregates (prices, trends, yields, BMV mix, stock turnover); and area pack (/api/v1/area-pack) for a generated investor report PDF.
Required scope: areas:read
Cost: 1 request per call
Available on: Starter, Professional, Business
The
/api/v1/area endpoints are available to every API plan. The /api/v1/area-analytics and /api/v1/area-pack endpoints carry an additional gate enforced in the API itself: the platform account linked to your API key must be on a Pro or Founder subscription. Other accounts receive 402 Payment Required with an upgrade message.Get nearby amenities
Request
| Param | Type | Required | Description |
|---|---|---|---|
latitude | float | Yes | Centre point latitude (-90 to 90) |
longitude | float | Yes | Centre point longitude (-180 to 180) |
radius_km | float | No | Search radius in km (0.1–10, default 2.0) |
category | string | No | Filter to one amenity category |
limit | integer | No | Max results (1–200, default 50) |
Response
Get nearby transport links
Request
| Param | Type | Required | Description |
|---|---|---|---|
latitude | float | Yes | Centre point latitude (-90 to 90) |
longitude | float | Yes | Centre point longitude (-180 to 180) |
radius_km | float | No | Search radius in km (0.1–5, default 1.5) |
transport_type | string | No | Filter: train, tube, bus, tram |
Response
Get nearby schools
Request
| Param | Type | Required | Description |
|---|---|---|---|
latitude | float | Yes | Centre point latitude (-90 to 90) |
longitude | float | Yes | Centre point longitude (-180 to 180) |
radius_km | float | No | Search radius in km (0.5–10, default 3.0) |
school_type | string | No | primary, secondary, sixth_form, special, all |
min_rating | integer | No | Ofsted rating filter (1 = Outstanding, 4 = Inadequate) |
Response
Get area demographics (by postcode)
M1 4BT resolves to district M1), including a housing tenure breakdown. Returns 404 if no demographic record exists for the district. For the richer ONS dataset (crime rating, deprivation index), see Demographics.
Request
| Param | Type | Required | Description |
|---|---|---|---|
area | string | Yes | UK postcode (full or district); resolved to the postcode district |
Response
Get walkability score
Request
| Param | Type | Required | Description |
|---|---|---|---|
latitude | float | Yes | Point latitude (-90 to 90) |
longitude | float | Yes | Point longitude (-180 to 180) |
Response
rating is one of Walker's Paradise (≥90), Very Walkable (≥70), Somewhat Walkable (≥50), Car-Dependent.
Compare locations
Request
| Param | Type | Required | Description |
|---|---|---|---|
latitude | float | Yes | Location latitude |
longitude | float | Yes | Location longitude |
name | string | No | Label echoed in the response (defaults to Location N) |
Response
Get postcode analytics
402 Payment Required.
Request
| Param | Type | Required | Description |
|---|---|---|---|
postcode | string | Yes | Full UK postcode, with or without space (e.g. M14BT or M1 4BT). Invalid lengths return 400 |
property_type | string | No | Filter every signal to one type (e.g. flat, semi-detached, Detached House); portal/Land Registry variants are normalised server-side |
Response
Field reference (top level)
| Field | Type | Description |
|---|---|---|
postcode | string | Normalised postcode queried |
sample_size | integer | Comparable sales backing the aggregates |
confidence | string | high / medium / low based on sample size |
generated_at | ISO 8601 | When the response was computed |
cache_hit | boolean | Whether the result came from cache |
by_bedroom | array | Median/mean price and £/sqft per bedroom count |
by_property_type | array | Median price and £/sqft per property type |
price_trend / transaction_volume | array | Monthly median price + sale count series |
days_on_market | array | Listing counts in 0-30 / 31-60 / 61-90 / 91-180 / 180+ day buckets |
sold_vs_asking | object | Median, p10 and p90 sold-price-to-asking-price ratios |
tier_mix | object | Comparable confidence tiers (gold/silver/bronze/supporting) |
tenure_mix / epc_mix / council_tax_mix | object | Stock composition counts |
rent_distribution | object | Median/p10/p90 rent (£ pcm) + median gross yield % |
bmv_distribution | object | Active listings bucketed by below-market-value % |
stock_turnover | object | Active listings, annual sales, months of supply |
new_vs_reduced | object | New vs price-reduced listings, 30 and 90 days |
investor_activity | object | % non-standard transactions and % likely flips |
planning_activity | object | Planning approvals/rejections (12 months) + pending |
Generate an area investor pack (PDF)
application/pdf with a Content-Disposition: attachment header). Report metadata is returned in custom X-Area-Pack-* response headers.
Plan gate: every report tier (lite, full, branded) requires the linked platform account to be on Pro or Founder — otherwise 402 Payment Required. An unknown tier value returns 400.
Request
| Param | Type | Required | Description |
|---|---|---|---|
postcode | string | Yes | Full UK postcode. The URL postcode is canonical and overrides the body’s postcode |
| Param | Type | Required | Description |
|---|---|---|---|
postcode | string | Yes | UK postcode, with or without space (5–8 chars) |
tier | string | No | lite (default), full, or branded |
branding | object | No | Custom branding override; only used when tier=branded. Omit to use your saved branding |
Response
The body is the raw PDF bytes. Metadata headers:| Header | Description |
|---|---|
Content-Disposition | attachment; filename="..." |
X-Area-Pack-Tier | Tier the report was generated at |
X-Area-Pack-Sample-Size | Comparable sales backing the report |
X-Area-Pack-Confidence | high / medium / low |
X-Area-Pack-Generation-Ms | Server-side generation time in milliseconds |
Scheduled area reports
/api/v1/area-report-subscriptions provides CRUD for scheduled email delivery of area reports (POST to create with postcode, tier, cadence of weekly/monthly and a delivery_email; GET to list active subscriptions; DELETE /{subscription_id} to deactivate). It is reachable over API-key auth with the same Pro/Founder plan gate as the area pack, but it is primarily a dashboard feature — reports are delivered by email on a schedule rather than returned over the API.
Related endpoints
- Area aggregates (yields/rents/agents) — Yield and rent aggregates for the same areas
- Demographics — ONS census, deprivation index and crime rating by district
- Market intelligence — Wider market signals and trends