For developers

Show how likely the fields near a home are to be built on, in your own site or product. There are two ways: a JSON API for your server, and a widget you can put in a page with two lines of HTML.

Both give what our free report gives: each field's score from 0 to 100, its band, the outlook over 5 and 15 years, and the main reasons in a few words. The sources, the records and the full reasoning stay in the deep report on our site. Fields we haven't scored yet are checked when you ask, and come back as "pending" until they are done, usually in a few minutes.

Ask for a key. Pricing is by arrangement for now.

The API

Send your secret key in the Authorization header. Keep it on your server: a secret key in a web page can be read by anyone.

Authorization: Bearer ctf_sk_live_…

Every answer is JSON. Scores and fields carry X-Quota-Limit and X-Quota-Remaining headers, and an attribution list.

GET /v1/scores

The open fields near a place, nearest first, with the applications for new homes near them. Give one of postcode, q (a town, village or an address with a postcode) or lat and lng. Optional: radius_m (default 500, at most 1,000), limit (default 20, at most 60), geometry=true for each field's outline as GeoJSON, and applications=false to leave the applications out.

curl -H "Authorization: Bearer $CTF_KEY" \
  "https://api.checkthatfield.com/v1/scores?postcode=HP18%209TH&limit=5"
{
  "centre": { "point": [-1.0731, 51.7512], "from": "postcode", "place": null },
  "radius_m": 500,
  "model_version": "0.4.0",
  "fields": [
    {
      "field_id": 7341642,
      "inspire_id": 54712093,
      "distance_m": 140,
      "area_ha": 3.2,
      "council": { "code": "E06000060", "name": "Buckinghamshire" },
      "point": [-1.0702, 51.7525],
      "status": "scored",
      "score": 52,
      "band": "High",
      "horizons": { "five_year": 38, "fifteen_year": 57 },
      "reasons": [
        { "label": "Allocated for housing in the Local Plan", "direction": "up", "strength": "strong" },
        { "label": "Adjacent to a settlement boundary", "direction": "up", "strength": "moderate" },
        { "label": "Partly in a flood zone", "direction": "down", "strength": "slight" }
      ],
      "scored_at": "2026-11-02T09:14:00Z",
      "report_url": "https://www.checkthatfield.com/map?fields=7341642&at=-1.07020,51.75250,16"
    },
    { "field_id": 7341655, "status": "pending", "score": null, "band": null, "…": "…" }
  ],
  "applications": [
    {
      "council": "Buckinghamshire",
      "reference": "24/01234/OUT",
      "address": "Land off Church Lane",
      "description": "Outline application for up to 40 homes",
      "type": "outline",
      "homes": 40,
      "status": "decided",
      "decision": "refused",
      "received_date": "2024-03-11",
      "decision_date": "2024-09-02",
      "distance_m": 420,
      "located_by": "published",
      "url": "https://publicaccess.example.gov.uk/…"
    }
  ],
  "attribution": ["…"]
}

Applications are planning applications for new homes from the last 15 years: when and what was asked for, and what was decided, with a link to the council's own page. We don't pass on documents or anyone's name.

GET /v1/fields/{field_id}

One field, by the field_id the scores give, in the same shape, with the applications within 1 km. A field that is built on, or too small to be one, comes back as not_open_land.

curl -H "Authorization: Bearer $CTF_KEY" "https://api.checkthatfield.com/v1/fields/7341642"

GET /v1/usage

Your calls this month and your monthly quota.

curl -H "Authorization: Bearer $CTF_KEY" "https://api.checkthatfield.com/v1/usage"

The full reference, with every field described, is at /v1/docs (OpenAPI at /v1/openapi.json).

Errors

Every error has the same shape: {"error": {"code": "…", "message": "…"}}. You get up to 600 calls a minute, and your monthly quota; a call that fails isn't counted.

StatusCodeWhat it means
401invalid_keyNo key, or one we don't know.
403key_revokedThe key has been revoked.
404not_foundNo such field, postcode or place, or no such endpoint.
405method_not_allowedThe endpoints are all GET.
409ambiguousA place name matches more than one place. The answer lists the choices.
422outside_englandThe place is outside England.
422bad_requestThe question can't be answered as asked, for example two locations at once.
429quota_exceededThe month's calls are used up. Retry-After says when they come back.
429rate_limitedMore than 600 calls a minute. Retry-After says when to try again.
503too_slowThe search took too long. Try a smaller radius or a postcode.

The widget

The widget shows the band and score of the nearest scored field, its main reasons, the five nearest fields and a small map, with a link to the full report on our site. It follows the reader's light or dark setting; add data-theme="light" or "dark" to choose one.

It uses a publishable key, which works only on the sites named when it was made (and their subdomains), so it is safe in a page. Give a postcode, or data-lat and data-lng. The script loads the widget as it nears the screen and sizes it to fit. The link inside the div shows if the script can't run.

<div class="ctf-widget" data-key="ctf_pk_live_…" data-postcode="HP18 9TH">
  <a href="https://www.checkthatfield.com/map">Check how likely nearby fields are to be built on</a>
</div>
<script src="https://www.checkthatfield.com/embed/v1.js" async></script>

Or, without the script, an iframe of a fixed height:

<iframe
  src="https://www.checkthatfield.com/embed/fields?key=ctf_pk_live_…&postcode=HP18%209TH"
  title="Development likelihood of nearby fields"
  width="100%" height="560" style="border:0" loading="lazy"></iframe>

The widget sets no cookies and keeps nothing in the reader's browser. We count how often it is seen and clicked, for your key's usage.

Attribution

Wherever you show our scores, show the lines in the answer's attribution list as given, near the data, and say they come from Check That Field with a link to checkthatfield.com. The lines credit the public data the scores are built from, such as Crown copyright and Open Government Licence notices. The widget shows them for you.

Scores are an automated indicator from published data, not planning or legal advice. Please say so where you show them.

Ask for a key

Email hello@checkthatfield.com with what you'd like to build, roughly how many calls a month you expect, and for the widget, the sites it will be on. Pricing is by arrangement for now.