# OpenRegistry — full manifest

> A free remote MCP server proxying 27 national company registries directly to 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 |
| --- | --- | --- | --- | --- |
| Anonymous | Free | None | 20 req/min/IP | 3 countries / 60s |
| Free (signed in) | Free | Email magic link | 30 req/min/user | 3 countries / 60s |
| Pro | $9 / month | Stripe | 180 req/min/user | 10 countries / 60s |
| Max | $29 / 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 (anonymous=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 only Ireland CRO exposes a count-only endpoint.

**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. Powered by ARES's standardizovane-adresy endpoint.

**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). The upstream filter is narrow — 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

Scan Spanish BORME Section I/B province PDFs for every acto inscrito matching a denominación — directors, constitución, dissolution, capital changes.

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 PDF URL, and the full raw acto paragraph text. The only way to get current directors / resolutions / socio-único declarations for Spanish companies (since the per-company /buscar/anborme.php only indexes Section II).

**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: 30 days ago.
- `date_to` (string): YYYY-MM-DD. Default: today. Max window 90 days.

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.

Live query against the IM Companies Registry 'Check Name Availability' endpoint. 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: [/docs/jurisdictions/au](https://openregistry.sophymarine.com/docs/jurisdictions/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: [/docs/jurisdictions/be](https://openregistry.sophymarine.com/docs/jurisdictions/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: [/docs/jurisdictions/ca](https://openregistry.sophymarine.com/docs/jurisdictions/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: [/docs/jurisdictions/ca-bc](https://openregistry.sophymarine.com/docs/jurisdictions/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: [/docs/jurisdictions/ca-nt](https://openregistry.sophymarine.com/docs/jurisdictions/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: [/docs/jurisdictions/ch](https://openregistry.sophymarine.com/docs/jurisdictions/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** (2): `search_companies`, `get_company_profile`

Full schema: [/docs/jurisdictions/cy](https://openregistry.sophymarine.com/docs/jurisdictions/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: [/docs/jurisdictions/cz](https://openregistry.sophymarine.com/docs/jurisdictions/cz).

### `DE` Germany — Handelsregister

- **Registry**: [Gemeinsames Registerportal der Länder — Handelsregister (Amtsgericht, Registergerichte der 16 Länder; Verfahrensführer: Ministerium der Justiz des Saarlandes)](https://www.handelsregister.de/rp_web/welcome.xhtml)
- **Company ID format**: Canonical DE slug '{court-slug}:{Registerart}:{Registernummer}[:{Suffix}]' — e.g. 'amtsgericht-charlottenburg-berlin:HRB:183284:B', 'amtsgericht-muenchen:HRB:252027', 'amtsgericht-hamburg:HRA:109516'. Registerart ∈ {HRA (Personengesellschaften), HRB (Kapitalgesellschaften), GnR (Genossenschaften), PR (Partnerschaften), VR (Vereine)}. The registering court MUST be part of the id because '{Registerart} {Nummer}' is not unique across Bundesländer. Natural-language fallbacks accepted on input: 'HRB 183284 B Amtsgericht Charlottenburg' or the pipe form emitted by search results.
- **Supported tools** (7): `search_companies`, `get_company_profile`, `list_filings`, `get_officers`, `get_shareholders`, `get_document_metadata`, `fetch_document`

Full schema: [/docs/jurisdictions/de](https://openregistry.sophymarine.com/docs/jurisdictions/de).

### `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; this adapter 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** (7): `search_companies`, `list_filings`, `get_document_metadata`, `fetch_document`, `list_actos_inscritos`, `get_officers`, `get_shareholders`
- **Note**: excluded from default global fan-out — pass `jurisdiction: "ES"` explicitly.

Full schema: [/docs/jurisdictions/es](https://openregistry.sophymarine.com/docs/jurisdictions/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** (8): `search_companies`, `get_company_profile`, `list_filings`, `get_financials`, `get_officers`, `get_shareholders`, `get_document_metadata`, `fetch_document`

Full schema: [/docs/jurisdictions/fi](https://openregistry.sophymarine.com/docs/jurisdictions/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: [/docs/jurisdictions/fr](https://openregistry.sophymarine.com/docs/jurisdictions/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** (11): `search_companies`, `get_company_profile`, `list_filings`, `get_financials`, `get_officers`, `get_persons_with_significant_control`, `get_charges`, `get_officer_appointments`, `search_officers`, `get_document_metadata`, `fetch_document`

Full schema: [/docs/jurisdictions/gb](https://openregistry.sophymarine.com/docs/jurisdictions/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: [/docs/jurisdictions/hk](https://openregistry.sophymarine.com/docs/jurisdictions/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: [/docs/jurisdictions/ie](https://openregistry.sophymarine.com/docs/jurisdictions/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: [/docs/jurisdictions/im](https://openregistry.sophymarine.com/docs/jurisdictions/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: [/docs/jurisdictions/is](https://openregistry.sophymarine.com/docs/jurisdictions/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: [/docs/jurisdictions/it](https://openregistry.sophymarine.com/docs/jurisdictions/it).

### `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). search_companies and get_company_profile also accept 13-digit 법인등록번호 (CRN, Supreme Court corporate registration number — accepts '123456-1234567' and '1234561234567'), 10-digit 사업자등록번호 (BRN, NTS tax identifier — '123-45-67890' or '1234567890'), 6-digit 종목코드 (KRX stock code), or free-text company name (exact or prefix, Korean or English); all are resolved to corp_code via the corpCode.xml master and returned verbatim in jurisdiction_data.
- **Supported tools** (8): `search_companies`, `get_company_profile`, `list_filings`, `get_financials`, `get_officers`, `get_shareholders`, `get_document_metadata`, `fetch_document`

Full schema: [/docs/jurisdictions/kr](https://openregistry.sophymarine.com/docs/jurisdictions/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: [/docs/jurisdictions/ky](https://openregistry.sophymarine.com/docs/jurisdictions/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: [/docs/jurisdictions/li](https://openregistry.sophymarine.com/docs/jurisdictions/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: [/docs/jurisdictions/mc](https://openregistry.sophymarine.com/docs/jurisdictions/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: [/docs/jurisdictions/mx](https://openregistry.sophymarine.com/docs/jurisdictions/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: [/docs/jurisdictions/my](https://openregistry.sophymarine.com/docs/jurisdictions/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: [/docs/jurisdictions/nl](https://openregistry.sophymarine.com/docs/jurisdictions/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: [/docs/jurisdictions/no](https://openregistry.sophymarine.com/docs/jurisdictions/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: [/docs/jurisdictions/nz](https://openregistry.sophymarine.com/docs/jurisdictions/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: [/docs/jurisdictions/pl](https://openregistry.sophymarine.com/docs/jurisdictions/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: [/docs/jurisdictions/ru](https://openregistry.sophymarine.com/docs/jurisdictions/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: [/docs/jurisdictions/tw](https://openregistry.sophymarine.com/docs/jurisdictions/tw).
