What changed in the API, newest first — and how we handle change.
Building something and want a heads-up on changes, or a field you need? Get in touch.
Every constraint in constraints.summary is now the same object shape — { present, label, count } — where present is a boolean, label is the headline name/grade/level (or null), and count is the number of overlapping entities. Previously a value could be a string, a boolean, an integer or null depending on the constraint, which couldn't be modelled in a typed client. The full per-entity data in constraints.details is unchanged. This in-place reshape is the change that prompted the policy above; from here, changes like it are made additively.
The benchmarking leaderboards under /v1/analytics/* — appeals overturn rates, energy efficiency, property market and planning timeliness — no longer require an API key.
Agent, applicant and case-officer details on the application detail endpoint are available on paid tiers. Free responses include a redacted_fields list naming exactly what is withheld, so you always know what a paid key would add — no field silently disappears.