REST API ยท v1

Praesago API

Embed trajectory scores and property market intelligence into your platform. Covers every postcode district in England & Wales. Updated monthly from government data.

๐Ÿ 

Estate agents & portals

Show trajectory scores on listing pages. Give buyers a forward-looking signal alongside today's price.

๐Ÿฆ

Mortgage platforms

Add area risk context to affordability checks. Flag districts with high flood risk or declining demand.

๐Ÿ“Š

Investment tools

Power buy to let analysis dashboards with rental yield estimates, value gap flags, and signal breakdowns.

Authentication

Pass your API key in the Authorization header as a Bearer token.

curl https://praesago.com/api/v1/scores/E17 \
  -H "Authorization: Bearer at_live_xxxxxxxxxxxx"
Key prefix
at_live_โ€ฆ
Live keys
Transport
HTTPS only
HTTP redirected
Rate limit headers
X-RateLimit-*
Remaining + reset

Endpoints

GET/api/v1/scores/{district}

Returns the latest trajectory score and domain breakdown for a postcode district.

Parameters
districtpathstringrequiredPostcode district e.g. E17, M14, BS3
Request
curl https://praesago.com/api/v1/scores/E17 \
  -H "Authorization: Bearer at_live_xxxxxxxxxxxx"
Response
{
  "success": true,
  "data": {
    "district": "E17",
    "area_name": "Walthamstow",
    "region": "London",
    "county": "Greater London",
    "score_month": "2026-03-01",
    "trajectory_score": 67.4,
    "confidence_score": 5,
    "national_percentile": 79.2,
    "county_percentile": 61.3,
    "signals_available": 21,
    "signals": {
      "price_opportunity": {
        "sub_score": 74.1,
        "raw": 0.0312,
        "label": "3.1% 5yr price CAGR"
      },
      "demand_pressure": {
        "sub_score": 81.2,
        "raw": 0.0198,
        "label": "1.98% gravity CAGR"
      },
      "transformation": {
        "sub_score": 62.0,
        "raw": 1.4,
        "label": "IMD improvement +1.4 deciles"
      },
      "econ_baseline": {
        "sub_score": 55.3,
        "raw": 31200,
        "label": "ยฃ31,200 median household income"
      },
      "safety": {
        "sub_score": 48.9,
        "raw": 94.1,
        "label": "94.1 crimes per 1k residents"
      },
      "risk_ceiling": {
        "sub_score": 91.0,
        "raw": 0.018,
        "label": "1.8% high flood risk"
      }
    }
  },
  "error": null
}
GET/api/v1/districts/search

Search districts by code or area name. Useful for autocomplete in your UI.

Parameters
qquerystringrequiredSearch query: district code prefix or area name substring
limitqueryintegeroptionalMax results (default 10, max 50)
Request
curl "https://praesago.com/api/v1/districts/search?q=Waltham&limit=5" \
  -H "Authorization: Bearer at_live_xxxxxxxxxxxx"
Response
{
  "success": true,
  "data": [
    {
      "district": "E17",
      "area_name": "Walthamstow",
      "region": "London",
      "trajectory_score": 67.4,
      "confidence_score": 5
    },
    {
      "district": "EN8",
      "area_name": "Waltham Cross",
      "region": "East of England",
      "trajectory_score": 54.1,
      "confidence_score": 4
    }
  ],
  "error": null
}
GET/api/v1/districts/top

Returns the highest-scoring districts nationally or by region. Useful for 'rising areas' widgets.

Parameters
nqueryintegeroptionalNumber of districts to return (default 10, max 50)
regionquerystringoptionalFilter by region name e.g. London, South East, North West
min_confidencequeryintegeroptionalMinimum confidence score 1โ€“5 (default 3)
Request
curl "https://praesago.com/api/v1/districts/top?n=5&region=South+East" \
  -H "Authorization: Bearer at_live_xxxxxxxxxxxx"
Response
{
  "success": true,
  "data": {
    "as_of": "2026-03-01",
    "districts": [
      { "district": "RH10", "area_name": "Crawley", "trajectory_score": 81.2, "region": "South East", "confidence_score": 5 },
      { "district": "GU11", "area_name": "Aldershot", "trajectory_score": 78.9, "region": "South East", "confidence_score": 4 },
      { "district": "TN1",  "area_name": "Tunbridge Wells", "trajectory_score": 76.4, "region": "South East", "confidence_score": 5 }
    ]
  },
  "error": null
}
GET/api/v1/districts/{district}/context

Returns rich property context: recent transactions, price trend, EPC distribution, and school counts. Intended for listing page enrichment.

Parameters
districtpathstringrequiredPostcode district e.g. E17, M14, BS3
Request
curl https://praesago.com/api/v1/districts/E17/context \
  -H "Authorization: Bearer at_live_xxxxxxxxxxxx"
Response
{
  "success": true,
  "data": {
    "district": "E17",
    "area_name": "Walthamstow",
    "prices": {
      "avg_price_12m": 512400,
      "avg_price_prev_12m": 494800,
      "price_change_pct": 3.6,
      "transaction_count_12m": 284
    },
    "epc": {
      "pct_c_or_above": 48.2,
      "total_certs": 21847
    },
    "schools": {
      "total": 62,
      "outstanding": 14,
      "good": 33
    }
  },
  "error": null
}

Error codes

StatusMeaning
200Success
400Bad request: missing or invalid parameter
401Unauthorized: missing or invalid API key
404District not found
429Rate limit exceeded: check X-RateLimit-Reset header
500Internal server error

API pricing

Developer
Free
โœ“ 500 req / month
โœ“ 10 req / min
โ†’ For prototyping and evaluation
Get started
Most popular
Growth
ยฃ99/ month
โœ“ 50,000 req / month
โœ“ 60 req / min
โ†’ For live products up to ~2,000 daily users
Start free trial
Enterprise
Custom
โœ“ Unlimited
โœ“ Custom SLA
โ†’ Dedicated support, custom data exports, webhook updates
Talk to us

Ready to integrate?

Get your API key in seconds. No credit card required for the Developer plan.