The R-Score, risk narratives, verified contacts and batch enrichment for 3.4 million England & Wales companies. Authenticate with one header, call the endpoint you need. Free trial key, no card.
No card. No sales call. 14 days, 100 calls a day, 20 contact lookups a day. Your key is shown once below and emailed to you as a backup. One trial key per email.
For LLM agents: a machine-readable summary lives at blackflagalert.com/llms.txt. For Claude / Cursor / Windsurf, see the MCP server.
Full company profile: R-Score, risk band, five years of financials, filing history, charges, CCJs, directors, active alerts, suggested credit exposure, plus a plain-English risk narrative.
| company_number | 8-character Companies House number, e.g. 04466987 |
| 200 | Full profile JSON (see example below) |
| score_change | Change between the two most recent filed accounting periods: delta, current, previous, band before and after (current_band / previous_band), as_of (latest period end), moved (band change or ≥5 points). Absent when the company has filed one period or fewer. Also present on batch result rows. |
| 404 | Company not found (includes Scottish / NI / overseas numbers; E&W coverage only) |
| 401 / 429 | Missing or invalid key / over daily limit |
Plain-English risk summary only — fast and cheap, no external credit fetch. Generated deterministically from the data: reproducible, zero hallucination.
Verified contact details: SMTP-validated email addresses, phone, website domain. Only deliverable addresses are served; invalids are filtered out.
Enrich up to 50 companies in one call. Request body: {"company_numbers": ["04466987", ...]}. Each result carries status, R-Score, overdue flags, charges, CCJs, net assets and suggested credit exposure. Unknown numbers return "found": false.
Your key's rolling-24h usage against its limits — calls made, calls allowed, contact lookups used. Use it to throttle your integration before you hit a 429.
Self-service trial key. Body: {"email": "...", "company_name": "optional"}. One active trial per email (409 on duplicate). No auth required.
Liveness probe. Returns {"status": "ok"}. No auth needed. Use it in your monitoring.
Your starred companies with current R-Score and band, newest star first. Signed-in accounts only: these endpoints take a session token from POST /api/v1/auth/login, not an X-API-Key.
| 200 | Array of company_number, company_name, status, score (0–100, null if unscored), band (five-band label, null if unscored), created_at (starred time). Empty array when nothing is starred. |
| 401 | Missing, invalid or expired token |
Star a company. Idempotent: starring an already-starred company returns 200 and changes nothing. The first sweep after a new star records a baseline and sends no email; alerts start from the next change.
| 201 | Starred: {"company_number": "04466987", "watched": true} |
| 200 | Already starred (idempotent re-star) |
| 404 | Company not in the register |
| 422 | Not a valid Companies House number, or watchlist full (500 companies) |
| 401 | Missing, invalid or expired token |
Unstar a company and stop its alerts. Idempotent: an unstarred company can be deleted again; the endpoint always returns 200, never 404.
| 200 | {"company_number": "04466987", "watched": false}, whether or not it was starred |
| 422 | Not a valid Companies House number |
| 401 | Missing, invalid or expired token |
Cheap poll for the star state of one company; the company page uses it to draw the star button.
| 200 | {"company_number": "04466987", "watched": true|false}; no 404 for unstarred companies |
| 422 | Not a valid Companies House number |
| 401 | Missing, invalid or expired token |
When a starred company changes, we email the account: R-Score moves of 5 points or more, any band change, or a change in active insolvency events (winding-up petition, administration, liquidation, dissolution notices, receivership, CVA). Event-driven changes are alerted within about 15 minutes of landing in the public record; account-driven score changes are alerted the night after the nightly rescore.
Every scored company carries an R-Score (0–100), an internal risk rating (1–10) and a public five-band label in risk_label / latest_score_band. The bands are strictly ordered:
Band Score Rating Share of companies Very Low 75–100 1–2 18.5% Low 55–74 3–4 22.7% Moderate 35–54 5–6 8.4% High 15–34 7–8 10.2% Critical 0–14 9–10 40.2%
“Distressed” is not a band — it is an event flag for live insolvency actions (winding-up petition, strike-off, administration) which override the band and zero the suggested credit exposure.
| 401 | Missing, invalid, revoked or expired key. Check the X-API-Key header. |
| 409 | Signup: an active trial key already exists for that email. |
| 422 | Bad company number format, empty batch, or more than 50 companies in one batch call. |
| 429 | Rolling-24h limit reached. Back off and retry. Limits reset continuously, not at midnight. |
| 404 | Company not in coverage. Scottish (SC), Northern Irish (NI) and overseas (OC) numbers are not covered. |
Trial: 100 calls + 20 contact lookups per rolling 24 hours. For production volume, Email [email protected].
We ship a Model Context Protocol (MCP) server, the standard that Claude, Cursor and Windsurf speak natively. Give your agent England & Wales credit intelligence as a first-class tool.
Setup guide: blackflagalert.com/mcp/bfa_mcp/README.md. Source and per-client guides (Claude, ChatGPT, Gemini, Cursor): github.com/lorquaid/black-flag-alert-mcp. Listed in the official MCP Registry: com.blackflagalert/mcp. Tools exposed: search, get company, narrative, contacts, batch, usage.