Skip to main content
Each key has two limits: a monthly quota of calls, and a rate limit of 600 calls a minute. Each request is also stopped if its search takes too long.

The monthly quota

We set your key’s quota when we make it. It counts calls to every endpoint: /v1/scores, /v1/fields/{field_id} and /v1/usage.
Only answers count. A call that fails (a typo, an unknown postcode, a 404, a 422, a search that took too long) is given back. Calls refused for the key, the quota or the rate limit aren’t counted either.
The month is the calendar month in UTC. Your count starts again at 00:00 UTC on the 1st of each month. The quota holds exactly, even under load. Calls made at the same moment are counted one at a time, so they can’t go past it.

Seeing what’s left

Answers from /v1/scores, /v1/fields/{field_id} and /v1/usage carry two headers: Or ask /v1/usage. It doesn’t count as a call, and it still answers when the month’s calls are used up:
string
The calendar month counted, YYYY-MM, in UTC.
integer
Calls answered this month.
integer
Calls allowed a month.
integer
Calls left this month.
string
When the count starts again, in UTC.

When the quota runs out

Every call, /v1/usage included, gets 429 quota_exceeded until the month ends. The Retry-After header gives the seconds until 00:00 UTC on the 1st. If you need more calls, email hello@checkthatfield.com.

The rate limit

Each key may make 600 calls a minute. The count is kept in fixed one-minute windows. Past it, calls get 429 rate_limited, with a Retry-After header giving the seconds until the window ends.
On a 429, wait for Retry-After seconds before trying again. Calls made while limited still count towards the window, so retrying at once keeps you limited.
Don’t retry quota_exceeded this way: its Retry-After can be weeks.

The 15-second cap

Each database query behind a request may take at most 15 seconds. A search that goes over is stopped and answered 503 too_slow, and isn’t counted against your quota. It is most likely around the edge of a big town or city, with a wide radius. To avoid it:
  • ask with a postcode or a point instead of a town’s name
  • use a smaller radius_m
  • ask for fewer fields with limit

Request bounds

Values outside these get 422 bad_request. /v1/scores returns at most 50 housing applications, newest first.