API DocsProperty Market Intel
Getting StartedServiced Accommodation
AI & Integrations
Pricing
API Reference
1. Property Identity & Lookup
2. Valuations & Pricing
3. Rental Market Intelligence
5. Listings & Sourcing
6. Location Intelligence
7. Environmental & Risk
8. Planning & Regulatory
9. Account & Platform
Free Tier

Get 100 credits free, no card required. Try every endpoint with your own key.

Get a free keyNo credit card · cancel anytime

STR Market Analysis

GET3 credits
GET/str/market

Complete UK short-term-rental market intelligence — ADR, occupancy, RevPAR, 24 months of historical data, supply, ratings, amenities, breakdowns, demand, grade.

Overview

Full short-term-rental market analysis for any UK location — postcode, outcode, lat+lng+radius, or polygon.

Built from continuously-refreshed listing-level Airbnb + Vrbo data with 24 months of history at the listing level.

Why this endpoint exists

UK-wide SA intelligence at postcode granularity, billed per-call — roughly £0.02 per area snapshot.

Includes a letter-grade market score, 24 months of listing-level history, and every breakdown (bedrooms, listing type, price tier) in one call. Nothing else in the UK market bundles this as a callable REST API.

Highlights

~£0.02 per call, UK-wide, postcode-granular

24 months of listing-level history with YoY revenue change per month

Headline metrics — ADR, occupancy %, RevPAR, monthly and annual revenue, active listings

Breakdowns by bedrooms / listing type / price tier without extra calls

Letter-grade (A–F) market score with strongest / weakest dimensions

Ratings + amenity prevalence for all listings in the area

Supply growth and demand signals (booked vs available nights, lead time, length of stay)

Query parameters
postcodestringOne of

Full postcode or sector.

outcodestringOne of

District (e.g. BA1).

lat+lng+radius_mOne of

Radius up to 5 km.

polygonstringOne of

"lng,lat lng,lat …" (≥3 pairs).

listing_typestringOptional

entire_home | private_room | shared_room.

bedroomsintegerOptional

Exact bedroom count.

min_bedroomsintegerOptional

Minimum.

max_bedroomsintegerOptional

Maximum.

property_typestringOptional

house | apartment.

min_ratingnumberOptional

Floor on guest rating (e.g. 4.0).

price_tierstring (repeatable)Optional

Budget | Economy | Midscale | Upscale | Luxury.

includestring (csv)Optional

One or more of: summary, historical, supply, ratings, amenities, by_bedrooms, by_listing_type, by_price_tier, demand, grade. Default: all.

Response Schema
location

Location label.

country

"England" | "Wales" | "Scotland".

currency

Always "GBP".

summary

{ adr, occupancy_pct, revpar, revenue_pcm, revenue_annual, active_listings }.

historical

Array of 24 months × { month, adr, occupancy_pct, revenue_pcm, revpar, yoy_revenue_change }.

supply

{ active_listings, yoy_growth_pct, new_listings_30d, blocked_listings }.

ratings

{ overall_avg, count_with_rating, cleanliness, accuracy, communication, location, check_in, value }.

amenities

Object of {*_pct} floats (wifi, kitchen, washing_machine, parking, …).

by_bedrooms

Array of { bedrooms, listings, adr, occupancy_pct, revenue_pcm }.

by_listing_type

Array of { listing_type, listings, adr, occupancy_pct }.

by_price_tier

Array of { tier, listings, adr, occupancy_pct, revenue_pcm }.

demand

{ booked_nights_30d, available_nights_30d, lead_time_avg_days, length_of_stay_avg }.

grade

{ letter: "A"–"F", score_0_100, strongest: [...], weakest: [...] }.

Example

RequestLive key
curl -G https://pmi-api-beta-7tvvt.ondigitalocean.app/v1/str/market \
  --data-urlencode "outcode=BA1" \
  --data-urlencode "bedrooms=2" \
  --data-urlencode "include=summary,historical,grade" \
  -H "Authorization: Bearer pmi_live_xxxxxxxxxxxxxxxx"

Try this endpoint with your own key

100 free credits, no card required.

Sign up free →
Response200 OK
{
  "location": "BA1",
  "country": "England",
  "currency": "GBP",
  "summary": {
    "adr": 142,
    "occupancy_pct": 68,
    "revpar": 97,
    "revenue_pcm": 2955,
    "revenue_annual": 35460,
    "active_listings": 418
  },
  "historical": [
    {
      "month": "2024-05",
      "adr": 138,
      "occupancy_pct": 70,
      "revenue_pcm": 2940,
      "revpar": 97,
      "yoy_revenue_change": 0.08
    },
    {
      "month": "2024-06",
      "adr": 159,
      "occupancy_pct": 82,
      "revenue_pcm": 3914,
      "revpar": 130,
      "yoy_revenue_change": 0.11
    }
  ],
  "grade": {
    "letter": "A",
    "score_0_100": 86,
    "strongest": [
      "revpar",
      "occupancy"
    ],
    "weakest": [
      "supply_growth"
    ]
  }
}

More about this endpoint

Use Cases
1

Acquisition underwriting: "Before buying a £280k flat in Bath, I check /str/market for BA1 1. ADR £142, occupancy 68%, RevPAR £97, grade A. Projected ~£35k/yr gross. I proceed." — a 3-credit call answers a £280k decision.

2

Pricing / revenue management: Compare your listing's ADR to the by_price_tier summary each Monday. Dynamic-pricing tooling typically charges 1% of revenue for the same signal — you replicate it with one daily call.

3

SA vs long-let comparison: Pair /str/market (3 cr) + /rents/long-term (2 cr) for the same location. Decide strategy in 5 credits.

4

Market saturation screening: The supply section flags when listings are up 40% YoY but RevPAR is flat — over-supplied.

5

Lender / broker due diligence: SA mortgage lenders need revenue projections signed off. A reproducible, timestamped API response is stronger evidence than a hand-compiled screenshot pack.

Base URL: https://pmi-api-beta-7tvvt.ondigitalocean.app/v1API version 1.1