Subscribe to a Developer, Business, or Growth plan. Generate a key from the dashboard.
POST a postcode and an intent to /api/v1/report with your Bearer token.
Back comes a score, five weighted dimensions, a narrative, recommendations, and citations.
Every request carries an Authorization header with a 48-character hex token prefixed with aiq_. Generate and revoke keys from your dashboard.
Keys carry full account access. Do not ship them in client-side code or public repositories. If a key is exposed, revoke it from the dashboard. Revocation is instant.
https://www.area-iq.co.uk/api/v1/reportHTTPS only. Plain HTTP is rejected. Content-Type must be application/json.
areastringYesUK area name or postcode. e.g. "Shoreditch", "SW1A 1AA", "Manchester city centre". Max 100 characters.intentstringYesOne of: moving · business · investing · research. Determines which five dimensions get computed and how they're weighted.movingMoving homeSafety · Schools · Transport · Amenities · Cost of LivingbusinessOpening a businessFoot Traffic · Competition · Access · Spending Power · CostsinvestingProperty investingPrice Growth · Rental Yield · Regeneration · Demand · RiskresearchResearch profileSafety · Transport · Amenities · Demographics · EnvironmentA successful request returns 200 OK with a report ID and the full report object.
idstringUnique report ID. Prefixed rpt_.report.areastringNormalised area name.report.intentstringIntent type used for scoring.report.area_typestringurban | suburban | rural. Benchmark category.report.areaiq_scorenumberOverall weighted score 0–100 (integer).report.sub_scores[]SubScore[]Exactly five dimensions keyed to the intent.report.sub_scores[].labelstringDimension name. Varies per intent.report.sub_scores[].scorenumberDimension score 0–100 (integer).report.sub_scores[].weightnumberRelative weight. Sums to 100 across all five.report.sub_scores[].reasoningstringData-backed explanation for this score.report.summarystring2–3 sentence executive summary.report.sections[]Section[]4–6 detailed analysis sections.report.recommendations[]string[]3+ actionable recommendations.report.property_dataobjectMedian sold price + YoY change + transaction counts.report.schools_dataobjectSchools within 1.5km with Ofsted ratings (England).report.data_sources[]string[]Datasets that contributed to this report.report.data_freshness[]Freshness[]Per-source period + status (live/recent/static).report.generated_atstringISO 8601 timestamp.Non-2xx responses return a JSON object with a single error field describing the issue.
200OKReport generated.400Bad RequestMissing or invalid area / intent field.401UnauthorizedMissing, invalid, or revoked API key.403ForbiddenActive API plan required (Developer / Business / Growth).429Rate Limited30 req/min exceeded. Retry-After header included.500Server ErrorInternal error. Retry, or contact support.The API allows 30 requests per minute per key, tracked as a sliding window. Every response carries X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers. 429 responses include a Retry-After header.
The embeddable widget has its own ceiling: 60 requests per hour per origin, cache-only, so public embeds on your property listings never consume API quota.
Every response carries a data_sources array and a data_freshness block so you can audit exactly which dataset contributed to which claim.
The widget renders a score card on any page. It reads from the 24-hour cache only, so embed traffic never hits live compute and your quota stays intact.
data-areaiq-postcodeRequiredUK postcode or area name.data-areaiq-intentOptionalmoving (default) · business · investing · research.data-areaiq-themeOptionaldark (default) · light.The API speaks plain JSON over HTTPS. Use whatever HTTP client your stack prefers. Below: cURL, Node.js, Python, and Go.