API reference · engine 1.3.0
Four products and a control plane on one REST API. Browse what every endpoint does here, read how the engine works on the methodology page, or open the playground to try any call in your browser.
01 · Start here
Everything you need to make a first call. Point at the base URL, send your key as a bearer token, and read JSON back with the engine version that produced it.
onegoodarea.onrender.com/v1. One HTTPS endpoint. Every product lives under the /v1 path.
Authorization: Bearer oga_live_… One key per environment, sent as a bearer token on every request.
X-Engine-Version: 1.3.0. Every response is stamped. Pin a version and the same request returns the same number later.
application/json. JSON in, JSON out. Every value carries its own source and confidence.
02 · Products
Each product exposes a small set of endpoints. Read how they work on the methodology page, and open the playground to try any of them in your browser.
4 endpoints
Every public signal for an area, in one consistent shape. The primitive everything else is built on.
About Signals1 endpoint
A single 0 to 100 score for an area, from one of four profiles, your own weights, or a weighting saved for your team.
About Scores7 endpoints
Watch a list of areas, enrich them in bulk, track monthly change, and get a signed webhook when something material moves.
About Monitor4 endpoints
Ask in plain English or send a typed query. You get the answer and the plan behind it, so every result can be reviewed and run again.
About Intelligence03 · Control plane
A separate set of endpoints for admins and owners: signal bundles, scoring presets, version pinning, peer groups, members and roles, and webhook delivery. All opt-in.
04 · Conventions
The same rules hold across every endpoint, so once you have handled one call you have handled them all. Errors, paging and rate limits all work the same way, whichever product you are using.
Every failure returns the same object with a stable code and a plain message, so you handle errors once and never parse prose.
List endpoints page through a stable cursor, so large result sets come back in order with nothing skipped or repeated.
Every response carries your remaining budget in its headers, so you can slow down smoothly instead of being cut off.
A signal looks the same on every endpoint, so what you learn reading one response carries straight to the others.
{
"error": {
"code": "area_not_found",
"message": "No area matches that postcode."
}
}05 · Go deeper
The reasoning behind every endpoint, and a runner to try them. Both stay in step with the API on every deploy, so neither ever drifts.
How every signal, score, comparison and forecast is worked out, and the public sources behind them. The why behind every endpoint.
Every endpoint against the live API. See the exact request and response shapes, and try any call in your browser.
Make your first call in the playground, then come back here whenever you need the exact shape of a request.