# Company Registry Lookup **Company Registry Lookup** is an independently documented x402 Atlas bridge at https://companies.use.x402atlas.com. This document describes only this bridge; it does not aggregate routes, schemas, or content from any other bridge. ## How payment works Paid operations use the [x402 payment protocol](https://x402.org) and settle in USDC. Atlas supports deployments on Base, Polygon, and Arbitrum, plus configured Solana networks. This bridge currently advertises Arbitrum One (`eip155:42161`), Base (`eip155:8453`), Polygon (`eip155:137`), Solana mainnet (`solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp`). 1. Send the HTTP request without a payment signature. 2. Read the `402 Payment Required` response. Its `accepts` entries are the authoritative network, asset, amount, and recipient options for that call. 3. Select an option, sign it with an x402-compatible wallet or SDK, and repeat the request with the `PAYMENT-SIGNATURE` header. The successful response is returned after verification and settlement. TypeScript clients can automate the challenge, signing, and retry flow with [`x402-fetch`](https://www.npmjs.com/package/x402-fetch) or [`x402-axios`](https://www.npmjs.com/package/x402-axios). Fund a dedicated wallet only with the working USDC balance it needs and keep that key separate from treasury accounts. ## Pricing Atlas route prices start at $0.005 per successful call. This bridge's fallback price is $0.005; operations below state their exact configured price in `x-x402` and `x-payment-info`. The live `402` challenge remains authoritative. ## Worked payment example Request one documented operation without a signature to inspect its live terms: ```bash curl -i 'https://companies.use.x402atlas.com/belgian-company-data?query=0417.497.106' # HTTP/1.1 402 Payment Required # Read accepts[].network, asset, amount, and payTo from this response. ``` Sign one accepted option and repeat the identical request with the `PAYMENT-SIGNATURE` header. Do not invent or cache payment terms; read them from the current challenge. ## Use this API - Interactive reference: https://companies.use.x402atlas.com/docs - OpenAPI 3.1 specification: https://companies.use.x402atlas.com/openapi.json - Agent-readable route corpus: https://companies.use.x402atlas.com/llms.txt - Endpoint index: https://companies.use.x402atlas.com/index.json Use the operation schemas and examples below to construct requests. Copy the server URL, path, method, parameters, and request body from the operation you want to call. Path and query examples are concrete and can be used directly. ## Atlas response metadata Successful JSON responses include an additive top-level `_atlas` block, kept separate from the bridge's data fields. `_atlas.docs` links this bridge's `/llms.txt` corpus. `_atlas.related` suggests adjacent APIs, each with a callable `url`, its own `docs` link, and a short `summary`. Suppress this block by sending `X-Atlas-Meta: none` or by adding `?_atlas=0` to the request. ## Errors and compatibility Validation failures use HTTP `400`. Paid operations may return `402` before dispatch. Upstream and internal failures use the documented `5xx` responses. Clients should rely on documented fields and tolerate additive response fields, including `_atlas` unless they explicitly opt out. ## Protocol reference - x402 protocol and SDKs: https://x402.org ## Company Registry Lookup Docs: https://companies.use.x402atlas.com/docs · OpenAPI: https://companies.use.x402atlas.com/openapi.json ### GET /belgian-company-data Belgian company lookup in the official KBO/BCE Crossroads Bank for Enterprises (Daily data) by enterprise number (0417.497.106 or BE0417497106) or company name. Returns legal name, status, legal form, start date, registered address, NACE activities and website in a schema shared across countries. Company lookup in KBO/BCE Crossroads Bank for Enterprises, the official company registry of the route's country (BE), for KYB and counterparty checks. `query` is the only parameter and takes either a registration number or a company name. Belgian enterprise number: 10 digits, e.g. `0417.497.106`, `0417497106` or `BE0417497106` (a legacy 9-digit number is left-padded with a zero). A registration number is an exact lookup returning zero or one company (`matched_by: "number"`; a German register number without its court can match up to 5, since HRB/HRA numbers repeat across courts); anything else is a company-name search returning up to 5 companies (`matched_by: "name"`). Returns the legal name, status, legal form, start date, registered address, up to 5 NACE activities (newest NACE version only, main activities first) and website. The Belgian data is refreshed daily from the register. Every country route of this service returns the same schema: `country`, `registry`, `query`, `matched_by`, `count` and `companies[]` with `name`, `registration_number`, normalized `status` (`active`, `inactive` or `unknown`), `legal_form`, `founded`, `address`, `activities` and `website`; a field the registry does not supply is `null`. No match returns 200 with `count: 0`, an empty `companies` list and a `note`. An omitted `query` returns the declared sample with a `note` and does not query the registry. A `query` longer than 200 characters is rejected with 400 before any payment is taken. Registry failures return 502 and a deadline 504; neither is charged. **Price:** $0.05 per call. Parameters: - `query` (required, string) — Company registration number (Belgian enterprise number, e.g. 0417.497.106) or company name; maxLength: `200`; example: `"0417.497.106"` Example: ```sh curl 'https://companies.use.x402atlas.com/belgian-company-data?query=0417.497.106' ``` Response example: ```json { "country": "BE", "registry": "KBO/BCE Crossroads Bank for Enterprises", "query": "0417.497.106", "matched_by": "number", "count": 1, "companies": [ { "name": "Anheuser-Busch InBev", "registration_number": "0417497106", "status": "active", "legal_form": "Société anonyme", "founded": "1977-08-02", "address": { "street": "Grand-Place 1", "postal_code": "1000", "city": "Bruxelles", "country_code": "BE" }, "activities": [ { "code": "70100", "description": "Activités des sièges sociaux" } ], "website": null } ] } ``` ### GET /czech-company-data Czech company lookup in the official ARES register by ICO (company ID) or company name. Returns legal name, status, legal form code, founding date, registered seat address and CZ-NACE activity codes in a schema shared across countries. Company lookup in ARES (Czech Administrative Register of Economic Subjects), the official company registry of the route's country (CZ), for KYB and counterparty checks. `query` is the only parameter and takes either a registration number or a company name. Czech ICO: 8 digits, e.g. `00177041` or `CZ00177041`; an all-digit query of up to 8 digits is always read as an ICO and left-padded with zeros. A registration number is an exact lookup returning zero or one company (`matched_by: "number"`; a German register number without its court can match up to 5, since HRB/HRA numbers repeat across courts); anything else is a company-name search returning up to 5 companies (`matched_by: "name"`). Returns the legal name, status (inactive once the subject has a termination date), legal form as the ARES legal-form code, founding date, registered seat address and up to 5 CZ-NACE activity codes without descriptions. `website` is always `null`. The registry refuses a name that matches more than 1000 subjects; that returns `count: 0` with a `note` asking for a more specific name. Every country route of this service returns the same schema: `country`, `registry`, `query`, `matched_by`, `count` and `companies[]` with `name`, `registration_number`, normalized `status` (`active`, `inactive` or `unknown`), `legal_form`, `founded`, `address`, `activities` and `website`; a field the registry does not supply is `null`. No match returns 200 with `count: 0`, an empty `companies` list and a `note`. An omitted `query` returns the declared sample with a `note` and does not query the registry. A `query` longer than 200 characters is rejected with 400 before any payment is taken. Registry failures return 502 and a deadline 504; neither is charged. **Price:** $0.05 per call. Parameters: - `query` (required, string) — Company registration number (Czech ICO, e.g. 00177041) or company name; maxLength: `200`; example: `"00177041"` Example: ```sh curl 'https://companies.use.x402atlas.com/czech-company-data?query=00177041' ``` Response example: ```json { "country": "CZ", "registry": "ARES (Czech Administrative Register of Economic Subjects)", "query": "00177041", "matched_by": "number", "count": 1, "companies": [ { "name": "Škoda Auto a.s.", "registration_number": "00177041", "status": "active", "legal_form": "121", "founded": "1990-11-20", "address": { "street": "tř. Václava Klementa 869", "postal_code": "29301", "city": "Mladá Boleslav", "country_code": "CZ" }, "activities": [ { "code": "29100", "description": null }, { "code": "45200", "description": null }, { "code": "471", "description": null }, { "code": "47740", "description": null }, { "code": "69200", "description": null } ], "website": null } ] } ``` ### GET /finnish-company-data Finnish company lookup in the official PRH/YTJ Business Information System by business ID (Y-tunnus) or company name. Returns legal name, status, company form, registration date, address, main business line and website in a schema shared across countries. Company lookup in PRH / YTJ Finnish Business Information System, the official company registry of the route's country (FI), for KYB and counterparty checks. `query` is the only parameter and takes either a registration number or a company name. Finnish business ID (Y-tunnus): 7 digits, a hyphen and a check digit, e.g. `0112038-9`, `01120389` or `FI01120389`. A registration number is an exact lookup returning zero or one company (`matched_by: "number"`; a German register number without its court can match up to 5, since HRB/HRA numbers repeat across courts); anything else is a company-name search returning up to 5 companies (`matched_by: "name"`). Returns the legal name, status, company form, registration date, street address, main business line and website, with English descriptions where the registry has them. The Finnish registry does not rank a name search by relevance: the first 5 matches come in registry order and include dissolved companies and auxiliary-name matches, so prefer the business ID for an exact hit. Every country route of this service returns the same schema: `country`, `registry`, `query`, `matched_by`, `count` and `companies[]` with `name`, `registration_number`, normalized `status` (`active`, `inactive` or `unknown`), `legal_form`, `founded`, `address`, `activities` and `website`; a field the registry does not supply is `null`. No match returns 200 with `count: 0`, an empty `companies` list and a `note`. An omitted `query` returns the declared sample with a `note` and does not query the registry. A `query` longer than 200 characters is rejected with 400 before any payment is taken. Registry failures return 502 and a deadline 504; neither is charged. **Price:** $0.05 per call. Parameters: - `query` (required, string) — Company registration number (Finnish business ID, e.g. 0112038-9) or company name; maxLength: `200`; example: `"0112038-9"` Example: ```sh curl 'https://companies.use.x402atlas.com/finnish-company-data?query=0112038-9' ``` Response example: ```json { "country": "FI", "registry": "PRH / YTJ Finnish Business Information System", "query": "0112038-9", "matched_by": "number", "count": 1, "companies": [ { "name": "Nokia Oyj", "registration_number": "0112038-9", "status": "active", "legal_form": "Public limited company", "founded": "1896-12-19", "address": { "street": "Karakaari 7", "postal_code": "02610", "city": "ESPOO", "country_code": "FI" }, "activities": [ { "code": "70100", "description": "Activities of head offices" } ], "website": "www.nokia.com" } ] } ``` ### GET /french-company-data French company lookup in the official SIRENE register (Annuaire des Entreprises) by SIREN, SIRET or company name. Returns legal name, active/ceased status, legal form, creation date, head-office address and NAF activity code in a schema shared across countries. Company lookup in SIRENE / Annuaire des Entreprises, the official company registry of the route's country (FR), for KYB and counterparty checks. `query` is the only parameter and takes either a registration number or a company name. French SIREN (9 digits, e.g. `552032534`) or SIRET (14 digits, resolved to its SIREN); a company name needs at least 3 characters. A registration number is an exact lookup returning zero or one company (`matched_by: "number"`; a German register number without its court can match up to 5, since HRB/HRA numbers repeat across courts); anything else is a company-name search returning up to 5 companies (`matched_by: "name"`). Returns the legal name, status (active or ceased), legal form as the INSEE legal-category code, creation date, head-office address and the main NAF activity code. The French register publishes no activity description and no website, so those are `null`. Every country route of this service returns the same schema: `country`, `registry`, `query`, `matched_by`, `count` and `companies[]` with `name`, `registration_number`, normalized `status` (`active`, `inactive` or `unknown`), `legal_form`, `founded`, `address`, `activities` and `website`; a field the registry does not supply is `null`. No match returns 200 with `count: 0`, an empty `companies` list and a `note`. An omitted `query` returns the declared sample with a `note` and does not query the registry. A `query` longer than 200 characters is rejected with 400 before any payment is taken. Registry failures return 502 and a deadline 504; neither is charged. **Price:** $0.05 per call. Parameters: - `query` (required, string) — Company registration number (French SIREN or SIRET, e.g. 552032534) or company name; minLength: `3`, maxLength: `200`; example: `"552032534"` Example: ```sh curl 'https://companies.use.x402atlas.com/french-company-data?query=552032534' ``` Response example: ```json { "country": "FR", "registry": "SIRENE / Annuaire des Entreprises", "query": "552032534", "matched_by": "number", "count": 1, "companies": [ { "name": "DANONE", "registration_number": "552032534", "status": "active", "legal_form": "5599", "founded": "1955-01-01", "address": { "street": "59 RUE LA FAYETTE", "postal_code": "75009", "city": "PARIS", "country_code": "FR" }, "activities": [ { "code": "70.10Z", "description": null } ], "website": null } ] } ``` ### GET /german-company-data German company lookup in the official Handelsregister (commercial register) by HRB or HRA number or company name. Returns legal name, status, legal form, register number and registered address in a schema shared across countries. Company lookup in Handelsregister (German Commercial Register), the official company registry of the route's country (DE), for KYB and counterparty checks. `query` is the only parameter and takes either a registration number or a company name. German register number: the register type (HRA, HRB, GnR, PR or VR) and number, e.g. `HRB 12300`, or bare digits. Register numbers repeat across register courts, so add the court or city after a typed number (`HRB 12300 Berlin`) to pin one company; without it a number can match several companies (up to 5). A registration number is an exact lookup returning zero or one company (`matched_by: "number"`; a German register number without its court can match up to 5, since HRB/HRA numbers repeat across courts); anything else is a company-name search returning up to 5 companies (`matched_by: "name"`). Returns the legal name, status (active or inactive only), legal form as its usual German abbreviation (GmbH, AG, UG (haftungsbeschränkt), e.V., ...), the register number as ` ` and the registered address. The register court is not a field of the shared schema. `founded` is `null`, `activities` is empty and `website` is `null` on this route. A name search matches current and former names and returns up to 5 companies. Every country route of this service returns the same schema: `country`, `registry`, `query`, `matched_by`, `count` and `companies[]` with `name`, `registration_number`, normalized `status` (`active`, `inactive` or `unknown`), `legal_form`, `founded`, `address`, `activities` and `website`; a field the registry does not supply is `null`. No match returns 200 with `count: 0`, an empty `companies` list and a `note`. An omitted `query` returns the declared sample with a `note` and does not query the registry. A `query` longer than 200 characters is rejected with 400 before any payment is taken. Registry failures return 502 and a deadline 504; neither is charged. **Price:** $0.21 per call. Parameters: - `query` (required, string) — Company registration number (German register type and number with its register court or city, e.g. HRB 12300 Berlin) or company name; maxLength: `200`; example: `"HRB 12300 Berlin"` Example: ```sh curl 'https://companies.use.x402atlas.com/german-company-data?query=HRB+12300+Berlin' ``` Response example: ```json { "country": "DE", "registry": "Handelsregister (German Commercial Register)", "query": "HRB 12300 Berlin", "matched_by": "number", "count": 1, "companies": [ { "name": "Siemens Aktiengesellschaft", "registration_number": "HRB 12300", "status": "active", "legal_form": "AG", "founded": null, "address": { "street": "Nonnendammallee 101", "postal_code": "13629", "city": "Berlin", "country_code": "DE" }, "activities": [], "website": null } ] } ``` ### GET /norwegian-company-data Norwegian company lookup in the official Bronnoysund Register Centre (Enhetsregisteret, Brreg) by organisasjonsnummer or company name. Returns legal name, status, organisation form, founding date, business address, industry codes and website in a schema shared across countries. Company lookup in Bronnoysund Register Centre (Enhetsregisteret), the official company registry of the route's country (NO), for KYB and counterparty checks. `query` is the only parameter and takes either a registration number or a company name. Norwegian organisasjonsnummer: 9 digits, e.g. `923609016`, `923 609 016` or `NO923609016MVA`. A registration number is an exact lookup returning zero or one company (`matched_by: "number"`; a German register number without its court can match up to 5, since HRB/HRA numbers repeat across courts); anything else is a company-name search returning up to 5 companies (`matched_by: "name"`). Returns the legal name, status (inactive when bankrupt, being wound up or deleted), organisation form, founding date, business address, up to 3 industry codes with descriptions and the website. Every country route of this service returns the same schema: `country`, `registry`, `query`, `matched_by`, `count` and `companies[]` with `name`, `registration_number`, normalized `status` (`active`, `inactive` or `unknown`), `legal_form`, `founded`, `address`, `activities` and `website`; a field the registry does not supply is `null`. No match returns 200 with `count: 0`, an empty `companies` list and a `note`. An omitted `query` returns the declared sample with a `note` and does not query the registry. A `query` longer than 200 characters is rejected with 400 before any payment is taken. Registry failures return 502 and a deadline 504; neither is charged. **Price:** $0.05 per call. Parameters: - `query` (required, string) — Company registration number (Norwegian organisasjonsnummer, e.g. 923609016) or company name; maxLength: `200`; example: `"923609016"` Example: ```sh curl 'https://companies.use.x402atlas.com/norwegian-company-data?query=923609016' ``` Response example: ```json { "country": "NO", "registry": "Bronnoysund Register Centre (Enhetsregisteret)", "query": "923609016", "matched_by": "number", "count": 1, "companies": [ { "name": "EQUINOR ASA", "registration_number": "923609016", "status": "active", "legal_form": "Allmennaksjeselskap", "founded": "1972-09-18", "address": { "street": "Forusbeen 50", "postal_code": "4035", "city": "STAVANGER", "country_code": "NO" }, "activities": [ { "code": "06.100", "description": "Utvinning av råolje" }, { "code": "06.200", "description": "Utvinning av naturgass" }, { "code": "19.200", "description": "Produksjon av raffinerte petroleumsprodukter og fossile brenselsprodukter" } ], "website": "www.equinor.com" } ] } ``` ### GET /slovak-company-data Slovak company lookup in the official RPO register (Register of Legal Entities, Statistical Office of the Slovak Republic) by ICO or company name. Returns legal name, status, legal form, founding date, registered address and SK NACE main activity in a schema shared across countries. Company lookup in RPO Register of Legal Entities (Statistical Office of the Slovak Republic), the official company registry of the route's country (SK), for KYB and counterparty checks. `query` is the only parameter and takes either a registration number or a company name. Slovak ICO: 8 digits, e.g. `31322832` or `SK31322832`; an all-digit query of up to 8 digits is always read as an ICO and left-padded with zeros. A registration number is an exact lookup returning zero or one company (`matched_by: "number"`; a German register number without its court can match up to 5, since HRB/HRA numbers repeat across courts); anything else is a company-name search returning up to 5 companies (`matched_by: "name"`). Returns the legal name, status (inactive once the entity has a termination date), legal form, founding date, registered address and the SK NACE main activity (at most one entry, with its Slovak description). `website` is always `null`. A name search matches current and former names and is not relevance-ranked: the first 5 matches come in registry order and include terminated entities, so prefer the ICO for an exact hit. The registry answers slowly at times (an exact ICO lookup has taken over two minutes); the route waits up to 180 seconds before answering `504`, so allow a client timeout of at least three minutes. Every country route of this service returns the same schema: `country`, `registry`, `query`, `matched_by`, `count` and `companies[]` with `name`, `registration_number`, normalized `status` (`active`, `inactive` or `unknown`), `legal_form`, `founded`, `address`, `activities` and `website`; a field the registry does not supply is `null`. No match returns 200 with `count: 0`, an empty `companies` list and a `note`. An omitted `query` returns the declared sample with a `note` and does not query the registry. A `query` longer than 200 characters is rejected with 400 before any payment is taken. Registry failures return 502 and a deadline 504; neither is charged. **Price:** $0.05 per call. Parameters: - `query` (required, string) — Company registration number (Slovak ICO, e.g. 31322832) or company name; maxLength: `200`; example: `"31322832"` Example: ```sh curl 'https://companies.use.x402atlas.com/slovak-company-data?query=31322832' ``` Response example: ```json { "country": "SK", "registry": "RPO Register of Legal Entities (Statistical Office of the Slovak Republic)", "query": "31322832", "matched_by": "number", "count": 1, "companies": [ { "name": "SLOVNAFT, a.s.", "registration_number": "31322832", "status": "active", "legal_form": "Akciová spoločnosť", "founded": "1992-05-01", "address": { "street": "Vlčie hrdlo 1", "postal_code": "82412", "city": "Bratislava", "country_code": "SK" }, "activities": [ { "code": "1920", "description": "Výroba rafinovaných ropných produktov a produktov z fosílnych palív" } ], "website": null } ] } ``` ### GET /uk-company-data UK company lookup in the official Companies House register by company number or company name. Returns legal name, company status, company type, incorporation date, registered office address and SIC codes in a schema shared across countries. Company lookup in Companies House, the official company registry of the route's country (GB), for KYB and counterparty checks. `query` is the only parameter and takes either a registration number or a company name. UK company number: 8 characters, e.g. `00445790` or `SC123456`; an all-digit query of up to 8 digits is always read as a company number and left-padded with zeros. A registration number is an exact lookup returning zero or one company (`matched_by: "number"`; a German register number without its court can match up to 5, since HRB/HRA numbers repeat across courts); anything else is a company-name search returning up to 5 companies (`matched_by: "name"`). Returns the legal name, company status, company type, incorporation date and registered office address. SIC codes (without descriptions) come with a company-number lookup only; a name search returns an empty `activities` list. `website` is always `null`. Every country route of this service returns the same schema: `country`, `registry`, `query`, `matched_by`, `count` and `companies[]` with `name`, `registration_number`, normalized `status` (`active`, `inactive` or `unknown`), `legal_form`, `founded`, `address`, `activities` and `website`; a field the registry does not supply is `null`. No match returns 200 with `count: 0`, an empty `companies` list and a `note`. An omitted `query` returns the declared sample with a `note` and does not query the registry. A `query` longer than 200 characters is rejected with 400 before any payment is taken. Registry failures return 502 and a deadline 504; neither is charged. **Price:** $0.05 per call. Parameters: - `query` (required, string) — Company registration number (UK company number, e.g. 00445790) or company name; maxLength: `200`; example: `"00445790"` Example: ```sh curl 'https://companies.use.x402atlas.com/uk-company-data?query=00445790' ``` Response example: ```json { "country": "GB", "registry": "Companies House", "query": "00445790", "matched_by": "number", "count": 1, "companies": [ { "name": "TESCO PLC", "registration_number": "00445790", "status": "active", "legal_form": "Public limited company", "founded": "1947-11-27", "address": { "street": "Tesco House, Shire Park, Kestrel Way", "postal_code": "AL7 1GA", "city": "Welwyn Garden City", "country_code": "GB" }, "activities": [ { "code": "47110", "description": null } ], "website": null } ] } ```