Data source: PRH (Patentti- ja rekisterihallitus / Finnish Patent and Registration Office)
Overview
PRH (Finnish Company Registry) wraps PRH (Patentti- ja rekisterihallitus / Finnish Patent and Registration Office), handling authentication, pagination, and rate limits for you. This tutorial covers all 4 tools with working code examples you can copy and run.
Prerequisites
- Sign up at https://context.gnist.ai/signup for a free API key (100 calls/day).
- Choose your integration method: MCP protocol or REST API.
Connect via MCP
Add to your MCP client config (Claude Desktop, Cursor, etc.):
{
"mcpServers": {
"gnist-prh": {
"url": "https://context.gnist.ai/mcp/prh/",
"headers": {
"Gnist-API-Key": "YOUR_API_KEY"
}
}
}
}
Tools (4)
lookup_prh_company
Look up a Finnish company by its business ID (Y-tunnus). Returns company details including name, legal form, industry, registration date, trade register status, website, and addresses. Args: business_id: Finnish business ID (Y-tunnus) in format "1234567-8". Returns: Company record, or {"error": "not_found"} if the business ID is unknown.
| Parameter | Type | Required | Description |
|---|---|---|---|
business_id | string | required | Finnish business ID (Y-tunnus) — format "1234567-8" (e.g. "0112038-9" for Nokia). |
curl -X POST "https://context.gnist.ai/mcp/prh/" \
-H "Content-Type: application/json" \
-H "Gnist-API-Key: YOUR_API_KEY" \
-d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "lookup_prh_company", "arguments": {"business_id": "0112038-9"}}}'
import httpx
resp = httpx.post(
"https://context.gnist.ai/mcp/prh/",
headers={"Gnist-API-Key": "YOUR_API_KEY"},
json={'id': 1,
'jsonrpc': '2.0',
'method': 'tools/call',
'params': {'arguments': {'business_id': '0112038-9'},
'name': 'lookup_prh_company'}},
)
print(resp.json())
search_prh_companies
Search the Finnish Trade Register by name, location, company form, or industry. At least one search parameter must be provided. Returns matching companies from PRH (Patentti- ja rekisterihallitus) open data. Args: name: Company name or partial name to search for. location: Town or city in Finland. company_form: Company form code (OY, OYJ, KY, OK, AY, etc.). business_line: TOL 2008 industry code or description text. max_results: Maximum number of results to return (1-50, default 10). Returns: Object with count, total available results, and list of company records.
| Parameter | Type | Required | Description |
|---|---|---|---|
name | any | optional | Company name or partial name to search for. |
location | any | optional | Town or city (e.g. 'Helsinki', 'Espoo', 'Tampere'). |
company_form | any | optional | Company form code: 'OY' (private limited), 'OYJ' (public limited), 'KY' (limited partnership), 'OK' (cooperative), 'AY' (general partnership). |
business_line | any | optional | TOL 2008 industry code or text (e.g. '62010' for software development). |
max_results | integer | optional | Maximum number of results to return (1-50, default 10). (default: 10) |
curl -X POST "https://context.gnist.ai/mcp/prh/" \
-H "Content-Type: application/json" \
-H "Gnist-API-Key: YOUR_API_KEY" \
-d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "search_prh_companies", "arguments": {"name": "example"}}}'
import httpx
resp = httpx.post(
"https://context.gnist.ai/mcp/prh/",
headers={"Gnist-API-Key": "YOUR_API_KEY"},
json={'id': 1,
'jsonrpc': '2.0',
'method': 'tools/call',
'params': {'arguments': {'name': 'example'}, 'name': 'search_prh_companies'}},
)
print(resp.json())
get_prh_financial_periods
List available digital financial statement periods for a Finnish company. Returns the filing dates for which PRH has received digital financial statements (XBRL format). Use this to check what financial data is available before requesting specific statements. Args: business_id: Finnish business ID (Y-tunnus). Returns: Object with count and list of available financial periods.
| Parameter | Type | Required | Description |
|---|---|---|---|
business_id | string | required | Finnish business ID (Y-tunnus) — format "1234567-8". |
curl -X POST "https://context.gnist.ai/mcp/prh/" \
-H "Content-Type: application/json" \
-H "Gnist-API-Key: YOUR_API_KEY" \
-d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "get_prh_financial_periods", "arguments": {"business_id": "12345"}}}'
import httpx
resp = httpx.post(
"https://context.gnist.ai/mcp/prh/",
headers={"Gnist-API-Key": "YOUR_API_KEY"},
json={'id': 1,
'jsonrpc': '2.0',
'method': 'tools/call',
'params': {'arguments': {'business_id': '12345'},
'name': 'get_prh_financial_periods'}},
)
print(resp.json())
report_feedback
Report a bug, feature request, or general feedback for this data source. Use this when something doesn't work as expected, when you'd like a new feature, or when you have suggestions for improvement. Args: feedback: Describe the issue or suggestion. feedback_type: One of 'bug', 'feature_request', or 'general'.
| Parameter | Type | Required | Description |
|---|---|---|---|
feedback | string | required | |
feedback_type | string | optional | (default: general) |
curl -X POST "https://context.gnist.ai/mcp/prh/" \
-H "Content-Type: application/json" \
-H "Gnist-API-Key: YOUR_API_KEY" \
-d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "report_feedback", "arguments": {"feedback": "example"}}}'
import httpx
resp = httpx.post(
"https://context.gnist.ai/mcp/prh/",
headers={"Gnist-API-Key": "YOUR_API_KEY"},
json={'id': 1,
'jsonrpc': '2.0',
'method': 'tools/call',
'params': {'arguments': {'feedback': 'example'}, 'name': 'report_feedback'}},
)
print(resp.json())
Common Patterns
Use
search_prh_companies to find items, then lookup_prh_company to get full details. This two-step pattern is common for exploring data before drilling down.Several tools support
limit, offset, or page parameters. Start with small limits during development, then increase for production queries.FAQ
What data does PRH (Finnish Company Registry) provide?
Finnish company registry — business details, legal form, industry codes, financial statement periods from PRH open data. It exposes 4 tools: lookup_prh_company, search_prh_companies, get_prh_financial_periods, report_feedback.
What do I need to get started?
A Gnist API key (free tier: 100 calls/day). Sign up at https://context.gnist.ai/signup.
What format does the PRH (Finnish Company Registry) API return?
JSON, via either MCP protocol (JSON-RPC 2.0) or REST API.