# OpenRegistry - full manifest

> A free remote MCP server covering 27 national company registries directly for AI agents.

This is the **expanded** manifest. For the concise version see [/llms.txt](https://openregistry.sophymarine.com/llms.txt).

## Pricing tiers

| Tier | Cost | Signup | Rate limit | Cross-border fan-out |
| --- | --- | --- | --- | --- |
| Free | Free | Email magic link | 30 req/min/user | 3 countries / 60s |
| Pro | $29 / month | Stripe | 180 req/min/user | 10 countries / 60s |
| Max | $99 / month | Stripe | 900 req/min/user | 30 countries / 60s |
| Enterprise | Contact | Custom | 3000 req/min/user | unlimited |

Auth: OAuth 2.1 + Dynamic Client Registration (RFC 7591). No API keys.

## Tools (27) - full reference

### `list_jurisdictions`

**Category**: Discovery

Per-country schema reference and cross-country tool-support matrix for every national company registry OpenRegistry covers.

Reference-data tool. Pass a jurisdiction code to get that country's full schema (registry name, ID format, supported tools, native status values, known quirks, jurisdiction_data field catalogue). Pass a tool name to get the cross-country support matrix for that specific tool.

**Parameters**:

- `jurisdiction` (string): ISO 3166-1 alpha-2 country code. Mutually exclusive with supports_tool.
- `supports_tool` (string): Tool name. Returns {supported_count, supported_in[], not_supported_in[]}. Mutually exclusive with jurisdiction.

See [/docs/tools/list_jurisdictions](https://openregistry.sophymarine.com/docs/tools/list_jurisdictions) for the full reference.

### `about`

**Category**: Discovery

Server-level metadata: version, supported jurisdictions, tool catalogue, pricing summary, rate limits, data licenses.

Compact self-description endpoint. The default response is < 1 KB and contains everything an AI agent needs to decide whether OpenRegistry can answer a given question. Pass `section=tools` / `jurisdictions` / `data_licenses` / `principles` for a specific slice, or `section=jurisdiction&jurisdiction=GB` for one country's full metadata.

**Parameters**:

- `section` (enum): One of principles / tools / data_licenses / jurisdictions / jurisdiction.
- `jurisdiction` (string): Required when section='jurisdiction'. ISO 3166-1 alpha-2.

See [/docs/tools/about](https://openregistry.sophymarine.com/docs/tools/about) for the full reference.

### `search_companies`

**Category**: Search

Search any of 27 national company registries by name or structured filters. Single-country or multi-country fan-out.

Entry-point tool for cross-jurisdiction research. Two calling modes: pass a single `jurisdiction` code for a direct query, or pass a `jurisdictions` array to fan out across candidate countries with a user-confirmation dialog (on MCP clients that support elicitation). Returns unified top-level fields (jurisdiction, company_id, company_name, status, incorporation_date, registered_address) plus the registry's raw response under `jurisdiction_data`.

**Parameters**:

- `jurisdiction` (string): ISO code for single-country search. Exactly one of jurisdiction or jurisdictions.
- `jurisdictions` (string[]): Array of ISO codes for multi-country fan-out (free=3, pro=10, max=30, enterprise=unlimited).
- `query` (string): Company name or keyword. May be empty on FR/IE/AU when using structured filters.
- `limit` (integer): Results cap (1–250, default 10).

See [/docs/tools/search_companies](https://openregistry.sophymarine.com/docs/tools/search_companies) for the full reference.

### `search_companies_near_point`

**Category**: Search

Geospatial company search: all companies within N km of a lat/lng point (FR only).

Find companies whose registered office lies within a radius of a latitude/longitude coordinate. Backed by France INSEE Sirene's geocoded establishment data. Useful for 'companies within 2 km of the Eiffel Tower' style questions. Returns the same UnifiedSearchCandidate shape as search_companies.

**Parameters**:

- `jurisdiction` (string) *(required)*: Must be 'FR' - only France exposes this endpoint.
- `lat` (number) *(required)*: Latitude.
- `lng` (number) *(required)*: Longitude.
- `radius_km` (number) *(required)*: Radius in kilometres.
- `limit` (integer): Result cap (default 25).

See [/docs/tools/search_companies_near_point](https://openregistry.sophymarine.com/docs/tools/search_companies_near_point) for the full reference.

### `count_companies`

**Category**: Search

Return only the total count matching a company search, without fetching the records. IE only.

Same filter surface as search_companies, but returns only a count. Useful to gauge whether a query is narrow enough before paginating results. Currently supported for Ireland only.

**Parameters**:

- `jurisdiction` (string) *(required)*: Must be 'IE'.
- `query` (string): Company name or keyword.

See [/docs/tools/count_companies](https://openregistry.sophymarine.com/docs/tools/count_companies) for the full reference.

### `search_officers`

**Category**: Search

Find people who hold officer positions (director, secretary, partner) by name across a registry.

Entry point for 'follow the person, not the company' investigations. Returns officer candidates with an `officer_id` that pipes into `get_officer_appointments` to retrieve every company that person has been appointed to.

**Parameters**:

- `jurisdiction` (string) *(required)*: ISO code for the country whose officer register to search.
- `query` (string) *(required)*: Officer name (surname first where registry prefers it).
- `limit` (integer): Result cap (default 10).

See [/docs/tools/search_officers](https://openregistry.sophymarine.com/docs/tools/search_officers) for the full reference.

### `search_addresses`

**Category**: Search

Resolve a free-text Czech address against RÚIAN. Returns normalised address + kodObce / kodAdresnihoMista.

Normalise a messy Czech address string before matching it against other data sources, or resolve an obec / street / house number to its canonical RÚIAN code.

**Parameters**:

- `jurisdiction` (string) *(required)*: Must be 'CZ'.
- `text` (string): Free-text address.
- `nazev_obce` (string): Municipality name.

See [/docs/tools/search_addresses](https://openregistry.sophymarine.com/docs/tools/search_addresses) for the full reference.

### `search_specialised_records`

**Category**: Search

Fetch raw records from one ARES source register in a single call, optionally filtered by IČO list. CZ only.

Paired search endpoint for get_specialised_record - covers ARES's source registers (vr, ros, res, rzp, nrpzs, rpsh, rcns, szr, rs, ceu). Accepts only a list of IČOs + pagination.

**Parameters**:

- `jurisdiction` (string) *(required)*: Must be 'CZ'.
- `source` (string) *(required)*: One of vr / ros / res / rzp / nrpzs / rpsh / rcns / szr / rs / ceu.
- `ico` (string[]): Optional IČO filter.

See [/docs/tools/search_specialised_records](https://openregistry.sophymarine.com/docs/tools/search_specialised_records) for the full reference.

### `get_company_profile`

**Category**: Company profile

Structured profile of a company by its registry-specific ID - unified fields + raw upstream under jurisdiction_data.

The core read tool. Returns unified top-level fields (jurisdiction, company_id, company_name, status, status_detail, incorporation_date, registered_address) plus a jurisdiction_data object carrying the raw upstream fields verbatim. Does NOT include filings, officers, PSCs, shareholders, or charges - call the dedicated tools for those.

**Parameters**:

- `jurisdiction` (string) *(required)*: ISO 3166-1 alpha-2 code.
- `company_id` (string) *(required)*: The registry's canonical identifier. Shapes vary per jurisdiction - pull from search_companies when possible.
- `fresh` (boolean): Bypass cache.

See [/docs/tools/get_company_profile](https://openregistry.sophymarine.com/docs/tools/get_company_profile) for the full reference.

### `get_specialised_record`

**Category**: Company profile

Retrieve a single record from a non-company register - CZ source registers, FR associations, NZ FSPR, etc.

For data not carried on the main company register (e.g. CZ trade-licence holders under rzp, NRPZS healthcare providers, FR associations). Each source returns its upstream shape verbatim under `record`.

**Parameters**:

- `jurisdiction` (string) *(required)*: ISO code.
- `source` (string) *(required)*: Source-register code - varies per jurisdiction.
- `record_id` (string) *(required)*: The record's identifier in that source register.

See [/docs/tools/get_specialised_record](https://openregistry.sophymarine.com/docs/tools/get_specialised_record) for the full reference.

### `list_establishments`

**Category**: Company profile

All establishment / branch units attached to a parent company (BE KBO vestigingen, FR établissements).

Return every establishment unit (vestigingseenheid / unité d'établissement) attached to a parent enterprise. Each unit is a physical location with its own ID, address, activity codes, and start date - legally NOT a separate entity, just a branch of the enterprise.

**Parameters**:

- `jurisdiction` (string) *(required)*: Currently BE only.
- `company_id` (string) *(required)*: 10-digit Belgian enterprise number (or with dots).

See [/docs/tools/list_establishments](https://openregistry.sophymarine.com/docs/tools/list_establishments) for the full reference.

### `list_actos_inscritos`

**Category**: Company profile

Search Spanish BORME registered acts (actos inscritos) for a company by name - constitución, capital changes, mergers, dissolutions, and the full historical event stream.

Locate BORME Section I (Empresarios - Actos inscritos) and Section B (Otros actos) entries across a date range. Each hit includes acto_numero, borme_a_id, province, source_url, and the full raw acto paragraph text. Pair with get_officers / get_company_profile for current state, and list_actos_inscritos for historical events.

**Parameters**:

- `jurisdiction` (string) *(required)*: Must be 'ES'.
- `denominacion` (string) *(required)*: Exact company name (as printed in BORME header lines).
- `date_from` (string): YYYY-MM-DD. Default: 2009-01-02 (entire BORME electronic edition).
- `date_to` (string): YYYY-MM-DD. Default: today.

See [/docs/tools/list_actos_inscritos](https://openregistry.sophymarine.com/docs/tools/list_actos_inscritos) for the full reference.

### `list_filings`

**Category**: Filings

Company filing history with normalised categories (accounts, annual-return, officers, PSC, charges) + optional document_id round-trip.

Return the filing history for a company, newest first. Each filing has filing_id, filing_date, category (normalised across jurisdictions), description, and (where upstream exposes one) a document_id that round-trips to get_document_metadata / fetch_document. Filter by category to narrow.

**Parameters**:

- `jurisdiction` (string) *(required)*: ISO code. Currently: GB, IE, FI, CA, IS, PL, DE, NZ, NL, MC, ES, KR, MX, RU, IM, LI.
- `company_id` (string) *(required)*: Registry-specific ID.
- `category` (string): Filter: accounts / annual-return / officers / persons-with-significant-control / charges / resolution / confirmation-statement / …
- `limit` (integer): Page size (default 25, max 1000).

See [/docs/tools/list_filings](https://openregistry.sophymarine.com/docs/tools/list_filings) for the full reference.

### `get_financials`

**Category**: Filings

Annual-accounts filings for a company, normalised with period_end + document_id + source_url.

Convenience wrapper over list_filings(category='accounts'). Normalises the fiscal-period shape across registries, pre-computes download URLs, and returns period_end as the primary sort key. Good for 'pull the last 3 years of accounts'.

**Parameters**:

- `jurisdiction` (string) *(required)*: ISO code. Currently: GB, FI, NL, KR.
- `company_id` (string) *(required)*: Registry ID.
- `year` (integer): Calendar year of period_end.
- `period_end` (string): YYYY-MM-DD - pinpoint one period.

See [/docs/tools/get_financials](https://openregistry.sophymarine.com/docs/tools/get_financials) for the full reference.

### `get_officers`

**Category**: People

Directors, secretaries, partners, board members - current + (by default) historical resignations.

Return the officers of a company with unified fields (jurisdiction, officer_id, name, role, appointed_on, resigned_on, is_active) plus jurisdiction_data raw upstream. Role labels are passed through in the registry's native language. Use officer_id with get_officer_appointments for cross-company tracing.

**Parameters**:

- `jurisdiction` (string) *(required)*: ISO code.
- `company_id` (string) *(required)*: Registry ID.
- `include_resigned` (boolean): Include historical resignations (default: true).
- `group_by_person` (boolean): Deduplicate across consecutive appointments.

See [/docs/tools/get_officers](https://openregistry.sophymarine.com/docs/tools/get_officers) for the full reference.

### `get_officer_appointments`

**Category**: People

Every company an officer has been appointed to - the cross-company tracing endpoint.

Given an officer_id (from get_officers or search_officers), return every company in the registry where that person has held an appointment, with role, appointed_on, resigned_on. The core 'follow the person' tool for PEP screening, serial-dissolution detection, and professional-director analysis.

**Parameters**:

- `jurisdiction` (string) *(required)*: ISO code.
- `officer_id` (string) *(required)*: From get_officers or search_officers.
- `limit` (integer): Page size.

See [/docs/tools/get_officer_appointments](https://openregistry.sophymarine.com/docs/tools/get_officer_appointments) for the full reference.

### `get_persons_with_significant_control`

**Category**: People

Beneficial owners (PSC / UBO) - persons on the statutory control threshold register (>25%).

Return persons who meet the statutory control threshold for their jurisdiction (typically >25% ownership or voting rights). DIFFERENT from get_shareholders - PSC is the beneficial-ownership register; shareholders is the equity roster. The two registers can disagree (a corporate trustee can be a PSC without appearing on the members register).

**Parameters**:

- `jurisdiction` (string) *(required)*: ISO code. Currently: GB, CA, IS.
- `company_id` (string) *(required)*: Registry ID.

See [/docs/tools/get_persons_with_significant_control](https://openregistry.sophymarine.com/docs/tools/get_persons_with_significant_control) for the full reference.

### `get_shareholders`

**Category**: People

Statutory shareholder / quota-holder / member register - distinct from PSC / UBO.

Return the legal-statutory equity roster published by the company registry, with no ownership-threshold filter. Different from get_persons_with_significant_control - shareholders is the full members register (where disclosure applies), PSC is a threshold register for beneficial owners. Public disclosure is legal-form conditional: private-LLC forms usually disclose, joint-stock forms may not.

**Parameters**:

- `jurisdiction` (string) *(required)*: ISO code. Currently: CH, NO, FI, CZ, PL, TW, IS, DE, NZ, MC, ES, KR, RU.
- `company_id` (string) *(required)*: Registry ID.

See [/docs/tools/get_shareholders](https://openregistry.sophymarine.com/docs/tools/get_shareholders) for the full reference.

### `get_charges`

**Category**: Financial

Registered charges - mortgages, debentures, liens, secured debt on the company's assets.

Return charges (mortgages, fixed and floating charges, secured debt) registered against a company. Includes charge_id, created_on, satisfied_on, status, transaction_type, description, and (where exposed) the secured party. Critical for credit / lending due diligence.

**Parameters**:

- `jurisdiction` (string) *(required)*: Currently: GB, CZ.
- `company_id` (string) *(required)*: Registry ID.

See [/docs/tools/get_charges](https://openregistry.sophymarine.com/docs/tools/get_charges) for the full reference.

### `get_document_metadata`

**Category**: Documents

Available content formats / sizes / page count for a specific filing document.

Retrieve metadata about a filing document by its document_id. Returns available content formats with byte sizes (where known), page count, source URL, and creation date. Call this before fetch_document to decide which format to fetch and whether pagination is needed.

**Parameters**:

- `jurisdiction` (string) *(required)*: ISO code.
- `document_id` (string) *(required)*: From list_filings or get_financials.

See [/docs/tools/get_document_metadata](https://openregistry.sophymarine.com/docs/tools/get_document_metadata) for the full reference.

### `fetch_document`

**Category**: Documents

Download the raw filed document - PDF / XHTML iXBRL / XML / base64 inline.

The primary tool for reading a filing's content. Pass a document_id from list_filings / get_financials. Mandatory for any substantive answer - filing metadata (dates, form codes, descriptions) alone is rarely enough. Small documents are inlined as bytes; oversized ones return a resource_link plus navigation tools.

**Parameters**:

- `jurisdiction` (string) *(required)*: ISO code.
- `document_id` (string) *(required)*: From list_filings or get_financials.
- `format` (string): xhtml / xbrl / pdf - defaults to server's best-fit.

See [/docs/tools/fetch_document](https://openregistry.sophymarine.com/docs/tools/fetch_document) for the full reference.

### `get_document_navigation`

**Category**: Documents

Outline / bookmarks / section headings for large PDFs, plus a recommended fetch plan.

For PDFs that don't fit in a single document block (>20 MB or >100 pages), OR when you need to locate specific sections. Returns the outline (PDF bookmarks), page-range suggestions, and search hints. Call this FIRST before fetch_document / fetch_document_pages on a large filing.

**Parameters**:

- `jurisdiction` (string) *(required)*: ISO code.
- `document_id` (string) *(required)*: From list_filings.

See [/docs/tools/get_document_navigation](https://openregistry.sophymarine.com/docs/tools/get_document_navigation) for the full reference.

### `search_document`

**Category**: Documents

Full-text search inside a specific filing document for a phrase - returns matching pages.

Locate pages containing a phrase inside a specific document. Returns matching page numbers with snippets. Useful for finding a specific shareholder / director / figure in a long annual report without reading the whole thing.

**Parameters**:

- `jurisdiction` (string) *(required)*: ISO code.
- `document_id` (string) *(required)*: From list_filings.
- `query` (string) *(required)*: Phrase to search.

See [/docs/tools/search_document](https://openregistry.sophymarine.com/docs/tools/search_document) for the full reference.

### `fetch_document_pages`

**Category**: Documents

Return specific pages of a PDF (format: pdf / xhtml / images). Avoids exceeding the agent's context window.

Return specific pages of a PDF in one of three formats. `format='pdf'` preserves the original text layer and fonts (only format that gives you byte-exact text). `format='xhtml'` re-renders text for readability. `format='images'` returns page images.

**Parameters**:

- `jurisdiction` (string) *(required)*: ISO code.
- `document_id` (string) *(required)*: From list_filings.
- `pages` (string) *(required)*: Page range like '1-10' or '5,7,9'.
- `format` (string): pdf / xhtml / images.

See [/docs/tools/fetch_document_pages](https://openregistry.sophymarine.com/docs/tools/fetch_document_pages) for the full reference.

### `check_name_availability`

**Category**: Utility

Probe whether a proposed company name is available to register on the Isle of Man Companies Registry.

Check a proposed company name against the Isle of Man Companies Registry. Returns available (boolean), warning text, and similar_names[] - each row carrying the exact name, company number, registry type, status, and (where upstream linked it) the opaque ID of the existing company.

**Parameters**:

- `jurisdiction` (string) *(required)*: Must be 'IM'.
- `query` (string) *(required)*: Proposed company name.

See [/docs/tools/check_name_availability](https://openregistry.sophymarine.com/docs/tools/check_name_availability) for the full reference.

### `list_change_batches`

**Category**: Utility

Czech ARES notifikace - recent change-batch feed of every IČO inserted / updated / deleted in a period. CZ only.

Access the change-batch feed for Czechia. Two modes: list mode returns the N latest batches (optionally filtered by source); detail mode returns the change records in one batch (INS / UPD / DEL operations + affected IČO). Useful for watchlist monitoring of Czech companies.

**Parameters**:

- `jurisdiction` (string) *(required)*: Must be 'CZ'.
- `source` (string): Filter by source register.
- `batch_id` (string): If present, returns detail mode.

See [/docs/tools/list_change_batches](https://openregistry.sophymarine.com/docs/tools/list_change_batches) for the full reference.

### `get_code_description`

**Category**: Utility

Resolve a registry code-list entry to a human-readable description (FI YRMU, CZ PravniForma, CH legalForm, etc.).

Useful for decoding values seen in jurisdiction_data fields. Currently covers FI (YRMU, KRTILA, TOIMI4, ALUE), CZ (PravniForma, FinancniUrad, TypAngazma, TypOrganu, StavZdroje, TypAkcie), CH (legalForm, registryOfCommerce, community). Returns a flat {code: description} map.

**Parameters**:

- `jurisdiction` (string) *(required)*: Currently FI, CZ, or CH.
- `code_list` (string) *(required)*: Code-list name.
- `lang` (string): en / de / fr / it / cs / fi / sv (where applicable).

See [/docs/tools/get_code_description](https://openregistry.sophymarine.com/docs/tools/get_code_description) for the full reference.

## Prompts (10) - full reference

### `kyc_cross_border_due_diligence`

Full statutory dossier on one prompt: profile, directors, UBO, shareholders, charges, latest accounts - across 27 national registries.

The core compliance-team workflow. Given a company name or registry ID plus a jurisdiction, the prompt runs search_companies → get_company_profile → get_officers → get_persons_with_significant_control → get_shareholders → get_charges → get_financials in sequence, then summarises every material fact with source URLs. Every field is direct from the government register.

See [/docs/prompts/kyc_cross_border_due_diligence](https://openregistry.sophymarine.com/docs/prompts/kyc_cross_border_due_diligence) for the full reference.

### `ubo_cross_border_chain_walker`

Unmask the real person behind any company. Walk ownership chains across jurisdictions until you reach the natural person.

Many UBO investigations hit a wall because the immediate owner is another company - often in a different jurisdiction. This prompt walks the chain: get_persons_with_significant_control / get_shareholders → detect corporate owner → re-run in that owner's jurisdiction → repeat until a natural person or a registered trust / foundation is reached. Returns every hop with source.

See [/docs/prompts/ubo_cross_border_chain_walker](https://openregistry.sophymarine.com/docs/prompts/ubo_cross_border_chain_walker) for the full reference.

### `director_search_pep_screening`

Map every company a person has been a director of across government registers; flag serial resignations and overlapping directorships.

Given a person's name, the prompt runs search_officers → get_officer_appointments → get_company_profile on each hit, building the complete corporate footprint. Side signals: serial same-day dissolutions, cross-company co-director networks, high-risk-sector clustering.

See [/docs/prompts/director_search_pep_screening](https://openregistry.sophymarine.com/docs/prompts/director_search_pep_screening) for the full reference.

### `live_company_accounts_xbrl`

Pull the most recent statutory financial statements for any company - iXBRL / XHTML / PDF bytes directly from the registry.

Convenience workflow around get_financials + fetch_document. Returns the filing as bytes in the user's preferred format plus a parsed key-figures table (revenue, profit, assets, cash) when iXBRL is available.

See [/docs/prompts/live_company_accounts_xbrl](https://openregistry.sophymarine.com/docs/prompts/live_company_accounts_xbrl) for the full reference.

### `corporate_filing_monitor`

Poll a watchlist of companies for new filings; surface material events like director changes, capital changes, liquidation, charges.

For each watched company, runs list_filings periodically and diffs new entries against the last-seen set. Applies category-based severity filters: accounts = routine, insolvency / capital / charges = alert. Returns the delta with source URLs and optional per-document summaries.

See [/docs/prompts/corporate_filing_monitor](https://openregistry.sophymarine.com/docs/prompts/corporate_filing_monitor) for the full reference.

### `global_company_name_availability`

Check whether a proposed company name is free to register across N jurisdictions simultaneously.

Runs search_companies with an exact-match strategy across every supplied jurisdiction in parallel, plus the authoritative check_name_availability tool where available (currently IM). Returns per-country availability with conflict company IDs.

See [/docs/prompts/global_company_name_availability](https://openregistry.sophymarine.com/docs/prompts/global_company_name_availability) for the full reference.

### `industry_competitor_search`

Enumerate every company in a given SIC / NACE / TOL industry code across 27 national registries.

Runs search_companies with structured industry-code filters (IE SIC, FR naf, FI TOL, CZ NACE) - the fields vary per registry but the adapter normalises. Returns a de-duplicated list with status, incorporation_date, registered_address, and size hints where exposed.

See [/docs/prompts/industry_competitor_search](https://openregistry.sophymarine.com/docs/prompts/industry_competitor_search) for the full reference.

### `shell_company_detector`

Flag 1-director + no-accounts + overseas-office shells using live government-registry signals.

Combines heuristics: 1 officer (often foreign), zero filed accounts, registered-agent address shared with N+ other companies, dormant status, no charges, no establishments. Outputs a 0-100 risk score with contributing signals.

See [/docs/prompts/shell_company_detector](https://openregistry.sophymarine.com/docs/prompts/shell_company_detector) for the full reference.

### `phoenix_company_radar`

Detect dissolved-then-reborn fraud patterns - same director + same address, new entity.

For a given person, queries get_officer_appointments → filter to resigned-on + dissolved-on dates → cross-reference with subsequent incorporations at the same registered address. Classic phoenix-fraud fingerprint used by insolvency lawyers and HMRC.

See [/docs/prompts/phoenix_company_radar](https://openregistry.sophymarine.com/docs/prompts/phoenix_company_radar) for the full reference.

### `sector_gatekeeper_list`

Every CIMA / FCA / BaFin / FSS-licensed regulated entity in a sector, listed from the government register.

For a regulated sector (e.g. UK FCA e-money, Cayman CIMA funds, German BaFin banks, Korean FSS FIs), runs the jurisdiction's specialised-register query tool and returns the current licensed-entity roster with issue dates and status.

See [/docs/prompts/sector_gatekeeper_list](https://openregistry.sophymarine.com/docs/prompts/sector_gatekeeper_list) for the full reference.

## Jurisdictions (30) - full reference

### `AU` Australia - ABR · ABN Lookup

- **Registry**: [Australian Business Register (ABR) - ABN Lookup](https://abr.business.gov.au)
- **Company ID format**: 11-digit ABN (Australian Business Number) or 9-digit ACN (ASIC company number). The canonical company_id returned is always the ABN.
- **Supported tools** (2): `search_companies`, `get_company_profile`

Full schema: call `list_jurisdictions` with `jurisdiction: "AU"`.

### `BE` Belgium - KBO / BCE

- **Registry**: [Crossroads Bank for Enterprises (CBE / KBO / BCE) - FOD Economie](https://kbopub.economie.fgov.be/kbopub/zoeknummerform.html?lang=en)
- **Company ID format**: Belgian Enterprise Number (Ondernemingsnummer / Numéro d'entreprise): 10 digits, often displayed as 0417.497.106 - punctuation, whitespace, and the 'BE' VAT prefix are stripped, then left-padded to 10 digits.
- **Supported tools** (4): `search_companies`, `get_company_profile`, `get_officers`, `list_establishments`

Full schema: call `list_jurisdictions` with `jurisdiction: "BE"`.

### `CA` Canada (federal) - Corporations Canada

- **Registry**: [Corporations Canada - Innovation, Science and Economic Development Canada (ISED)](https://ised-isde.canada.ca/site/corporations-canada/en)
- **Company ID format**: Federal Corporation Number (numeric, typically 6–8 digits - UI-style hyphenated form '229101-1' is auto-stripped). The 9-digit federal Business Number (BN9) is also accepted; the API auto-resolves to the corresponding Corporation Number.
- **Supported tools** (5): `search_companies`, `get_company_profile`, `list_filings`, `get_officers`, `get_persons_with_significant_control`

Full schema: call `list_jurisdictions` with `jurisdiction: "CA"`.

### `CA-BC` Canada - British Columbia - OrgBook BC

- **Registry**: [BC Registries (OrgBook BC verifiable-credential ledger, Province of British Columbia)](https://www.bcregistry.gov.bc.ca/)
- **Company ID format**: BC registration number: 1-3 letter prefix (BC=BCBCA corp, FM=firm/partnership, CP=cooperative, A=extraprovincial, XS=society, LL=LLP) + 4-10 digits. Examples: 'BC0991277', 'FM0677818'. Case-insensitive; hyphens/whitespace stripped.
- **Supported tools** (2): `search_companies`, `get_company_profile`

Full schema: call `list_jurisdictions` with `jurisdiction: "CA-BC"`.

### `CA-NT` Canada - Northwest Territories - CROS-RSEL

- **Registry**: [Corporate Registries Online System (CROS-RSEL) - NWT Department of Justice](https://www.justice.gov.nt.ca/en/corporate-registries/)
- **Company ID format**: NWT File Number (numeric, typically 6 digits with leading zeros, e.g. '500196').
- **Supported tools** (1): `search_companies`

Full schema: call `list_jurisdictions` with `jurisdiction: "CA-NT"`.

### `CH` Switzerland - Zefix

- **Registry**: [Zefix - Zentraler Firmenindex / Federal Registry of Commerce (Bundesamt für Justiz)](https://www.zefix.admin.ch/)
- **Company ID format**: Swiss UID: CHE-NNN.NNN.NNN, e.g. 'CHE-105.962.553' (Nestlé S.A.). Punctuation is optional; unpunctuated CHENNNNNNNNN is accepted. Numeric-only EHRA-ID and CH-ID (legacy CHNNN...) are also accepted.
- **Supported tools** (4): `search_companies`, `get_company_profile`, `get_officers`, `get_shareholders`

Full schema: call `list_jurisdictions` with `jurisdiction: "CH"`.

### `CY` Cyprus - DRCOR

- **Registry**: [Cyprus Department of Registrar of Companies (DRCOR)](https://efiling.drcor.mcit.gov.cy/)
- **Company ID format**: Cyprus Organisation Number -- leading optional letter prefix (e.g. 'HE') + digits, e.g. 'HE165' (Bank of Cyprus Holdings PLC).
- **Supported tools** (4): `search_companies`, `get_company_profile`, `get_officers`, `list_filings`

Full schema: call `list_jurisdictions` with `jurisdiction: "CY"`.

### `CZ` Czechia - ARES

- **Registry**: [Administrativní registr ekonomických subjektů (ARES) - Czech Ministry of Finance](https://ares.gov.cz/)
- **Company ID format**: Czech IČO (Identifikační číslo osoby): 8 digits, often zero-padded (e.g. '00177041' Škoda Auto). 1-7 digit values auto-padded.
- **Supported tools** (10): `search_companies`, `get_company_profile`, `get_officers`, `get_shareholders`, `get_charges`, `get_code_description`, `get_specialised_record`, `search_specialised_records`, `search_addresses`, `list_change_batches`

Full schema: call `list_jurisdictions` with `jurisdiction: "CZ"`.

### `ES` Spain - BORME

- **Registry**: [Boletín Oficial del Registro Mercantil (BORME) - Agencia Estatal Boletín Oficial del Estado (AEBOE), Ministerio de la Presidencia, Justicia y Relaciones con las Cortes](https://www.boe.es/diario_borme/)
- **Company ID format**: Spain has no free public company-of-record identifier. NIF (formerly CIF) is not exposed by BORME. BORME indexes by denominación social; OpenRegistry uses the exact denominación as surfaced by Section II (e.g. 'TELEFÓNICA, S.A.', 'INDITEX, S.A.', 'FOO, S.L.') as company_id. Matching is case-insensitive and whitespace/punctuation-tolerant. document_id is the BORME-C identifier 'BORME-C-YYYY-NNNN' (4-digit year + announcement-level sequential).
- **Supported tools** (6): `search_companies`, `list_filings`, `get_document_metadata`, `fetch_document`, `list_actos_inscritos`, `get_shareholders`
- **Note**: excluded from default global fan-out - pass `jurisdiction: "ES"` explicitly.

Full schema: call `list_jurisdictions` with `jurisdiction: "ES"`.

### `FI` Finland - PRH · YTJ

- **Registry**: [Patentti- ja rekisterihallitus (PRH) - avoindata YTJ API](https://www.ytj.fi/)
- **Company ID format**: Finnish Y-tunnus (business ID): 7 digits + dash + check digit, e.g. '0112038-9' (Nokia Oyj). 8-digit form '01120389' is auto-reformatted.
- **Supported tools** (7): `search_companies`, `get_company_profile`, `list_filings`, `get_financials`, `get_officers`, `get_document_metadata`, `fetch_document`

Full schema: call `list_jurisdictions` with `jurisdiction: "FI"`.

### `FR` France - Sirene + RNE

- **Registry**: [Recherche d'entreprises (INSEE Sirene + RNE + RNA combined open API)](https://annuaire-entreprises.data.gouv.fr/)
- **Company ID format**: 9-digit SIREN (e.g. '652014051' Carrefour). Whitespace / hyphens / 'SIREN' prefix accepted. SIRET (14-digit establishment) is also accepted and resolved to the parent SIREN.
- **Supported tools** (3): `search_companies`, `get_company_profile`, `get_officers`

Full schema: call `list_jurisdictions` with `jurisdiction: "FR"`.

### `GB` United Kingdom - Companies House

- **Registry**: [Companies House](https://find-and-update.company-information.service.gov.uk/)
- **Company ID format**: 8 alphanumeric characters. England and Wales: 8 digits zero-padded (e.g. 00000006). Scotland: SC + 6 digits (e.g. SC123456). Northern Ireland: NI + 6 digits. LLPs: OC + 6 digits. Short forms like '6' are auto-padded.
- **Supported tools** (12): `search_companies`, `get_company_profile`, `list_filings`, `get_financials`, `get_shareholders`, `get_officers`, `get_persons_with_significant_control`, `get_charges`, `get_officer_appointments`, `search_officers`, `get_document_metadata`, `fetch_document`

Full schema: call `list_jurisdictions` with `jurisdiction: "GB"`.

### `HK` Hong Kong - 公司註冊處 · CR

- **Registry**: [公司註冊處 / Companies Registry of the Hong Kong Special Administrative Region](https://www.e-services.cr.gov.hk)
- **Company ID format**: BRN (Business Registration Number) - 8-character alphanumeric Unique Business Identifier issued by the IRD; since 2023-12-27 this is also the CR's primary identifier replacing the legacy CR No. Examples: '79510969' (8 digits), '09748794' (8 digits with leading zero, pre-2000), 'C0523371' (companies limited by guarantee), '75698252' (registered non-Hong Kong company). Hyphens, dots and whitespace are stripped on input and the value is upper-cased.
- **Supported tools** (2): `search_companies`, `get_company_profile`

Full schema: call `list_jurisdictions` with `jurisdiction: "HK"`.

### `IE` Ireland - CRO

- **Registry**: [Companies Registration Office (CRO)](https://www.cro.ie)
- **Company ID format**: Numeric, 100–99999999. Optional '/B' suffix selects the business-name register (default '/C' for companies). Examples: '104547', '104547/C', '540274/B'.
- **Supported tools** (4): `search_companies`, `get_company_profile`, `list_filings`, `get_document_metadata`

Full schema: call `list_jurisdictions` with `jurisdiction: "IE"`.

### `IM` Isle of Man - IoM Companies Registry

- **Registry**: [Isle of Man Companies Registry - Department for Enterprise (DED)](https://services.gov.im/ded/services/companiesregistry/welcome.iom)
- **Company ID format**: Isle of Man company / business / entity number: 1–7 digits + a single letter suffix indicating the statutory register. C = 1931 Act company; V = 2006 Act company; L = Limited Liability Company (LLC Act 1996); F = Foreign company (also where overseas LLPs are registered); B = Business name; M = Foundation (Foundations Act 2011); P = Limited Partnership (Partnership Act 1909); I = Industrial & Provident Society. Letter case is normalised to upper.
- **Supported tools** (4): `search_companies`, `get_company_profile`, `list_filings`, `get_document_metadata`

Full schema: call `list_jurisdictions` with `jurisdiction: "IM"`.

### `IS` Iceland - Fyrirtækjaskrá

- **Registry**: [Fyrirtækjaskrá - Skatturinn (Icelandic Revenue and Customs)](https://www.skatturinn.is/fyrirtaekjaskra/)
- **Company ID format**: Icelandic kennitala (national ID for legal entities): 10 digits, DDMMYY + 4 digits (no dash). Punctuation and dashes are stripped on input.
- **Supported tools** (8): `search_companies`, `get_company_profile`, `list_filings`, `get_officers`, `get_persons_with_significant_control`, `get_shareholders`, `get_document_metadata`, `fetch_document`

Full schema: call `list_jurisdictions` with `jurisdiction: "IS"`.

### `IT` Italy - Registro Imprese · BRIS

- **Registry**: [Registro delle imprese - Camere di Commercio / InfoCamere S.c.p.A., surfaced via the EU Business Registers Interconnection System (BRIS) e-Justice gateway](https://e-justice.europa.eu/489/EN/business_registers__search_for_a_company_in_the_eu)
- **Company ID format**: 11-digit Codice Fiscale (CF) of the legal person, often equal to the Partita IVA. Accepted input: 11 digits, with whitespace / dots / dashes / leading 'IT' VAT prefix / 'ITRI.' EUID prefix all stripped. 1-10 digit numeric input is auto-padded with leading zeros (users copying from spreadsheets / PDFs that strip leading zeros are handled transparently). REA numbers (e.g. 'MI-1234567', 'RM 987654') are explicitly detected and rejected with a conversion hint - the feed only indexes by CF, not by the chamber-local REA docket.
- **Supported tools** (2): `search_companies`, `get_company_profile`
- **Note**: excluded from default global fan-out - pass `jurisdiction: "IT"` explicitly.

Full schema: call `list_jurisdictions` with `jurisdiction: "IT"`.

### `JP` Japan - 国税庁 法人番号公表サイト (National Tax Agency Corporate Number Publication Site) Web-API v4

- **Registry**: [国税庁 法人番号公表サイト (National Tax Agency Corporate Number Publication Site) Web-API v4](https://www.houjin-bangou.nta.go.jp/)
- **Company ID format**: Houjin Bangou (法人番号) - 13-digit corporate number issued by 国税庁. Digit 1 is the check digit; digits 2-13 are the base number. Hyphens and whitespace are stripped on input. Examples: '7010001008844' (株式会社日立製作所 / Hitachi Ltd.), '5010001034583' (株式会社みずほフィナンシャルグループ).
- **Supported tools** (8): `search_companies`, `get_company_profile`, `list_filings`, `get_financials`, `get_officers`, `get_shareholders`, `get_document_metadata`, `fetch_document`

Full schema: call `list_jurisdictions` with `jurisdiction: "JP"`.

### `KR` South Korea - OPENDART · 전자공시

- **Registry**: [금융감독원 전자공시시스템 OPENDART (Financial Supervisory Service - Electronic Disclosure System)](https://opendart.fss.or.kr/)
- **Company ID format**: DART 8-digit corp_code is the canonical company_id (the key for every OpenDART endpoint). get_company_profile and the other tools accept ONLY the 8-digit corp_code; resolve aliases first via search_companies, which additionally accepts 6-digit 종목코드 (KRX stock code) or free-text company name (Korean or English) — both are resolved against the corpCode.xml master. 13-digit 법인등록번호 (CRN) and 10-digit 사업자등록번호 (BRN) are NOT searchable on DART; corpCode.xml does not carry jurir_no or bizr_no, so search_companies on those returns 400.
- **Supported tools** (8): `search_companies`, `get_company_profile`, `list_filings`, `get_financials`, `get_officers`, `get_shareholders`, `get_document_metadata`, `fetch_document`

Full schema: call `list_jurisdictions` with `jurisdiction: "KR"`.

### `KY` Cayman Islands - CIMA · **PAID-tier only**

- **Registry**: [Cayman Islands Monetary Authority (CIMA) - Regulated Entities Register](https://www.cima.ky/search-entities-cima)
- **Company ID format**: Composite `<reference_number>:<name>` where reference_number is the regulator's sequential reference number (numeric, 1-7 digits) and name is the licensee's legal name as displayed upstream. Whitespace inside the name segment is preserved verbatim. When a bare reference_number is passed without the `:` separator, the adapter returns HTTP 400 with guidance - the upstream has no by-reference lookup endpoint, so a name hint is required to scope the search.
- **Supported tools** (2): `search_companies`, `get_company_profile`

Full schema: call `list_jurisdictions` with `jurisdiction: "KY"`.

### `LI` Liechtenstein - Liechtenstein HR

- **Registry**: [Handelsregister des Fürstentums Liechtenstein - Amt für Justiz (AJU), Vaduz](https://handelsregister.li/cr-portal/suche/suche.xhtml)
- **Company ID format**: Liechtenstein entity number (Unternehmensnummer / Registernummer), canonical form 'FL-NNNN.NNN.NNN-N': 'FL-' prefix + 10 digits grouped 4-3-3 by dots + dash + 1 check digit. Lower-case prefix, whitespace and dot/dash punctuation variations are accepted on input; canonical output preserves the dotted form.
- **Supported tools** (3): `search_companies`, `get_company_profile`, `list_filings`

Full schema: call `list_jurisdictions` with `jurisdiction: "LI"`.

### `MC` Monaco - RCI Monaco

- **Registry**: [Répertoire du Commerce et de l'Industrie (RCI) - Direction du Développement Économique (DDE), Gouvernement Princier de Monaco](https://teleservice.gouv.mc/rci/)
- **Company ID format**: Monaco RCI number - format 'YY[P|S|C]NNNNN'. 2-digit year of registration, entity-type letter (P = personne physique / sole trader, S = société, C = société civile), zero-padded 5-digit sequential. The portal renders with spaces/dashes (e.g. '97 S 03277', '56 S 523'); whitespace and punctuation are stripped on input, lowercase letters uppercased, numeric tail left-padded to 5 digits.
- **Supported tools** (7): `search_companies`, `get_company_profile`, `list_filings`, `get_officers`, `get_shareholders`, `get_document_metadata`, `fetch_document`

Full schema: call `list_jurisdictions` with `jurisdiction: "MC"`.

### `MX` Mexico - PSM

- **Registry**: [Sistema Electrónico de Publicaciones de Sociedades Mercantiles (PSM), Secretaría de Economía (SE)](https://psm.economia.gob.mx/PSM/)
- **Company ID format**: Mexico has no single public company-identifier equivalent to a CH-number / SIREN / IČO. The registro público de comercio uses per-state Folios Mercantiles Electrónicos but SIGER 2.0 requires account registration for public consulta. This adapter therefore uses the exact denominación o razón social (as surfaced by PSM, including the legal-form suffix) as the unified company_id - e.g. 'Teléfonos de México, S.A.B. de C.V.'. Matching for list_filings is case-insensitive and punctuation-tolerant.
- **Supported tools** (4): `search_companies`, `list_filings`, `get_document_metadata`, `fetch_document`
- **Note**: excluded from default global fan-out - pass `jurisdiction: "MX"` explicitly.

Full schema: call `list_jurisdictions` with `jurisdiction: "MX"`.

### `MY` Malaysia - SSM

- **Registry**: [Suruhanjaya Syarikat Malaysia (SSM) - Companies Commission of Malaysia](https://www.ssm-einfo.my/)
- **Company ID format**: Two forms coexist. New format (from 2019-10-11, SSM Announcement ID 134): 12 digits - YYYY + NN (01 Company / 10 Business / 02 LLP / 50 Audit Firm) + NNNNNN sequence; e.g. '199301027559'. Old format: 6 digits + dash + 1-letter code (A / D / H / K / M / P / T / U / V / W / X for Peninsular Malaysia; LLP suffix for older LLPs); e.g. '282297-P'. Adapter accepts either form verbatim and emits new_no as the canonical company_id (old_no + AlphaCode preserved in jurisdiction_data). Post-2019 entities are displayed by SSM e-Info as 'NEW (OLD-X)'.
- **Supported tools** (2): `search_companies`, `get_company_profile`

Full schema: call `list_jurisdictions` with `jurisdiction: "MY"`.

### `NL` Netherlands - KVK

- **Registry**: [Kamer van Koophandel (KVK) - Handelsregister, Open Dataset APIs (opendata.kvk.nl, HVDS, CC-BY 4.0)](https://developers.kvk.nl/)
- **Company ID format**: Nederlands KVK-nummer: 8 digits. Values with fewer digits are left-padded with zeros. Whitespace / dots / dashes are stripped.
- **Supported tools** (3): `get_company_profile`, `list_filings`, `get_financials`

Full schema: call `list_jurisdictions` with `jurisdiction: "NL"`.

### `NO` Norway - Brreg · Brønnøysund

- **Registry**: [Brønnøysund Register Centre (Enhetsregisteret)](https://www.brreg.no)
- **Company ID format**: 9-digit organization number (organisasjonsnummer), no spaces or dashes
- **Supported tools** (4): `search_companies`, `get_company_profile`, `get_officers`, `get_shareholders`

Full schema: call `list_jurisdictions` with `jurisdiction: "NO"`.

### `NZ` New Zealand - NZ Companies Office

- **Registry**: [New Zealand Companies Office (Ministry of Business, Innovation & Employment)](https://companies-register.companiesoffice.govt.nz)
- **Company ID format**: NZ Companies Office company number (numeric, typically 5–8 digits, e.g. 1157956). 13-digit NZBN (e.g. 9429036794195) also accepted - auto-resolves to company number via entity search.
- **Supported tools** (9): `search_companies`, `get_company_profile`, `get_officers`, `get_shareholders`, `list_filings`, `get_officer_appointments`, `search_officers`, `get_document_metadata`, `fetch_document`

Full schema: call `list_jurisdictions` with `jurisdiction: "NZ"`.

### `PL` Poland - KRS

- **Registry**: [Krajowy Rejestr Sądowy (KRS) - National Court Register, Polish Ministry of Justice](https://www.krs.ms.gov.pl/)
- **Company ID format**: Multi-shape identifier. For KRS-registered commercial entities (sp. z o.o., S.A., fundacje, stowarzyszenia, etc.): 10-digit KRS number (short values zero-padded), e.g. '0000635012' (Allegro). For non-KRS entities (CEIDG sole traders, sp. cywilna partners): 9-digit REGON. For local units (jednostki lokalne): 14-digit REGON. search_companies additionally accepts 10-digit NIP (tax ID) and returns the KRS when resolvable.
- **Supported tools** (7): `search_companies`, `get_company_profile`, `list_filings`, `get_officers`, `get_shareholders`, `get_document_metadata`, `fetch_document`

Full schema: call `list_jurisdictions` with `jurisdiction: "PL"`.

### `RU` Russia - ЕГРЮЛ · ФНС

- **Registry**: [ЕГРЮЛ / ЕГРИП - Федеральная налоговая служба (ФНС России) + ГИР БО](https://egrul.nalog.ru/)
- **Company ID format**: OGRN - 13 digits for legal entities (UL), 15 digits for sole proprietors (ОГРНИП). INN (10 / 12 digits) is also accepted for search; get_company_profile canonicalises to OGRN. Whitespace + punctuation stripped on input.
- **Supported tools** (7): `search_companies`, `get_company_profile`, `list_filings`, `get_officers`, `get_shareholders`, `get_document_metadata`, `fetch_document`
- **Note**: excluded from default global fan-out - pass `jurisdiction: "RU"` explicitly.

Full schema: call `list_jurisdictions` with `jurisdiction: "RU"`.

### `TW` Taiwan - GCIS · 商工登記

- **Registry**: [經濟部商工登記公示資料 (Ministry of Economic Affairs, Department of Commerce) - GCIS open data](https://findbiz.nat.gov.tw/)
- **Company ID format**: Taiwan 統一編號 (Unified Business Number): 8 digits, e.g. '22099131' (台灣積體電路製造 TSMC). Dashes/dots/whitespace are stripped.
- **Supported tools** (5): `search_companies`, `get_company_profile`, `get_officers`, `search_officers`, `get_shareholders`

Full schema: call `list_jurisdictions` with `jurisdiction: "TW"`.
