SStratum APIs

Documentation

Limits and fair use

There is no requests-per-second limit on a paid key. What limits a key is its plan's monthly allowance (or your credit, on the transactions API), how much one request can carry, and for some checks how fast the official source behind it can be read. Every limit below says what you get back when you reach it: an HTTP status and a code you can act on, never a silent drop.

Monthly plan allowances

Each plan includes a number of calls a month. Past that, extra calls are billed at the plan's per-call rate on your next invoice. At twice the allowance, calls pause for the rest of the month (HTTP 429) so a bug in your code can't run up a large bill; upgrade, or email us and we'll raise it. During the free trial, calls stop at the allowance, so nothing extra is charged before you've paid. We email you at 80% and 100% of the allowance and if calls pause. Sanctions and export screening answers also carry x-checks-used, x-checks-included and x-checks-limit headers.

PlanIncluded a monthEach extra callCalls pause at
UK Sanctions Screening
Starter2,0004p4,000
Growth25,0003p50,000
Pro250,0002p500,000
Export Controls Screening
Starter2,0005p4,000
Growth25,0004p50,000
Pro250,0003p500,000
UK FCA Regulated Firm Verification
Starter5005p1,000
Growth5,0003p10,000
Pro25,0002p50,000
UK Postcode Intelligence
Starter5006p1,000
Growth5,0004p10,000
Pro50,0002p100,000
UK EPC Energy Performance
Starter20025p400
Growth2,00012p4,000
Pro25,0005p50,000
UK Companies House Watch
Starter5006p1,000
Growth5,0004p10,000
Pro50,0002p100,000
UK Business Risk + Director Score
Starter50010p1,000
Growth5,0006p10,000
Pro50,0003p100,000

A bulk request counts each name or company in it. A request that would take you past the pause point is refused whole, so you never get half an answer that was half billed.

Credit, the test key and PEP

  • The transactions API has no monthly allowance: each check is paid from your credit. If a run needs more credit than you have, it is refused with insufficient_credit, the amount needed and your balance, and nothing runs or is charged.
  • Your free test key gets 50 real checks in total, once, shared across every API and the transactions API. After that, a request is refused with HTTP 429 and test_limit; use your account key. Fixed test names (anything starting “Stratum Test” on sanctions screening) stay free, up to 200 a day. Watchlists need a plan. A test key is for building and testing, not for checking real clients.
  • PEP checks: up to 1,000 a day per account. Past that, the answer says the PEP check did not run, and you can try again the next day (UTC) or email us to raise it.

How much one request can carry

RequestLimit
Sanctions bulk screen100 names per call. After 20 seconds it stops starting new names and returns the rest in notScreened; only screened names are charged.
A name or reference200 characters for a name, 100 for your reference
Business risk bulk50 company numbers per request
Company watchlist (set)1,000 company numbers per request
Disqualified directors check50 people per request
Suites (letting, sale, finance)50 parties per call; for more, use a screening list transaction
Screening list transaction2,000 names
Evidence files on a record15 MB per file, 10 files per record
Any requestAnswered within 30 seconds, or it fails with a 5xx you can retry

Over a size limit, the request is refused with HTTP 400 and a message saying the limit.

The speed of the official sources

Company checks read Companies House, which lets our whole service make 600 requests every 5 minutes. We keep recent answers, so repeat lookups don't use that up. If Companies House can't be read at that moment, the answer says so instead of guessing (for example, an ownership tree returns HTTP 503 with companies_house_unavailable and charges nothing). Try again after a minute.

Planning a one-off run of more than 10,000 checks, or steady traffic above 10 requests a second? Email support@stratumapis.com first and we'll make sure the sources keep up.

What to do when you reach a limit

  • Read the code and message in the answer: they say which limit and what to do.
  • HTTP 429 from a plan or the test key won't clear by retrying: wait for the next month or day, or upgrade.
  • HTTP 503 or another 5xx: retry after a short wait (for example 1, 5, then 30 seconds). Don't retry a 400.
  • A name that errored, timed out or came back in notScreened has not been screened. Don't treat it as clear.
  • Webhooks we send you are retried 1, 5, 30, 120 and 720 minutes after a failed delivery. See the transactions docs.

Working around these limits (sharing keys across organisations, rotating keys to dodge an allowance) breaches the acceptable use policy.