Production-quality code examples for querying official government business registry APIs worldwide. Each registry gets self-contained TypeScript examples with typed responses, error handling, and documentation of each API's quirks.
Target audience: Developers integrating with these APIs for the first time. These examples save you hours of reading inconsistent government docs and debugging unexpected response formats.
# Prerequisites: Node.js 18+
npm install
# Run any example directly
npx tsx poland-krs/search-by-name.ts "Microsoft"
npx tsx norway-brreg/search-by-name.ts "Equinor"
npx tsx czech-ares/search-by-name.ts "Skoda"
npx tsx eu-vies/validate-vat.ts "PL5213003700"For registries that require API keys, copy .env.example to .env and add your credentials. Each registry's README explains how to get access.
| Country | Registry | API Type | Auth | Free? | Name Search | ID Format |
|---|---|---|---|---|---|---|
| Poland | KRS | REST/JSON | None | Yes | Yes | 10-digit zero-padded |
| Poland | CEIDG | REST/JSON | Bearer token | Yes | Yes | NIP (10 digits) |
| UK | Companies House | REST/JSON | Basic auth | Yes | Yes | 8 chars (may include letters) |
| France | SIRENE | REST/JSON | None (was Bearer) | Yes | Yes | SIREN (9) / SIRET (14) |
| Norway | Bronnøysund | REST/HAL+JSON | None | Yes | Yes | Org nr (9 digits) |
| Czech Republic | ARES | REST/JSON | None | Yes | Yes | ICO (8 digits) |
| USA | SEC EDGAR | REST/JSON | None (User-Agent required) | Yes | Yes | CIK (10 digits) |
| Australia | ABN Lookup | SOAP/XML | GUID | Yes | Yes | ABN (11 digits) |
| Germany | OffeneRegister | Bulk JSONL | None | Yes | No (bulk download) | HRA/HRB + number |
| EU | VIES | REST/JSON | None | Yes | N/A | VAT number |
Note: There is no federal US business registry — SEC EDGAR covers public companies only. State-level registries vary widely.
Note: Germany's official Handelsregister.de has no public API and a ~60 req/h rate limit. OffeneRegister.de provides the same data as a bulk download.
Each directory is self-contained:
README.md— API documentation, authentication setup, gotchassearch-by-name.ts,get-company.ts, etc. — Runnable examplestypes.ts— TypeScript interfaces for raw API responses
All examples use native fetch (Node.js 18+) — no HTTP libraries needed. Response types match what each API actually returns (not normalized).
- awesome-business-registries — Comprehensive list of business registries worldwide
See CONTRIBUTING.md for how to add new registry examples.
MIT — see LICENSE.
Maintained by B2Trust — Business Identity Infrastructure.