Apier

no.apierPublished by apier.noOfficial publisherv2026.10.0Updated Oct 25, 2026

Machine-verifiable Norwegian company authority: status, roles and coded signing authority.

VerifiedStreamable HTTPWeb executableFinanceBusiness & Commerce

Overview

AI-generated overview

Hosted MCP server for Norwegian company data: resolves organisation numbers, signing authority, annual accounts, filing obligations and deadlines.

What you can do
Look up and search Norwegian companies by name or organisasjonsnummer, with profile, identity and verification data from Brønnøysundregistrene and Regnskapsregisteret, including annual accounts snapshots and signing-authority codes (signaturrett, prokura). Evaluate regulatory obligations and upcoming filing deadlines for a company, and read the universal obligation sets and filing calendar for entity types. Check Norges Bank reference exchange rates against NOK and explain Apier compliance error codes with fix steps. Read the cross-source change archive and map Altinn 2 service or role codes to Altinn 3 equivalents. Check pricing and prepaid credit balance, and redeem an owner-issued token;
When to use it
Useful when an assistant needs to verify a Norwegian counterparty, find who can legally sign for a company, check VAT registration or annual accounts, or work out which filings and deadlines apply. Also suited to agents preparing Altinn 3 migrations or reconciling filing history.
Requirements
Remote streamable HTTP endpoint; no local install needed, though an npm stdio proxy exists for stdio-only clients. Discovery is keyless; protected tool calls need an API key sent as an Authorization bearer header (APIER_API_KEY for the proxy). Some tools are keyless public reads. Metered calls draw on prepaid credits.
Before you install
The API key is a credential: keep it out of committed client config files. Metered tools cost credits, so check pricing and balance before batches. Fullmakt tools request, check and revoke delegated company-to-agent authority, and revoke retires the agent principal. Company data is sent to the Apier service and its upstream registers.

Installation

In SourceWeft

  1. Open Apier in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/no.apier%2Fmcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "apier": {
      "type": "http",
      "url": "https://www.apier.no/api/mcp"
    }
  }
}

README

Apier MCP Server — Norwegian company data and compliance for AI agents

Apier is a hosted MCP (Model Context Protocol) server that gives AI agents structured access to Norwegian company data and regulatory compliance. It resolves any 9-digit organisasjonsnummer (organisation number) against Brønnøysundregistrene (the Brønnøysund Register Centre / Enhetsregisteret), answers who holds signing authority for a company (signaturrett and prokura), reads annual accounts (årsregnskap) from Regnskapsregisteret, computes filing deadlines for MVA, A-melding and Årsregnskap, and brokers fullmakt — scoped, revocable company→agent authority delegated through an Altinn 3 systembruker, authenticated upstream via Maskinporten against Skatteetaten and other agencies. This repository is the thin, hardened npm proxy (@apier-no/mcp) that connects local stdio MCP clients to the hosted server.

What you can ask

With this server connected, an AI agent can answer questions like:

  • "What's the organisasjonsnummer for Equinor?" (search_companies)
  • "Who can legally sign on behalf of org number 923 609 016 — and is it signaturrett or prokura?" (get_company_authority)
  • "Is this company VAT-registered, and what regulatory obligations does it have?" (get_company_summary)
  • "What filing deadlines is this company facing in the next six months?" (get_company_deadlines)
  • "Show me the latest annual accounts (årsregnskap) for this company." (get_company_accounts)
  • "What is the Altinn 3 equivalent of this old Altinn 2 role code?" (get_altinn_migration_guidance)
  • "What's the current Norges Bank exchange rate for EUR to NOK?" (get_exchange_rate)
  • "Request a fullmakt so I can act on behalf of this company, then verify it before filing." (request_fullmakt, check_fullmakt)

Tools

All 25 tools exposed by the hosted server at https://www.apier.no/api/mcp (discovered live via tools/list on 2026-10-10; each row is the opening sentence of the live description, so the full text is one tools/list call away):

ToolDescription
get_company_summaryA one-shot summary of obligations and deadlines for a Norwegian organisation: your FIRST call when you orient against a company.
get_public_obligationsKeyless. Retrieve the universal obligation set for a Norwegian entity type — every regulatory obligation that applies by virtue of BEING that organisational form, before per-company Tier-2 data is layered on.
get_exchange_rateKeyless. Norges Bank reference exchange rate for a currency against NOK — the benchmark Norwegian tax and accounting rules accept for foreign-currency obligations.
list_acting_capacityResolve every Norwegian regulatory action a person is currently authorised to perform on behalf of a specific organisation.
get_company_profileResolve a Norwegian organisasjonsnummer (9 digits) into a structured company profile from Brønnøysund Enhetsregisteret: display name, form of organisation, NACE codes with descriptions, addresses, the dates of registration and dissolution, the active / dissolved status enum, the MVA-registered flag, and the role CODES of persons — never personal identifiers.
check_authorizationReturn the authorisation snapshot for the calling consumer's delegation on a Norwegian organisation: the status enum (full / partial / none), active_scopes, missing_scopes (empty on full) and delegated_rights.
get_company_contextBrønnøysund identity slice for a Norwegian organisation: legal name, form of organisation, NACE codes, addresses, the dates it was formed or dissolved, and the signaturrett / prokura role-code summary (never personal identifiers).
get_company_deadlinesThe upcoming filing calendar for one organisation, horizon_months ahead.
get_company_obligationsEvaluate the Apier Rulebook for a Norwegian organisation: one entry per rule with rule_id, obligation_name, evaluation_result (applicable, not_applicable or insufficient_data), a reason, the legal_reference, frequency, data_tier_required and the bokmål description, which is inherited byte for byte (never re-translate it).
get_public_deadlinesKeyless. The universal Norwegian filing calendar: the deadlines for every Norwegian business in the covered categories (MVA, A-melding, Skattemelding, Årsregnskap), which do not depend on any one organisation.
validate_actionDry-run a proposed regulatory action with NO upstream side effect (no government call).
explain_compliance_errorKeyless. Resolve a structured Apier compliance error code into a Norwegian-bokmål Explanation envelope: summary, bokmål why, ordered fix_steps, optional documentation link + legal_basis, and an optional handover block (who / where / what / why) for errors a human must resolve.
search_companiesResolve a Norwegian company NAME to its 9-digit organisasjonsnummer.
get_company_verificationFast go / no-go trust check before you act for a Norwegian organisation.
get_company_authorityWho can legally sign for this Norwegian company, and how?
get_company_accountsA current snapshot of a Norwegian company's annual accounts (årsregnskap) from the OPEN Regnskapsregisteret tier: has_filed_annual_accounts (null = unknown, never a fabricated false), last_accounts_year and that year's minimal key_figures (currency always surfaced, presentation basis, totals).
get_company_filing_historyReconcile a company's Altinn 3 filing history against the filings YOUR consumer submitted through Apier: each Altinn instance paired with its Apier audit record (filed_via_apier + apier_record).
list_changesRead Apier's cross-source change archive — created / updated / deleted events detected across the upstreams Apier polls (Brønnøysund, Altinn schemas, Norges Bank, NAV, Skatteetaten Tier-2; the Digdir poller is retired, so digdir is a valid but empty filter).
get_altinn_migration_guidanceDiscover the Altinn 3 equivalent of an Altinn 2 service or role code.
request_fullmaktBroker a fullmakt — scoped, revocable company→agent authority via an Altinn systembruker.
check_fullmaktCheck your fullmakt state for a Norwegian company BEFORE acting on its behalf.
revoke_fullmaktRevoke a fullmakt — withdraw an agent's delegated authority for a Norwegian company and retire the agent principal.
get_pricingCall this BEFORE metered work to check per-call cost and whether billing enforcement is live.
get_credit_balanceCall this BEFORE a batch of metered calls to confirm the calling key's prepaid credit balance covers it, and AFTER a 402 INSUFFICIENT_CREDITS + human top-up to verify the funds landed.
redeem_issuance_tokenConvert an owner-issued key-issuance token into your own API key — the headless onboarding step for an agent that holds no credential yet.

Try without a key

Starting this proxy requires APIER_API_KEY (see Quickstart). The proxy forwards whatever bearer you give it as Authorization: Bearer … and never inspects the key's shape. Without a real key you still have two sandbox paths, both served from synthetic fixtures and never from a government register:

  • Direct HTTP to the sandbox mirror under /api/v1/sandbox/ on apier.no. Every Category B company endpoint has a mirror there. It is not zero-auth: it expects a self-invented sandbox bearer, apier_sandbox_test_<suffix> (any suffix of 1–64 characters from A-Za-z0-9_-), which the server recognises by its prefix and answers with fixtures — no signup and no key store behind it. A separate, truly zero-auth mirror lives under /api/v1/sandbox/public/ for the single fixture org 999999999.
  • The same sandbox bearer on the hosted MCP endpoint https://www.apier.no/api/mcp. Send Authorization: Bearer apier_sandbox_test_<suffix> and the fixture-backed company tools (get_company_context, get_company_obligations, get_company_deadlines, get_company_summary, get_company_verification, explain_compliance_error, get_company_authority, get_company_accounts, get_company_filing_history) are routed to the sandbox mirror, with _meta.is_sandbox: true on every result; the remaining tools answer exactly as they would without a key. Because this proxy forwards the bearer unchanged, setting APIER_API_KEY to such a value lets a stdio client rehearse those tools against fixtures too.

List the canonical sandbox test data (no auth at all):

bash
curl -sL https://apier.no/api/v1/sandbox/fixtures

Trimmed response — … marks omitted fields:

text
{"success":true,"data":{"schema_version":"1.0.0",  "reserved_test_orgs":[{"org_number":"999000001","name":"Sandbox AS","entity_type":"AS","data_tier":"tier_1", …}],  "realistic_orgs":[{"org_number":"818000006","name":"Fjellberg Regnskap AS","entity_type":"AS","data_tier":"tier_1_2"}, …],  "magic_scenarios":[{"org_number":"999660010","state":"konkurs","label":"Bankrupt (konkurs)"}, …], …}}

Verify the bankrupt fixture company with a self-invented bearer — any suffix of 1–64 chars from A-Za-z0-9_- after apier_sandbox_test_ works; here bash's $RANDOM supplies one. (This call goes to the www host directly: the apex→www 308 redirect makes curl drop the Authorization header.)

bash
curl -s -H "Authorization: Bearer apier_sandbox_test_$RANDOM" https://www.apier.no/api/v1/sandbox/company/999660010/verify

Trimmed response — … marks omitted fields:

text
{"success":true,"data":{"org_number":"999660010","name":"Sandbox Konkurs AS",  "verification_status":"fail",  "signals":{"is_active":false,"not_bankrupt":false, …},  "summary":"Selskapet er ikke aktivt registrert i Enhetsregisteret.", …}}

Don't confuse the two prefixes: a real API key is apr_<tier>_… (apr_free_, apr_starter_, apr_pro_ or apr_ent_) and comes from signup via https://www.apier.no/docs/authentication, while apier_sandbox_test_ is self-generated and needs no signup. (Earlier README versions mentioned apier_live_ / apier_test_ keys; no key of that shape was ever issued.) GET /api/v1/sandbox/fixtures is the canonical machine-readable table of sandbox test data.

Quickstart

Hosted endpoint (streamable HTTP)

The fastest path — no install. Point any streamable-HTTP-capable MCP client at:

text
https://www.apier.no/api/mcp

Discovery is keyless: initialize, tools/list, resources and prompts all work without credentials, so an agent can explore the full catalogue before authenticating. An API key (Authorization: Bearer apr_<tier>_…) is needed only for protected tool calls. See https://www.apier.no/docs/authentication for how to get a key, then create one in the dashboard at https://www.apier.no/dashboard.

npx stdio proxy (@apier-no/mcp)

For stdio-only clients, this package wraps mcp-remote, reads APIER_API_KEY from your environment, removes it from the spawned child's environment, redacts it from stderr, and hands the bearer value over out-of-band so it never appears on the child's command line — see SECURITY.md.

mcp-remote moved from geelen/mcp-remote to punkpeye/mcp-remote; the npm package name is unchanged, and 0.8.1 is published with SLSA provenance attestations.

Published as @apier-no/mcp. The @apier scope was unavailable, so this package ships under the @apier-no scope.

Claude Desktop / Cursor (claude_desktop_config.json / ~/.cursor/mcp.json):

json
{  "mcpServers": {    "apier": {      "command": "npx",      "args": ["-y", "@apier-no/mcp"],      "env": { "APIER_API_KEY": "apr_<tier>_<your_key_here>" }    }  }}

VS Code (.vscode/mcp.json):

json
{  "servers": {    "apier": {      "type": "stdio",      "command": "npx",      "args": ["-y", "@apier-no/mcp"],      "env": { "APIER_API_KEY": "apr_<tier>_<your_key_here>" }    }  }}

Zed (settings.json):

json
{  "context_servers": {    "apier": {      "source": "custom",      "command": "npx",      "args": ["-y", "@apier-no/mcp"],      "env": { "APIER_API_KEY": "apr_<tier>_<your_key_here>" }    }  }}

Ready-to-paste config files for each client live in examples/.

Configuration

VariableRequiredDefault
APIER_API_KEYyes—
--endpoint <url>nohttps://www.apier.no/api/mcp
MCP_REMOTE_CONFIG_DIRno~/.mcp-auth

Security

  • APIER_API_KEY is read by the parent process and scrubbed from the spawned child's environment, and stderr is passed through a redactor that strips Bearer …, bare apr_<tier>_… keys and apr_issue_… key-issuance tokens, the legacy apier_(live|test)_… shape, ghp_…, and Authorization: substrings.
  • The key never appears in the child's command line. The --header argument carries only the placeholder Authorization:${APIER_MCP_AUTH_HEADER}; the bearer value is passed out-of-band in that variable and expanded by mcp-remote at request time. Command lines are world-readable on Linux (/proc/<pid>/cmdline), process environments are not — so this is no longer readable by other local users (#33, fixed in 1.2.0). An attacker already running as you can still read the environment — see SECURITY.md.
  • Non-https endpoints are rejected before spawn; mcp-remote is exact-pinned and releases are published with npm provenance via GitHub Actions Trusted Publishing (OIDC).
  • Treat client config files (claude_desktop_config.json, .cursor/mcp.json, …) like .env files — never commit them with a real key.

Full threat model and disclosure policy: SECURITY.md.

Documentation

License

MIT

Source: README.md at commit 305fd61

Tools

18

get_company_summary

Company obligations and deadlines summary

A one-shot summary of obligations and deadlines for a Norwegian organisation: your FIRST call when you orient against a company. One call gives you entity_type, nace_codes, mva_registered, data_tier, obligations[] and deadlines[] (tier_2 adds filing_status), all from one version of the rules. It is not the identity from the registry: use get_company_context instead; for a drill down call get_company_obligations; to set a horizon_months call get_company_deadlines. Failure modes: NOT_FOUND, UPSTREAM_TIMEOUT, VALIDATION_FAILED; a credential without `read:brreg` can't see the tool; a call returns unknown tool (-32602). No API key? Use Bearer apier_sandbox_test_<suffix> (a fresh suffix) to get fixtures; valid orgs are the 818, 99966 and 99977 series and 999000002 (see GET /api/v1/sandbox/fixtures). Cost: 50 øre (NOK 0.50) per call, prepaid (prices: the get_pricing tool or GET /api/v1/pricing; a shortfall returns INSUFFICIENT_CREDITS with top_up_url). Docs: https://www.apier.no/docs/guides/company-snapshot

Parametersorg_numberrequired

get_public_obligations

Obligations by entity type (keyless)

Keyless. Retrieve the universal obligation set for a Norwegian entity type — every regulatory obligation that applies by virtue of BEING that organisational form, before per-company Tier-2 data is layered on. Use it for 'what does an AS owe?' or 'what are the baseline filings for an Enkeltpersonforetak?' without naming a company. Each obligation carries tier_2_required: true means the rule engine needs commercial data to decide for a SPECIFIC company, false means it applies unconditionally. Input: { entity_type } from the closed enum AS / ENK / ANS / DA / NUF (no 'OTHER' fallback). Failure modes: VALIDATION_FAILED, UPSTREAM_TIMEOUT; a credential without `read:rulebook` can't see the tool; a call returns unknown tool (-32602). For a specific company's evaluated obligations, call get_company_obligations; for the universal calendar, use get_public_deadlines. Docs: https://www.apier.no/docs/guides/norwegian-company-obligations

Parametersentity_typerequired

get_exchange_rate

Norges Bank exchange rate (keyless)

Keyless. Norges Bank reference exchange rate for a currency against NOK — the benchmark Norwegian tax and accounting rules accept for foreign-currency obligations. No Norwegian-company input. Input: { base, quote, date? } — ISO 4217 codes, NOK-anchored: exactly one side MUST be 'NOK'. The response is always base NOK and quote = the other currency, whatever order you sent; rate = NOK per 1 unit of quote; date = the day the rate is valid for (weekends and holidays fall back to the prior business day, so it can differ from requested_date). A pair without a NOK side is rejected client-side as UNSUPPORTED_CURRENCY_PAIR: derive cross rates from two NOK legs. Failure modes: VALIDATION_FAILED, UNSUPPORTED_CURRENCY_PAIR, INVALID_DATE, UPSTREAM_TIMEOUT, NO_RATE_AVAILABLE; a credential without `read:norgesbank` can't see the tool; a call returns unknown tool (-32602). For obligations or deadlines rather than a rate, use get_company_summary instead. Docs: https://www.apier.no/docs/mcp

Parametersbaserequireddatequoterequired

get_company_profile

Company profile (Brønnøysund)

Resolve a Norwegian organisasjonsnummer (9 digits) into a structured company profile from Brønnøysund Enhetsregisteret: display name, form of organisation, NACE codes with descriptions, addresses, the dates of registration and dissolution, the `active` / `dissolved` status enum, the MVA-registered flag, and the role CODES of persons — never personal identifiers. The backing REST route is POST /api/v1/brreg/company-profile. For deadlines and filing status, use get_company_summary instead; for the signaturrett / prokura role-code summary, use get_company_context instead. No sandbox mirror; it returns SANDBOX_TOOL_UNAVAILABLE under a sandbox bearer. Failure modes: NOT_FOUND, VALIDATION_FAILED; a credential without `read:brreg` can't see the tool; a call returns unknown tool (-32602). Cost: 50 øre (NOK 0.50) per call, prepaid (prices: the get_pricing tool or GET /api/v1/pricing; a shortfall returns INSUFFICIENT_CREDITS with top_up_url). Docs: https://www.apier.no/docs/guides/norwegian-company-register-search

Parametersorg_numberrequired

get_company_context

Company registry facts

Brønnøysund identity slice for a Norwegian organisation: legal name, form of organisation, NACE codes, addresses, the dates it was formed or dissolved, and the signaturrett / prokura role-code summary (never personal identifiers). Identity ONLY, no verdict on obligations; add get_company_obligations or get_company_deadlines for the regulatory layer. Failure modes: NOT_FOUND, UPSTREAM_TIMEOUT, VALIDATION_FAILED; a credential without `read:brreg` can't see the tool; a call returns unknown tool (-32602). For an obligations verdict, use get_company_summary instead; for NACE descriptions, use get_company_profile instead. No API key? Use Bearer apier_sandbox_test_<suffix> (a fresh suffix) to get fixtures; valid orgs are the 818, 99966 and 99977 series and 999000002 (see GET /api/v1/sandbox/fixtures). Cost: 50 øre (NOK 0.50) per call, prepaid (prices: the get_pricing tool or GET /api/v1/pricing; a shortfall returns INSUFFICIENT_CREDITS with top_up_url). Docs: https://www.apier.no/docs/guides/company-snapshot

Parametersorg_numberrequired

get_company_deadlines

Company filing calendar

The upcoming filing calendar for one organisation, horizon_months ahead. One entry per obligation and period: obligation_id (the rule_id of get_company_obligations; the public calendar uses other ids), period_label, due_at, adjusted_for with original_due_at, and filing_status. In the sandbox the dates are fixed and far ahead, and horizon_months is ignored; for a real window use get_public_deadlines. Failure modes: NOT_FOUND, VALIDATION_FAILED; a credential without `read:brreg` can't see the tool; a call returns unknown tool (-32602). For the verdict per obligation, use get_company_obligations instead. No API key? Use Bearer apier_sandbox_test_<suffix> (a fresh suffix) to get fixtures; valid orgs are the 818, 99966 and 99977 series and 999000002 (see GET /api/v1/sandbox/fixtures). Cost: 50 øre (NOK 0.50) per call, prepaid (prices: the get_pricing tool or GET /api/v1/pricing; a shortfall returns INSUFFICIENT_CREDITS with top_up_url). Docs: https://www.apier.no/docs/guides/norway-corporate-tax-return-deadline

Parametersorg_numberrequiredhorizon_months

get_company_obligations

Company regulatory obligations

Evaluate the Apier Rulebook for a Norwegian organisation: one entry per rule with rule_id, obligation_name, evaluation_result (applicable, not_applicable or insufficient_data), a reason, the legal_reference, frequency, data_tier_required and the bokmål description, which is inherited byte for byte (never re-translate it). Failure modes: NOT_FOUND, VALIDATION_FAILED; a credential without `read:brreg` can't see the tool; a call returns unknown tool (-32602). For the calendar alone, use get_company_deadlines instead; for the entity-type set that needs no org number or key, use get_public_obligations instead. No API key? Use Bearer apier_sandbox_test_<suffix> (a fresh suffix) to get fixtures; valid orgs are the 818, 99966 and 99977 series and 999000002 (see GET /api/v1/sandbox/fixtures). Cost: 50 øre (NOK 0.50) per call, prepaid (prices: the get_pricing tool or GET /api/v1/pricing; a shortfall returns INSUFFICIENT_CREDITS with top_up_url). Docs: https://www.apier.no/docs/guides/norwegian-company-obligations

Parametersorg_numberrequired

get_public_deadlines

Norwegian filing calendar (keyless)

Keyless. The universal Norwegian filing calendar: the deadlines for every Norwegian business in the covered categories (MVA, A-melding, Skattemelding, Årsregnskap), which do not depend on any one organisation. One entry per obligation and period for a single Europe/Oslo calendar year: a per-period obligation_id (such as `mva-termin-4-2026`; the company tools use rule ids such as `MVA_FILING_BIMONTHLY` instead), period, deadline (Europe/Oslo), submission_window_closes, adjusted_from (the legal date before a shift, else null), legal_reference and applies_to_entity_types. The output is deterministic for a given rulebook_version. The only input is an optional `year` (2020–2100; defaults to the current Oslo year). Failure modes: VALIDATION_FAILED on year shape; a credential without `read:rulebook` can't see the tool; a call returns unknown tool (-32602). For a specific company's calendar, use get_company_deadlines instead. Docs: https://www.apier.no/docs/guides/norway-corporate-tax-return-deadline

Parametersyear

explain_compliance_error

Explain a compliance error (keyless)

Keyless. Resolve a structured Apier compliance error code into a Norwegian-bokmål Explanation envelope: summary, bokmål why, ordered fix_steps, optional documentation link + legal_basis, and an optional handover block (who / where / what / why) for errors a human must resolve (e.g. AUTH_INSUFFICIENT_ROLE, AUTH_NO_DELEGATION, SCOPE_MISSING) — agent-resolvable errors ship `handover: null`. Accepts any code from the closed EXPLAINER_ERROR_CODES catalogue. Optional flat context_org_number / context_scope / context_role / context_field / context_upstream_system strings carry placeholder values interpolated into the bokmål text; missing values fall back to 'ukjent <noun>'. Failure modes: VALIDATION_FAILED on an unknown code; a credential without `read:rulebook` can't see the tool; a call returns unknown tool (-32602). For a company's live obligations rather than an error explanation, use get_company_obligations instead. Docs: https://www.apier.no/docs/guides/error-handling

Parameterserror_coderequiredcontext_rolecontext_fieldcontext_scopecontext_org_numbercontext_upstream_system

search_companies

Search companies by name

Resolve a Norwegian company NAME to its 9-digit organisasjonsnummer. Use this as your FIRST call whenever you have a company's name but NOT its org_number — every other company tool needs the number; guessing one risks the wrong company. Searches Brønnøysund's public Enhetsregisteret and returns up to ten candidates with five fields each (name, org_number, org_form, municipality, registry status). Then call get_company_summary or get_company_context with the chosen org_number. Input: { name } (2–100 chars, æ/ø/å supported). On NOT_FOUND, broaden the name and drop the legal form — never loop on the same name. Failure modes: VALIDATION_FAILED, NOT_FOUND, UPSTREAM_TIMEOUT / UPSTREAM_UNAVAILABLE; a credential without `read:brreg` can't see the tool; a call returns unknown tool (-32602). No sandbox mirror — the sandbox fixtures catalogue already lists every synthetic org. Docs: https://www.apier.no/docs/guides/norwegian-company-register-search

Parametersnamerequired

get_company_verification

Company verification status

Fast go / no-go trust check on a Norwegian counterparty organisation. It keys ONLY off entity activity and visible signing authority. `verification_status` is `pass` (active and signing authority visible), `fail` (not active: konkurs, avvikling or oppløst) or `unknown` (not determinable; never a claimed absence). `signing_authority_summary` lists roles, not the joint rule; for that use get_company_authority. Fails with NOT_FOUND, UPSTREAM_UNAVAILABLE or VALIDATION_FAILED; a credential without `read:brreg` can't see the tool; a call returns unknown tool (-32602). For identity call get_company_context. No API key? Use Bearer apier_sandbox_test_<suffix> (a fresh suffix) to get fixtures; valid orgs are the 818, 99966 and 99977 series and 999000002 (see GET /api/v1/sandbox/fixtures). Cost: 50 øre (NOK 0.50) per call, prepaid (prices: the get_pricing tool or GET /api/v1/pricing; a shortfall returns INSUFFICIENT_CREDITS with top_up_url). Docs: https://www.apier.no/docs/guides/norwegian-company-register-search

Parametersorg_numberrequired

get_company_authority

Company signing-authority resolver

The register's coded signing rules for this company, uninterpreted. Call get_company_verification first; this ignores bankruptcy and dissolution. The class (sole, joint, by_role, prokura_only, no_authority, unknown) comes from Fullmakttjenesten and the role holders; `coded_authority` (absent in sandbox) adds coded clauses and stamps. Statutory authority only. UPSTREAM_UNAVAILABLE, VALIDATION_FAILED; a credential without `read:brreg` can't see the tool; a call returns unknown tool (-32602). Altinn rights are not read (withdrawn); for roles use get_company_context, for a verdict use get_company_verification. No API key? Use Bearer apier_sandbox_test_<suffix> (a fresh suffix) to get fixtures; valid orgs are the 818, 99966 and 99977 series and 999000002 (see GET /api/v1/sandbox/fixtures). Cost: 50 øre (NOK 0.50) per call, prepaid (prices: the get_pricing tool or GET /api/v1/pricing; a shortfall returns INSUFFICIENT_CREDITS with top_up_url). Docs: https://www.apier.no/docs/guides/signature-rights-norwegian-company

Parametersorg_numberrequired

get_company_accounts

Company annual accounts snapshot

A current snapshot of a Norwegian company's annual accounts (årsregnskap) from the OPEN Regnskapsregisteret tier: `has_filed_annual_accounts` (null = unknown, never a fabricated false), `last_accounts_year` and that year's minimal `key_figures` (currency always surfaced, presentation basis, totals). No multi-year history. An unknown org_number returns 200 with `null`, not a 404. Failure modes: VALIDATION_FAILED; a credential without `read:brreg` can't see the tool; a call returns unknown tool (-32602). For a go/no-go verdict, use get_company_verification; for identity, use get_company_context. No API key? Use Bearer apier_sandbox_test_<suffix> (a fresh suffix) to get fixtures; valid orgs are the 818, 99966 and 99977 series and 999000002 (see GET /api/v1/sandbox/fixtures). Cost: 50 øre (NOK 0.50) per call, prepaid (prices: the get_pricing tool or GET /api/v1/pricing; a shortfall returns INSUFFICIENT_CREDITS with top_up_url). Docs: https://www.apier.no/docs/guides/norwegian-company-annual-accounts

Parametersorg_numberrequired

list_changes

Query the cross-source change archive

Read Apier's cross-source change archive — created / updated / deleted events detected across the upstreams Apier polls (Brønnøysund, Norges Bank, NAV, Skatteetaten Tier-2; the Digdir and Altinn schema pollers are retired, so `digdir` and `altinn` are valid but empty filters). Filter by { source, entity_type, entity_id, change_type } and a { from }–{ to } detected_at range. Queries WITHOUT entity_id withhold personal-field rows by design (`personal_fields_withheld: true`); the org-scoped form returns everything. Keyset-paginated newest-first: pass { limit } (1–500, default 50) and carry `next_cursor` back verbatim (HMAC-signed; an edited one is CURSOR_INVALID: start over without a cursor). Failure modes: VALIDATION_FAILED, CURSOR_INVALID; a credential without `read:changes` can't see the tool; a call returns unknown tool (-32602). No sandbox mirror; returns SANDBOX_TOOL_UNAVAILABLE under a sandbox bearer. Docs: https://www.apier.no/docs/guides/webhooks

Parameterstofromlimitcursorsourceentity_idchange_typeentity_type

get_altinn_migration_guidance

Altinn 2 → Altinn 3 migration guidance

Discover the Altinn 3 equivalent of an Altinn 2 service or role code. The 19 June 2026 Altinn 2 deprecation deadline has passed, so this serves remediation for integrations still on Altinn 2. Pass { altinn2_code } (alphanumeric, 1–10 chars, e.g. A0208) for one mapping, or omit it for the whole map. Every response carries the deprecation status computed in Europe/Oslo (deprecation_deadline, days_remaining, deadline_passed). Each entry ships a `verified` flag: gate any production migration on `verified === true`; unverified entries are hints. Deterministic static map (Digdir-sourced); no government system is contacted. Zero-auth REST twin: GET /api/v1/tools/altinn-migration. Failure modes: NOT_FOUND for a code not in the map, VALIDATION_FAILED (INVALID_CODE). Keyless: callable with no API key at all (per-IP limited); a credential without `read:digdir` can't see the tool (-32602). No sandbox mirror; a sandbox bearer runs this keyless path. Docs: https://www.apier.no/docs/guides/altinn-system-users

Parametersaltinn2_code

get_pricing

Apier price list (keyless)

Call this BEFORE metered work to check per-call cost and whether billing enforcement is live. Keyless: executes WITHOUT an API key, so an agent can price a workflow before it holds any credential. Returns the machine-readable price list: every credit-metered REST endpoint with its MCP tool name and cost in whole øre (always an integer), the enforcement.live flag (while false nothing is debited and a 402 is impossible), the 402 INSUFFICIENT_CREDITS recovery-contract field list, the top-up bounds with top_up_url, and the how_to_pay_guide URL. Prices derive from the SAME configuration the 402 meter debits, so this surface cannot drift from enforcement. Input: none — call with {}. Failure modes: per-IP rate limiting and transient errors only. For the calling key's own balance, use get_credit_balance (Bearer key required) instead. Docs: https://www.apier.no/docs/guides/billing

Takes no parameters.

get_credit_balance

Own prepaid credit balance

Call this BEFORE a batch of metered calls to confirm the calling key's prepaid credit balance covers it, and AFTER a 402 INSUFFICIENT_CREDITS + human top-up to verify the funds landed. The balance is ALWAYS the authenticated key's own — no parameters, so reading another key's balance is structurally impossible. Returns api_key_id, balance_ore (whole øre, always an integer), currency (NOK), updated_at (null = never topped up = balance 0), and top_up_url (hand it to a human). Affordability: cost_ore from get_pricing times planned calls versus balance_ore. Free, zero side effects. Failure modes: 401 without a key (NOT keyless: use get_pricing for keyless price discovery); a credential without `read:credits` (or `read:*`) can't see the tool; a call returns unknown tool (-32602); CREDIT_BALANCE_UNAVAILABLE (503, retryable; a money read is never fabricated). Under a sandbox bearer it returns SANDBOX_TOOL_UNAVAILABLE. Docs: https://www.apier.no/docs/guides/agent-payments

Takes no parameters.

redeem_issuance_token

Redeem an owner-issued key-issuance token (keyless)

Convert an owner-issued key-issuance token into your own API key — the headless onboarding step for an agent that holds no credential yet. Keyless: the one-time token IS the credential. Minting and revocation are dashboard-only, so an agent can never self-issue authority. Redemption is strictly SINGLE-USE and atomic: on success (201) the token is consumed and the result carries {id, name, scopes, created_at, plaintext_key} — returned EXACTLY ONCE; store it immediately. Failure modes: an expired / used / revoked / unknown token yields ONE uniform ISSUANCE_TOKEN_INVALID failure (ask the owner for a fresh token, never retry); MAX_KEYS_REACHED (409) means 3 active keys — the token was NOT consumed, retry with the SAME token after the owner revokes a key. After onboarding, use get_pricing to price metered work and get_credit_balance (with your new key) for the balance. No sandbox mirror; returns SANDBOX_TOOL_UNAVAILABLE under a sandbox bearer. Docs: https://www.apier.no/docs/authentication

Parameterstokenrequired

Version history

2
  1. v2026.10.0LatestOct 10, 2026
  2. v2026.8.1Sep 16, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts