Company profile

get_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

NameTypeRequiredDescription
jurisdictionstringyesISO 3166-1 alpha-2 code.
company_idstringyesThe registry's canonical identifier. Shapes vary per jurisdiction - pull from search_companies when possible.
freshbooleannoBypass cache.

Example - Get REVOLUT LTD profile

curl -sL https://openregistry.sophymarine.com/mcp \
  -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_company_profile","arguments":{"jurisdiction":"GB","company_id":"08804411"}}}'

Supported jurisdictions (29)

Related tools

Frequently asked questions

I have a company name, not a company_id — what do I call?

search_companies first. Each result has the registry's canonical company_id. Pass that id to get_company_profile. Names are not unique even within a single jurisdiction, so passing a name will not work.

Does this include directors or shareholders?

No. get_company_profile returns the entity's structured identity only. Use get_officers / get_shareholders / get_persons_with_significant_control / list_filings / get_charges for those — each one is its own MCP call.

Why is field X under jurisdiction_data instead of at the top level?

Top-level fields are the cross-jurisdiction unified shape (status, incorporation_date, registered_address, etc.). Everything the upstream registry returned that does not map cleanly across countries is preserved verbatim under jurisdiction_data — SIC codes, native status strings, regional sub-fields, registry-specific flags.

When should I pass fresh: true?

Default is to return the edge-cached profile (TTL varies per registry, typically 1h–24h). Pass fresh: true to force-skip the cache and hit the upstream registry. Use when you need a same-minute view (newly incorporated, status change in the last hour).

What format is company_id?

Registry-specific. GB: 8-digit Companies House number. FR: 9-digit SIREN. DE: HRB / HRA + number. KR: 8-digit corp number (corp_code). KY: CIMA license number. Call list_jurisdictions for each country's format and examples.

Why does status say 'active' when the registry says 'liquidation'?

status is OpenRegistry's coarse normalization (active / inactive / dissolved / unknown) for cross-country comparability. The registry's exact native string is preserved under jurisdiction_data — read that for precise state. status_detail (when present) carries the registry's status text directly.

Do I get historical names / previous addresses?

Yes, when the registry publishes them. They appear under jurisdiction_data (e.g. jurisdiction_data.previous_company_names on GB). The top-level company_name and registered_address are always the current values.

Empty fields — bug, or upstream blank?

Upstream blank. The unified-shape fields (incorporation_date, registered_address) are populated only where the registry exposes them. Some registers withhold address for partnerships, sole traders, or under privacy provisions. Check jurisdiction_data for the raw upstream record before assuming missing data.

Rate limits?

Same as search_companies: 30 free, 180 Pro, 900 Max, 3000 Enterprise. Per user. Fresh-bypass calls count the same.

Can one company_id appear in multiple jurisdictions?

No within one country, but yes across countries — UK FC-prefixed numbers (overseas branches) and German HRB local-court combinations can collide with other countries' identifier spaces. Always include jurisdiction in your call.