Signaturrett and prokura as JSON
Brreg signing authority API
One GET request returns the signing rule Brønnøysundregistrene (Brreg) hold for a Norwegian company, as JSON: GET /api/v1/company/{org}/authority. You send the nine digit organisation number (organisasjonsnummer). The answer carries the registered signing combinations for signaturrett (the general authority to bind the company) and prokura (a narrower authority for its day-to-day operation), the role holders, the sources and the time the answer was resolved.
Request
The path takes the organisation number and nothing else. There are three ways to call it.
curl -sS 'https://www.apier.no/api/v1/sandbox/public/company/999999999/authority' | jq .The keyless sandbox answers for one synthetic company, 999999999. Paste it into a terminal as it is.
curl -sS -H "Authorization: Bearer apier_sandbox_test_<suffix>" \
'https://www.apier.no/api/v1/sandbox/company/818000006/authority' | jq .dataEvery other reserved sandbox company answers with the sandbox bearer. Replace the suffix with a random value of your own. This request returns the response shown below.
curl -sS -H "Authorization: Bearer apr_free_<your_key_here>" \
'https://www.apier.no/api/v1/company/<org_number>/authority' | jq .dataProduction reads the register. Replace the placeholder with a key from the dashboard and the path segment with a real organisation number.
Response
This is the data object for the sandbox company 818000006, as the resolver returns it. Nothing is edited.
{
"org_number": "818000006",
"name": "Fjellberg Regnskap AS",
"entity_type": "AS",
"classification": "joint",
"summary": "Selskapet signeres av flere roller i fellesskap.",
"kombinasjon_available": true,
"combinations": [
{
"kombinasjons_id": "SANDBOX-KOMB-DAGL-STYRL-FELLES",
"description": "Daglig leder og styrets leder i fellesskap.",
"role_codes": [
"DAGL",
"STYRL"
]
},
{
"kombinasjons_id": null,
"description": "Prokura tildelt rollen PROKU.",
"role_codes": [
"PROKU"
]
}
],
"signaturrett_holders": [
{
"role": "DAGL",
"name": "Ola Nordmann"
},
{
"role": "STYRL",
"name": "Kari Hansen"
}
],
"prokura_holders": [
{
"role": "PROKU",
"name": "Per Olsen"
}
],
"data_sources": [
"brreg",
"fullmakttjenesten"
],
"resolved_at": "2026-01-01T09:00:00+01:00"
}The full response wraps this object as data beside success and _meta. In production the _meta block carries the source, the data freshness and the licence. The sandbox answer is synthetic and the names in it are not real people.
Field reference
| Field | What it holds |
|---|---|
classification | A convenience bucket derived from the registered combinations, with six values: sole (one combination names one role that signs alone), joint (every combination needs two or more roles together), by_role (several alternative combinations), prokura_only (no signaturrett combination, but prokura is defined), no_authority (the register carries neither) and unknown (the rule could not be determined). It is not a legal determination. |
summary | One sentence in bokmål keyed on the classification. Operational wording, never a statement of law. |
kombinasjon_available | True when the register's signatur lookup answered. False marks a degraded answer built from the role holders. |
combinations | The signing combinations the register returned, signaturrett first and then prokura. Each has the register's id, its description and the role codes. |
signaturrett_holders | The holders of signaturrett roles, each with a role code and a name. |
prokura_holders | The holders of prokura roles, in the same shape. |
data_sources | The open sources the answer is built from: brreg (role holders) and fullmakttjenesten (signing combinations). |
resolved_at | When the answer was resolved, as ISO 8601 with the Europe/Oslo offset. |
coded_authority | The coded model over the clauses Apier has mirrored from the register. Each of the two clause columns has a state, the verbatim wording with its register codes and a signing mode, and a stamp that says when the register was last read and what that read concluded. |
Free text and coded rules
The register's wording is kept verbatim. Apier does not trim, paraphrase or summarise a signing clause, because a shortened clause is a different clause.
A wording that Brreg serves under one of its documented signing combination codes is also mapped to a mode: sole, joint, severally, alternatives or unspecified. The mode transcribes the connective in the documented wording. "Daglig leder og styrets leder i fellesskap" is joint, and "Daglig leder eller styrets leder alene" is alternatives.
A wording outside that closed code table comes back whole and uninterpreted, with codes and mode set to null and the state free_text_uninterpreted. Nothing is guessed and no part of the text is parsed.
An empty result is not read as a no. Of the five states, absent_verified alone asserts that no clause exists, and only when the register itself answered that none does.
Signaturrett and prokura are defined in Norwegian law, among others in aksjeloven and prokuraloven. The API reports what the register holds and cites no section of either act.
The same data through MCP
An AI agent reads the same answer with the MCP tool get_company_authority, which forwards to this endpoint and returns the data object as its result. MCP server for Norwegian company data.
Limits
- The API returns the register's coded signing rules for the company. It never rules on whether a person may sign a given document. Your own process applies the rules.
- It does not read Altinn authorisation, fullmakt (delegated authority) or acting capacity. Those surfaces were withdrawn on 2026-10-21.
- coded_authority is present on the production route and absent in sandbox answers, because the sandbox companies have no mirrored register row.
- legal_basis is a reserved field and is not populated. The answer asserts no legal citation.
- When the register's signatur lookup does not answer, the call still succeeds: kombinasjon_available is false and the classification falls back to the role holders.
- Apier does not submit filings to government.
Pricing
A call to the production endpoint is one metered company read: 50 øre (NOK 0.50) from a prepaid wallet, with no subscription. Sandbox calls use synthetic data and are not charged. Prices, top-ups and rate limits.
Frequently asked questions
- Does Brreg have a signing authority API?
- Brønnøysundregistrene publish signing combinations as open data in Fullmakttjenesten. Apier reads that source and the role holders, and returns one JSON answer per organisation number with the source and the time of the read.
- Can I get signaturrett as JSON?
- Yes. GET /api/v1/company/{org}/authority returns the registered signaturrett and prokura combinations as JSON, with the register's wording, the role codes and the role holders.
- What is the difference between signaturrett and prokura?
- Signaturrett is the general authority to bind the company. Prokura is a narrower authority for the day-to-day operation of the business. The register holds them as separate records, and the response keeps them apart in combinations and in the two holder lists.
- Does the API decide whether a person may sign a specific contract?
- No. It returns the register's coded signing rules for the company and the role holders. Whether a given signature falls within them is for your own process to decide.
- Can I test without an API key?
- Yes. The keyless sandbox answers for the synthetic company 999999999 with no header, and the sandbox bearer answers for every reserved sandbox company without signup.
- How fresh is the data?
- The signing combinations are fetched from the register on each production call, and resolved_at states when. coded_authority shows the mirrored clauses with a stamp for the last register read.
- What does a call cost?
- One metered company read, 50 øre from a prepaid wallet. Sandbox calls are not charged.
Related pages
- Signature and authority: the product page for the register's coded signing rules.
- Signature rights for a Norwegian company, in the docs: the developer guide to the same endpoint.
- MCP server for Norwegian company data: the same answer as a tool for AI agents.
- Guide: How do I verify company signing authority (signaturrett) via API?
- Guide: Who can sign for a Norwegian company?
- Guide: What is the difference between prokura and signaturrett?
Get started
Run the request in the sandbox, or read the endpoint reference.