Data source: Brønnøysundregistrene
Overview
Brønnøysund (Brreg) wraps Brønnøysundregistrene, handling authentication, pagination, and rate limits for you. This tutorial covers all 6 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-brreg": {
"url": "https://context.gnist.ai/mcp/brreg/",
"headers": {
"Gnist-API-Key": "YOUR_API_KEY"
}
}
}
}
Tools (6)
lookup_brreg_company
Look up a Norwegian company by its 9-digit organisation number. Returns full company record including legal form, industry code, address, employee count, registration date, and VAT/bankruptcy status. Args: org_number: Norwegian org number — 9 digits, with or without spaces/dashes (e.g. "923609016", "923 609 016"). Returns: Company record, or {"error": "not_found"} if the org number is unknown.
| Parameter | Type | Required | Description |
|---|---|---|---|
org_number | string | required | Norwegian org number — 9 digits, with or without spaces/dashes (e.g. "923609016", "923 609 016"). |
curl -X POST "https://context.gnist.ai/mcp/brreg/" \
-H "Content-Type: application/json" \
-H "Gnist-API-Key: YOUR_API_KEY" \
-d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "lookup_brreg_company", "arguments": {"org_number": "923609016"}}}'
import httpx
resp = httpx.post(
"https://context.gnist.ai/mcp/brreg/",
headers={"Gnist-API-Key": "YOUR_API_KEY"},
json={'id': 1,
'jsonrpc': '2.0',
'method': 'tools/call',
'params': {'arguments': {'org_number': '923609016'},
'name': 'lookup_brreg_company'}},
)
print(resp.json())
search_brreg_companies
Search the Norwegian Business Registry by name and/or attributes. At least one filter parameter must be provided. Args: name: Company name or partial name to search for (case-insensitive). municipality_code: 4-digit Norwegian municipality code (kommunenummer), e.g. "0301" for Oslo. industry_code: NACE industry code, e.g. "62.010" for software development. legal_form: Legal form code, e.g. "AS" (private limited), "ASA" (public limited), "ENK" (sole trader), "DA" (general partnership). max_results: Maximum number of results to return (1–50, default 10). Returns: Object with count and list of matching company records.
| Parameter | Type | Required | Description |
|---|---|---|---|
name | any | optional | Company name or partial name to search for (case-insensitive). |
municipality_code | any | optional | 4-digit Norwegian municipality code (kommunenummer), e.g. "0301" for Oslo. |
industry_code | any | optional | NACE industry code, e.g. "62.010" for software development. |
legal_form | any | optional | Legal form code, e.g. "AS" (private limited), "ASA" (public limited), "ENK" (sole trader), "DA" (general partnership). |
max_results | integer | optional | Maximum number of results to return (1–50, default 10). (default: 10) |
curl -X POST "https://context.gnist.ai/mcp/brreg/" \
-H "Content-Type: application/json" \
-H "Gnist-API-Key: YOUR_API_KEY" \
-d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "search_brreg_companies", "arguments": {"name": "example"}}}'
import httpx
resp = httpx.post(
"https://context.gnist.ai/mcp/brreg/",
headers={"Gnist-API-Key": "YOUR_API_KEY"},
json={'id': 1,
'jsonrpc': '2.0',
'method': 'tools/call',
'params': {'arguments': {'name': 'example'}, 'name': 'search_brreg_companies'}},
)
print(resp.json())
get_brreg_company_roles
Get the leadership roles for a Norwegian company. Returns board members, CEO, signatories, and other registered roles with person names and role types. Args: org_number: Norwegian org number — 9 digits, with or without spaces/dashes. Returns: Object with count and list of roles, each with role_type, person_name, birth_year (if available), and entity details for corporate roles.
| Parameter | Type | Required | Description |
|---|---|---|---|
org_number | string | required | Norwegian org number — 9 digits, with or without spaces/dashes. |
curl -X POST "https://context.gnist.ai/mcp/brreg/" \
-H "Content-Type: application/json" \
-H "Gnist-API-Key: YOUR_API_KEY" \
-d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "get_brreg_company_roles", "arguments": {"org_number": "12345"}}}'
import httpx
resp = httpx.post(
"https://context.gnist.ai/mcp/brreg/",
headers={"Gnist-API-Key": "YOUR_API_KEY"},
json={'id': 1,
'jsonrpc': '2.0',
'method': 'tools/call',
'params': {'arguments': {'org_number': '12345'},
'name': 'get_brreg_company_roles'}},
)
print(resp.json())
get_brreg_subsidiaries
Get direct subsidiaries of a Norwegian company. Finds all companies registered with the given org number as their parent entity (overordnetEnhet). Args: org_number: Norwegian org number of the parent company. max_results: Maximum number of subsidiaries to return (1–50, default 50). Returns: Object with count and list of subsidiary company records.
| Parameter | Type | Required | Description |
|---|---|---|---|
org_number | string | required | Norwegian org number of the parent company. |
max_results | integer | optional | Maximum number of subsidiaries to return (1–50, default 50). (default: 50) |
curl -X POST "https://context.gnist.ai/mcp/brreg/" \
-H "Content-Type: application/json" \
-H "Gnist-API-Key: YOUR_API_KEY" \
-d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "get_brreg_subsidiaries", "arguments": {"org_number": "12345"}}}'
import httpx
resp = httpx.post(
"https://context.gnist.ai/mcp/brreg/",
headers={"Gnist-API-Key": "YOUR_API_KEY"},
json={'id': 1,
'jsonrpc': '2.0',
'method': 'tools/call',
'params': {'arguments': {'org_number': '12345'},
'name': 'get_brreg_subsidiaries'}},
)
print(resp.json())
get_brreg_recent_changes
Get recent changes to monitored Norwegian companies. Returns field-level diffs (before/after values) for companies whose registry data changed since the given timestamp. Only companies on the configured watchlist are tracked. Args: since: ISO 8601 timestamp — return changes captured after this time. limit: Maximum number of changes to return (1–100, default 50). Returns: Object with count and list of change records, each containing entity_id, changed_at timestamp, and a list of field changes with before/after values.
| Parameter | Type | Required | Description |
|---|---|---|---|
since | string | required | ISO 8601 timestamp — return changes captured after this time (e.g. "2026-04-01T00:00:00Z"). |
limit | integer | optional | Maximum number of changes to return (1–100, default 50). (default: 50) |
curl -X POST "https://context.gnist.ai/mcp/brreg/" \
-H "Content-Type: application/json" \
-H "Gnist-API-Key: YOUR_API_KEY" \
-d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "get_brreg_recent_changes", "arguments": {"since": "2026-04-01T00:00:00Z"}}}'
import httpx
resp = httpx.post(
"https://context.gnist.ai/mcp/brreg/",
headers={"Gnist-API-Key": "YOUR_API_KEY"},
json={'id': 1,
'jsonrpc': '2.0',
'method': 'tools/call',
'params': {'arguments': {'since': '2026-04-01T00:00:00Z'},
'name': 'get_brreg_recent_changes'}},
)
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/brreg/" \
-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/brreg/",
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_brreg_companies to find items, then lookup_brreg_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 Brønnøysund (Brreg) provide?
Norwegian business registry — company details, roles, and financial filings. It exposes 6 tools: lookup_brreg_company, search_brreg_companies, get_brreg_company_roles, get_brreg_subsidiaries, get_brreg_recent_changes, 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 Brønnøysund (Brreg) API return?
JSON, via either MCP protocol (JSON-RPC 2.0) or REST API.