# BizCheck full reference > BizCheck lets AI agents verify a company in one call: registry record, EU VAT validity, LEI and sanctions screening (EU, UN, OFAC, UK). Every fact carries its source and fetch time. Agents sign themselves up; 25 checks are free. Base URL: https://bizcheck.app/api/v1. MCP: https://bizcheck.app/mcp. OpenAPI: https://bizcheck.app/openapi.json. Agent quickstart: https://bizcheck.app/agents.md. ## Authentication `Authorization: Bearer bc_live_...` (`bc_test_...` in demo mode). Get a key with `POST /api/v1/signup`, no human needed, 5 per IP per 24 hours. The key is returned once; only its SHA-256 hash and prefix are stored. `signup` and `coverage` need no key. ## Checks and plans A check is one call to `check`, `company`, `search` or `sanctions`. `vat`, `iban`, `account`, `checkout`, `coverage` cost 0 and are rate limited. - Free: 25 checks per key, once, no card. - Pro: EUR 5/month, 2000 checks/month fair use. Premium paid-source lookups (when added) count 10 checks each. Upgrade: `POST /api/v1/checkout {"plan":"pro"}` returns `{checkout_url, expires_at, plan, price}` tied to the calling key. A human pays; the same key becomes Pro. ## Types ```ts Company = { id, country, registry_id, name, former_names[], status: "active"|"inactive"|"dissolved"|"in_liquidation"|"unknown", status_detail?, legal_form?, incorporated_on?, address?, vat_numbers[], lei?, officers?: {name, role, since?}[], owners?: {name, share?, kind: "person"|"company"|"unknown"}[], industry?: {code, scheme, label?}, website?, sources: Source[] } Source = { name, url, fetched_at, licence? } VatResult = { vat, valid, name?, address?, checked_at, source: Source } IbanResult = { iban, valid, country?, bank_code?, bic?, bank_name?, reason? } SanctionsHit = { list: "EU"|"UN"|"OFAC"|"UK", name, matched_alias?, score, kind: "person"|"entity"|"vessel"|"other", programme?, listed_on?, reference?, url? } CheckReport = { query, verdict: "clear"|"review"|"fail", reasons: string[], company?, candidates?: Company[], vat?, iban?, sanctions: { screened_lists, lists_updated_at, hits: SanctionsHit[] }, checks_left: number|null } ``` Verdict: `fail` = sanctions hit with score >= 0.92, or company dissolved. `review` = weaker hit, invalid VAT, unknown status, or no registry match. Otherwise `clear`. ## HTTP endpoints ### POST /api/v1/signup Create an API key. No human, form or card needed. The key is shown once: store it. Limited to 5 signups per IP per 24 hours. Cost: free. Key: not required. MCP: `signup`. CLI: `bizcheck signup`. | param | in | type | required | notes | |---|---|---|---|---| | `label` | body | string | no | A name for the key, e.g. your agent's name. | Request: ```sh curl -X POST https://bizcheck.app/api/v1/signup \ -H "Content-Type: application/json" \ -d '{"label":"my-agent"}' ``` Response (example): ```json { "api_key": "bc_live_7Hq2...redacted", "key_prefix": "bc_live_7Hq2", "label": "my-agent", "plan": "free", "checks_left": 25, "upgrade_url": "https://checkout.example/c/9f2e...", "message": "Save this key now; it is shown only once. It includes 25 free checks. Send it as \"Authorization: Bearer \"." } ``` ### GET /api/v1/account Plan, checks used and left, period end, and a ready upgrade_url for this key. Cost: free. Key: required. MCP: `account`. CLI: `bizcheck account`. Request: ```sh curl https://bizcheck.app/api/v1/account \ -H "Authorization: Bearer $BIZCHECK_API_KEY" ``` Response (example): ```json { "key_prefix": "bc_live_7Hq2", "label": "my-agent", "plan": "free", "status": "active", "checks_used": 25, "checks_limit": 25, "checks_left": 0, "period": "lifetime", "period_end": null, "upgrade_url": "https://checkout.example/c/9f2e..." } ``` ### POST /api/v1/checkout Create a checkout link tied to the calling key. Give it to a human. When they pay, the same key becomes Pro; nothing to reconfigure. Cost: free. Key: required. MCP: `get_checkout_link`. CLI: `bizcheck upgrade`. | param | in | type | required | notes | |---|---|---|---|---| | `plan` | body | "pro" | yes | The plan to buy. | Request: ```sh curl -X POST https://bizcheck.app/api/v1/checkout \ -H "Authorization: Bearer $BIZCHECK_API_KEY" \ -H "Content-Type: application/json" \ -d '{"plan":"pro"}' ``` Response (example): ```json { "checkout_url": "https://checkout.example/c/9f2e...", "expires_at": "2026-11-05T09:12:41Z", "plan": "pro", "price": "EUR 5/month, 2,000 checks per month" } ``` ### POST /api/v1/check The main call. Give any identifier you have; BizCheck resolves the company, validates VAT and IBAN, screens sanctions lists, and returns a verdict (clear, review or fail) with plain-English reasons. If one source is down you still get partial results. Cost: 1 check. Key: required. MCP: `check_business`. CLI: `bizcheck check "Nokia Oyj" --country FI`. | param | in | type | required | notes | |---|---|---|---|---| | `name` | body | string | no | Company name. | | `country` | body | string | no | ISO 3166-1 alpha-2, e.g. EE. Strongly recommended with name. | | `registry_id` | body | string | no | National registry code. | | `vat` | body | string | no | VAT number with country prefix. | | `lei` | body | string | no | 20-character LEI. | | `iban` | body | string | no | IBAN to validate. | Request: ```sh curl -X POST https://bizcheck.app/api/v1/check \ -H "Authorization: Bearer $BIZCHECK_API_KEY" \ -H "Content-Type: application/json" \ -d '{"name":"Nokia Oyj","country":"FI"}' ``` Response (example): ```json { "query": { "name": "Nokia Oyj", "country": "FI" }, "verdict": "clear", "reasons": [ "Nokia Oyj (FI 0112038-9) is active in Finnish Patent and Registration Office (PRH, YTJ open data).", "No matches on the EU, OFAC, UK, UN sanctions lists." ], "company": { "id": "FI:0112038-9", "country": "FI", "registry_id": "0112038-9", "name": "Nokia Oyj", "former_names": [ "Oy Nokia Ab" ], "status": "active", "status_detail": "Registered in the Trade Register", "legal_form": "Public limited company", "incorporated_on": "1978-03-15", "address": "Karakaari 7, 02610 ESPOO", "vat_numbers": [ "FI01120389" ], "industry": { "code": "70100", "scheme": "TOL 2008", "label": "Activities of head offices" }, "website": "https://www.nokia.com", "sources": [ { "name": "Finnish Patent and Registration Office (PRH, YTJ open data)", "url": "https://tietopalvelu.ytj.fi/yritys/0112038-9", "fetched_at": "2026-11-04T09:12:40Z", "licence": "CC BY 4.0, Finnish Patent and Registration Office" }, { "name": "GLEIF (Global Legal Entity Identifier Foundation)", "url": "https://search.gleif.org/#/record/549300A0JPRWG1KI7U06", "fetched_at": "2026-11-04T09:12:40Z", "licence": "CC0 1.0, GLEIF" } ], "lei": "549300A0JPRWG1KI7U06" }, "sanctions": { "screened_lists": [ "EU", "OFAC", "UK", "UN" ], "lists_updated_at": { "EU": "2026-11-04T04:00:26Z", "UN": "2026-11-04T04:00:33Z", "OFAC": "2026-11-04T04:00:34Z", "UK": "2026-11-04T04:00:46Z" }, "hits": [] }, "checks_left": 24 } ``` ### GET /api/v1/search Find companies by name. Returns candidates with their registry ids. Cost: 1 check. Key: required. MCP: `search_companies`. CLI: `bizcheck search bolt --country EE`. | param | in | type | required | notes | |---|---|---|---|---| | `q` | query | string | yes | Name or part of a name. | | `country` | query | string | no | ISO 3166-1 alpha-2. | | `limit` | query | integer | no | Default 5. | Request: ```sh curl "https://bizcheck.app/api/v1/search?q=bolt%20technology&country=EE" \ -H "Authorization: Bearer $BIZCHECK_API_KEY" ``` Response (example): ```json { "results": [ { "id": "FI:0112038-9", "country": "FI", "registry_id": "0112038-9", "name": "Nokia Oyj", "former_names": [ "Oy Nokia Ab" ], "status": "active", "status_detail": "Registered in the Trade Register", "legal_form": "Public limited company", "incorporated_on": "1978-03-15", "address": "Karakaari 7, 02610 ESPOO", "vat_numbers": [ "FI01120389" ], "industry": { "code": "70100", "scheme": "TOL 2008", "label": "Activities of head offices" }, "website": "https://www.nokia.com", "sources": [ { "name": "Finnish Patent and Registration Office (PRH, YTJ open data)", "url": "https://tietopalvelu.ytj.fi/yritys/0112038-9", "fetched_at": "2026-11-04T09:12:40Z", "licence": "CC BY 4.0, Finnish Patent and Registration Office" }, { "name": "GLEIF (Global Legal Entity Identifier Foundation)", "url": "https://search.gleif.org/#/record/549300A0JPRWG1KI7U06", "fetched_at": "2026-11-04T09:12:40Z", "licence": "CC0 1.0, GLEIF" } ], "lei": "549300A0JPRWG1KI7U06" } ], "checks_left": 23 } ``` ### GET /api/v1/company/{country}/{id} Fetch one company by country and national registry code. Cost: 1 check. Key: required. MCP: `get_company`. CLI: `bizcheck company FI 0112038-9`. | param | in | type | required | notes | |---|---|---|---|---| | `country` | path | string | yes | ISO 3166-1 alpha-2. | | `id` | path | string | yes | National registry code. | Request: ```sh curl https://bizcheck.app/api/v1/company/FI/0112038-9 \ -H "Authorization: Bearer $BIZCHECK_API_KEY" ``` Response (example): ```json { "company": { "id": "FI:0112038-9", "country": "FI", "registry_id": "0112038-9", "name": "Nokia Oyj", "former_names": [ "Oy Nokia Ab" ], "status": "active", "status_detail": "Registered in the Trade Register", "legal_form": "Public limited company", "incorporated_on": "1978-03-15", "address": "Karakaari 7, 02610 ESPOO", "vat_numbers": [ "FI01120389" ], "industry": { "code": "70100", "scheme": "TOL 2008", "label": "Activities of head offices" }, "website": "https://www.nokia.com", "sources": [ { "name": "Finnish Patent and Registration Office (PRH, YTJ open data)", "url": "https://tietopalvelu.ytj.fi/yritys/0112038-9", "fetched_at": "2026-11-04T09:12:40Z", "licence": "CC BY 4.0, Finnish Patent and Registration Office" }, { "name": "GLEIF (Global Legal Entity Identifier Foundation)", "url": "https://search.gleif.org/#/record/549300A0JPRWG1KI7U06", "fetched_at": "2026-11-04T09:12:40Z", "licence": "CC0 1.0, GLEIF" } ], "lei": "549300A0JPRWG1KI7U06" }, "checks_left": 23 } ``` ### GET /api/v1/vat/{vat} Validate an EU VAT number against VIES. Free, but rate limited. Cost: 0 (free). Key: required. MCP: `validate_vat`. CLI: `bizcheck vat FI01120389`. | param | in | type | required | notes | |---|---|---|---|---| | `vat` | path | string | yes | With country prefix, e.g. FI01120389. | Request: ```sh curl https://bizcheck.app/api/v1/vat/FI01120389 \ -H "Authorization: Bearer $BIZCHECK_API_KEY" ``` Response (example): ```json { "vat": "FI01120389", "valid": true, "name": "Nokia Oyj", "address": "c/oVero-osasto PL 226 00045 NOKIA GROUP", "checked_at": "2026-11-04T09:12:41Z", "source": { "name": "VIES (European Commission VAT validation)", "url": "https://ec.europa.eu/taxation_customs/vies/rest-api/ms/FI/vat/01120389", "fetched_at": "2026-11-04T09:12:41Z" } } ``` ### GET /api/v1/iban/{iban} Validate an IBAN (structure and checksum) and resolve the bank where known. Free, but rate limited. Cost: 0 (free). Key: required. MCP: `validate_iban`. CLI: `bizcheck iban EE382200221020145685`. | param | in | type | required | notes | |---|---|---|---|---| | `iban` | path | string | yes | No spaces. | Request: ```sh curl https://bizcheck.app/api/v1/iban/EE382200221020145685 \ -H "Authorization: Bearer $BIZCHECK_API_KEY" ``` Response (example): ```json { "iban": "EE382200221020145685", "valid": true, "country": "EE", "bank_code": "22", "bic": "HABAEE2X", "bank_name": "Swedbank AS" } ``` ### GET /api/v1/sanctions Screen a name against the EU, UN, US (OFAC) and UK sanctions lists. A hit is a possible match with a score, not a finding: a human should review it. Cost: 1 check. Key: required. MCP: `screen_sanctions`. CLI: `bizcheck sanctions "Example Trading"`. | param | in | type | required | notes | |---|---|---|---|---| | `name` | query | string | yes | Person, company or vessel name. | | `country` | query | string | no | ISO 3166-1 alpha-2, narrows matches. | | `threshold` | query | number | no | 0 to 1, default 0.85. | Request: ```sh curl "https://bizcheck.app/api/v1/sanctions?name=Example%20Trading" \ -H "Authorization: Bearer $BIZCHECK_API_KEY" ``` Response (example): ```json { "screened_lists": [ "EU", "OFAC", "UK", "UN" ], "lists_updated_at": { "EU": "2026-11-04T04:00:26Z", "UN": "2026-11-04T04:00:33Z", "OFAC": "2026-11-04T04:00:34Z", "UK": "2026-11-04T04:00:46Z" }, "hits": [ { "list": "OFAC", "name": "EXAMPLE TRADING LLC", "matched_alias": "Example Trading", "score": 0.93, "kind": "entity", "programme": "RUSSIA-EO14024", "listed_on": "2024-02-23", "reference": "OFAC-00000", "url": "https://sanctionssearch.ofac.treas.gov/" } ], "checks_left": 22 } ``` ### GET /api/v1/coverage Which countries and sources are covered, and what each one returns. No key needed. Cost: free. Key: not required. MCP: `coverage`. CLI: `bizcheck coverage`. Request: ```sh curl https://bizcheck.app/api/v1/coverage ``` Response (example): ```json { "countries": [ { "country": "EE", "name": "Estonia", "...": "..." } ] } ``` ## MCP server Streamable HTTP at https://bizcheck.app/mcp (POST). Same bearer key. `signup` and `coverage` work without a key. | tool | does | key | checks | |---|---|---|---| | `signup` | Create an API key. Save the returned key; it is shown once. | no | free | | `account` | Plan, checks left, period end, upgrade_url. | yes | free | | `get_checkout_link` | Checkout link for this key, to hand to a human. | yes | free | | `check_business` | Full check: registry, VAT, IBAN, sanctions, verdict and reasons. | yes | 1 | | `search_companies` | Find companies by name, optionally in one country. | yes | 1 | | `get_company` | One company by country and registry id. | yes | 1 | | `validate_vat` | EU VAT number validity via VIES. | yes | 0 | | `validate_iban` | IBAN checksum and bank lookup. | yes | 0 | | `screen_sanctions` | Name screening against EU, UN, OFAC and UK lists. | yes | 1 | | `coverage` | Countries and sources covered. | no | free | Claude Code: ```sh claude mcp add --transport http bizcheck https://bizcheck.app/mcp \ --header "Authorization: Bearer bc_live_YOUR_KEY" ``` Cursor (`.cursor/mcp.json`): ```json { "mcpServers": { "bizcheck": { "url": "https://bizcheck.app/mcp", "headers": { "Authorization": "Bearer bc_live_YOUR_KEY" } } } } ``` Claude Desktop (via mcp-remote): ```json { "mcpServers": { "bizcheck": { "command": "npx", "args": [ "-y", "mcp-remote", "https://bizcheck.app/mcp", "--header", "Authorization: Bearer bc_live_YOUR_KEY" ] } } } ``` Example tool result (`check_business` with `{"name":"Nokia Oyj","country":"FI"}`): ```json { "query": { "name": "Nokia Oyj", "country": "FI" }, "verdict": "clear", "reasons": [ "Nokia Oyj (FI 0112038-9) is active in Finnish Patent and Registration Office (PRH, YTJ open data).", "No matches on the EU, OFAC, UK, UN sanctions lists." ], "company": { "id": "FI:0112038-9", "country": "FI", "registry_id": "0112038-9", "name": "Nokia Oyj", "former_names": [ "Oy Nokia Ab" ], "status": "active", "status_detail": "Registered in the Trade Register", "legal_form": "Public limited company", "incorporated_on": "1978-03-15", "address": "Karakaari 7, 02610 ESPOO", "vat_numbers": [ "FI01120389" ], "industry": { "code": "70100", "scheme": "TOL 2008", "label": "Activities of head offices" }, "website": "https://www.nokia.com", "sources": [ { "name": "Finnish Patent and Registration Office (PRH, YTJ open data)", "url": "https://tietopalvelu.ytj.fi/yritys/0112038-9", "fetched_at": "2026-11-04T09:12:40Z", "licence": "CC BY 4.0, Finnish Patent and Registration Office" }, { "name": "GLEIF (Global Legal Entity Identifier Foundation)", "url": "https://search.gleif.org/#/record/549300A0JPRWG1KI7U06", "fetched_at": "2026-11-04T09:12:40Z", "licence": "CC0 1.0, GLEIF" } ], "lei": "549300A0JPRWG1KI7U06" }, "sanctions": { "screened_lists": [ "EU", "OFAC", "UK", "UN" ], "lists_updated_at": { "EU": "2026-11-04T04:00:26Z", "UN": "2026-11-04T04:00:33Z", "OFAC": "2026-11-04T04:00:34Z", "UK": "2026-11-04T04:00:46Z" }, "hits": [] }, "checks_left": 24 } ``` ## CLI `npx bizcheck `. Config: `~/.config/bizcheck/config.json` (`{api_key, base_url}`); env `BIZCHECK_API_KEY`, `BIZCHECK_BASE_URL` override. `--json` on every command. | command | does | |---|---| | `bizcheck signup` | Create a key and save it to ~/.config/bizcheck/config.json. | | `bizcheck account` | Show plan and checks left. | | `bizcheck upgrade` | Print the checkout link and open it in a browser. | | `bizcheck check [--country XX]` | Run a full check. | | `bizcheck search [--country XX]` | Search companies by name. | | `bizcheck company ` | Fetch one company by registry id. | | `bizcheck vat ` | Validate a VAT number. | | `bizcheck iban ` | Validate an IBAN. | | `bizcheck sanctions ` | Screen a name against sanctions lists. | | `bizcheck coverage` | List covered countries and sources. | ## Errors Shape: `{ "error": { "code": "...", "message": "...", "upgrade_url"?: "..." } }` | code | HTTP | meaning | do | |---|---|---|---| | `bad_request` | 400 | Missing or malformed input. | Fix the request. Do not retry unchanged. | | `unauthorized` | 401 | Missing, unknown or revoked key. | Send Authorization: Bearer . If you have no key, call signup. | | `out_of_checks` | 402 | This key has no checks left. | Give error.upgrade_url to your human. After they pay, retry with the same key. | | `not_found` | 404 | No company with that id in that register. | Check the id, or use search. | | `rate_limited` | 429 | Too many requests. | Back off and retry later. | | `source_unavailable` | 502 | An upstream register or list did not answer. | check still returns partial results with a reason. Retry later for the rest. | ## Rate limits Signup: 5 keys per IP per 24 hours. All endpoints are rate limited per key; on 429 `rate_limited`, back off and retry. Do not retry 400, 401 or 402 unchanged. ## Data sources and attribution Official public sources only: national company registers (below), EU VIES (VAT), GLEIF (LEI), EU, UN, US OFAC and UK sanctions lists. Every fact carries `source` name, URL, `fetched_at` and `licence` where published. Cite the source when you show data to people. | Country | Level | Source | Returns | Officers | Owners | |---|---|---|---|---|---| | CZ Czechia | Official register, live | ARES (Ministry of Finance) | name, status, address, legal form, incorporated on, former names, officers, owners, industry, vat, lei | yes | yes | | EE Estonia | Official register, live | e-Business Register (RIK) | name, status, address, legal form, incorporated on, former names, vat, lei | no | no | | FI Finland | Official register, live | PRH / YTJ open data | name, status, address, legal form, incorporated on, former names, industry, website, vat, lei | no | no | | FR France | Official register, live | API Recherche d'entreprises (INSEE Sirene, INPI RNE) | name, status, address, legal form, incorporated on, officers, industry, vat, lei | yes | no | | IE Ireland | Official register, live | Companies Registration Office open data | name, status, address, legal form, incorporated on, industry, vat, lei | no | no | | LV Latvia | Official register, live | Register of Enterprises open data | name, status, address, legal form, incorporated on, officers, owners, vat, lei | yes | yes | | NO Norway | Official register, live | Brønnøysund Register Centre | name, status, address, legal form, incorporated on, former names, officers, industry, website, vat, lei | yes | no | | PL Poland | Official register, live | KRS open API and Biała lista VAT | name, status, address, legal form, incorporated on, industry, website, vat, lei | no | no | | CH Switzerland | Official register, live | Zefix linked data (LINDAS) | name, status, address, legal form, lei | no | no | | HR Croatia | Official register, key pending | Sudski registar open data | name, status, address, legal form, incorporated on, vat, lei | no | no | | GR Greece | Official register, key pending | OpenData GEMI | name, status, address, legal form, incorporated on, vat, lei | no | no | | GB United Kingdom | Official register, key pending | Companies House | name, status, address, legal form, incorporated on, former names, officers, owners, industry, lei | yes | yes | | AL Albania | VAT and LEI only | GLEIF | lei | no | no | | AD Andorra | VAT and LEI only | GLEIF | lei | no | no | | AM Armenia | VAT and LEI only | GLEIF | lei | no | no | | AT Austria | VAT and LEI only | VIES + GLEIF | vat, lei | no | no | | AZ Azerbaijan | VAT and LEI only | GLEIF | lei | no | no | | BE Belgium | VAT and LEI only | VIES + GLEIF | vat, lei | no | no | | BA Bosnia and Herzegovina | VAT and LEI only | GLEIF | lei | no | no | | BG Bulgaria | VAT and LEI only | VIES + GLEIF | vat, lei | no | no | | CY Cyprus | VAT and LEI only | VIES + GLEIF | vat, lei | no | no | | DK Denmark | VAT and LEI only | VIES + GLEIF | vat, lei | no | no | | GE Georgia | VAT and LEI only | GLEIF | lei | no | no | | HU Hungary | VAT and LEI only | VIES + GLEIF | vat, lei | no | no | | IS Iceland | VAT and LEI only | GLEIF | lei | no | no | | XK Kosovo | VAT and LEI only | GLEIF | lei | no | no | | LI Liechtenstein | VAT and LEI only | GLEIF | lei | no | no | | LT Lithuania | VAT and LEI only | VIES + GLEIF | vat, lei | no | no | | LU Luxembourg | VAT and LEI only | VIES + GLEIF | vat, lei | no | no | | MT Malta | VAT and LEI only | VIES + GLEIF | vat, lei | no | no | | MD Moldova | VAT and LEI only | GLEIF | lei | no | no | | MC Monaco | VAT and LEI only | GLEIF | lei | no | no | | ME Montenegro | VAT and LEI only | GLEIF | lei | no | no | | MK North Macedonia | VAT and LEI only | GLEIF | lei | no | no | | PT Portugal | VAT and LEI only | VIES + GLEIF | vat, lei | no | no | | RO Romania | VAT and LEI only | VIES + GLEIF | vat, lei | no | no | | SM San Marino | VAT and LEI only | GLEIF | lei | no | no | | RS Serbia | VAT and LEI only | GLEIF | lei | no | no | | SK Slovakia | VAT and LEI only | VIES + GLEIF | vat, lei | no | no | | SI Slovenia | VAT and LEI only | VIES + GLEIF | vat, lei | no | no | | ES Spain | VAT and LEI only | VIES + GLEIF | vat, lei | no | no | | SE Sweden | VAT and LEI only | VIES + GLEIF | vat, lei | no | no | | TR Turkey | VAT and LEI only | GLEIF | lei | no | no | | UA Ukraine | VAT and LEI only | GLEIF | lei | no | no | | VA Vatican City | VAT and LEI only | GLEIF | lei | no | no | | DE Germany | VAT and LEI only, paid register planned | VIES + GLEIF | vat, lei | no | no | | IT Italy | VAT and LEI only, paid register planned | VIES + GLEIF | vat, lei | no | no | | NL Netherlands | VAT and LEI only, paid register planned | VIES + GLEIF | vat, lei | no | no | Live list: GET https://bizcheck.app/api/v1/coverage (no key needed). ## Freshness Registry records may come from a short cache; `sources[].fetched_at` says when each was read. VAT results carry `checked_at`. Sanctions results carry `lists_updated_at` per list. If a source is down, `check` returns partial results with a reason; standalone endpoints return 502 `source_unavailable`. ## Limits No credit scores or financials. Officers and owners only where registers publish them. Some countries VAT or LEI only. Sanctions hits need human review. Not legal, KYC or AML advice.