{"schema_version":"2026.10.0","server":{"name":"apier-no","version":"2026.10.0"},"tools":[{"name":"get_company_summary","title":"Company obligations and deadlines summary","description":"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","description_nb":"Ditt FØRSTE kall mot et selskap: entity_type, datanivå, forpliktelseskatalogen (bytevis lik get_company_obligations) og fristkalenderen i ett kall, fra én regelversjon. Ikke registeridentiteten: for navn, adresser og roller, bruk get_company_context i stedet. Krever read:brreg. Kostnad: 50 øre (NOK 0.50) per kall, forhåndsbetalt (priser: verktøyet get_pricing eller GET /api/v1/pricing; for lav saldo gir INSUFFICIENT_CREDITS med top_up_url).","inputSchema":{"type":"object","properties":{"org_number":{"type":"string","pattern":"^\\d{9}$","description":"9-digit Norwegian organisasjonsnummer (Brønnøysund ID); MOD-11-checked up-front — a failing value is rejected as VALIDATION_FAILED, so correct the number rather than retrying it.","examples":["818000006"]}},"required":["org_number"],"additionalProperties":false},"outputSchema":{"type":"object","description":"Rule 34 envelope; failures set result null + metadata.error_code / retryable / remediation. Contract: https://www.apier.no/docs/mcp","properties":{"result":{"type":["object","null"],"description":"The /summary composition: entity_type, nace_codes, mva_registered, data_tier, obligations[], deadlines[] (tier_2 adds filing_status), and (tier_1 only) upgrade_path. NOT the registry identity; call get_company_context for that."},"justification":{},"metadata":{},"_meta":{}},"required":["result","justification","metadata"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"icons":[{"src":"https://www.apier.no/logo.svg","mimeType":"image/svg+xml","sizes":["any"]}],"required_scope":"read:brreg","data_sources":["brreg","altinn","rulebook"],"_meta":{"examples":[{"description":"One-shot identity + obligations and deadlines summary for a Norwegian AS","input":{"org_number":"818000006"}}]}},{"name":"get_public_obligations","title":"Obligations by entity type (keyless)","description":"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","description_nb":"Nøkkelfritt. Oppdag de universelle forpliktelsene som gjelder for en gitt norsk selskapsform (AS, ENK, ANS, DA, NUF). Kun malnivå, så kall get_company_obligations for en vurdering per selskap som tar hensyn til kommersielle data (Tier 2). Forpliktelser med `tier_2_required: true` krever delegering før vurdering. For et konkret selskaps vurderte forpliktelser, bruk get_company_obligations i stedet.","inputSchema":{"type":"object","properties":{"entity_type":{"type":"string","enum":["AS","ENK","ANS","DA","NUF"],"description":"Norwegian organisational form (closed enum): AS / ENK / ANS / DA / NUF.","examples":["AS"]}},"required":["entity_type"],"additionalProperties":false},"outputSchema":{"type":"object","description":"Rule 34 envelope; failures set result null + metadata.error_code / retryable / remediation. Contract: https://www.apier.no/docs/mcp","properties":{"result":{"type":["object","null"],"description":"The universal obligation set for the entity type, before per-company Tier-2 data is layered on."},"justification":{},"metadata":{},"_meta":{}},"required":["result","justification","metadata"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"icons":[{"src":"https://www.apier.no/logo.svg","mimeType":"image/svg+xml","sizes":["any"]}],"required_scope":"read:rulebook","data_sources":["rulebook"],"_meta":{"examples":[{"description":"Baseline obligations for an Aksjeselskap (AS)","input":{"entity_type":"AS"}}]}},{"name":"get_exchange_rate","title":"Norges Bank exchange rate (keyless)","description":"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","description_nb":"Nøkkelfritt. Hent Norges Banks referansekurs for en valuta mot NOK. Inndata: { base, quote, date? } med koder etter ISO 4217, forankret i NOK: nøyaktig én side MÅ være 'NOK', ellers UNSUPPORTED_CURRENCY_PAIR. Svaret har alltid base NOK uansett rekkefølgen i kallet, og rate er NOK per 1 enhet av quote; date er dagen kursen gjelder for (helg og helligdag gir forrige virkedag). For forpliktelser eller frister i stedet for en valutakurs, bruk get_company_summary i stedet.","inputSchema":{"type":"object","properties":{"base":{"type":"string","pattern":"^[A-Za-z]{3}$","description":"Base currency — ISO 4217 three-letter code (case-insensitive). Exactly one of base/quote must be 'NOK'.","examples":["EUR","USD"]},"quote":{"type":"string","pattern":"^[A-Za-z]{3}$","description":"Quote currency — ISO 4217 three-letter code (case-insensitive). Exactly one of base/quote must be 'NOK'.","examples":["NOK"]},"date":{"description":"Optional ISO 8601 date (YYYY-MM-DD); omit for the latest published rate. Non-business days fall back to the prior business day.","examples":["2026-04-10"],"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"required":["base","quote"],"additionalProperties":false},"outputSchema":{"type":"object","description":"Rule 34 envelope; failures set result null + metadata.error_code / retryable / remediation. Contract: https://www.apier.no/docs/mcp","properties":{"result":{"type":["object","null"],"description":"The Norges Bank NOK reference rate, the date it is valid for, and the source attribution."},"justification":{},"metadata":{},"_meta":{}},"required":["result","justification","metadata"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"icons":[{"src":"https://www.apier.no/logo.svg","mimeType":"image/svg+xml","sizes":["any"]}],"required_scope":"read:norgesbank","data_sources":["norges_bank"],"_meta":{"examples":[{"description":"EUR→NOK reference rate (latest published)","input":{"base":"EUR","quote":"NOK"}}]}},{"name":"list_acting_capacity","title":"Acting capacity for a person","description":"Resolve every Norwegian regulatory action a person is currently authorised to perform on behalf of a specific organisation. Combines the actor's Altinn role assignments (DAGL, LEDE, MEDL, NESTL, INNH, REGN, REVI) with a conservative role-to-action map, returning the raw role list AND the derived action tokens an agent may pass to /v1/actions/execute (dry-run them first via validate_action), each with a lovdata legal_reference. Inputs: an 11-digit fødselsnummer / D-nummer — HMAC-hashed; the raw value is never persisted, logged or returned — plus the 9-digit organisasjonsnummer. Failure modes: VALIDATION_FAILED; a credential without `read:altinn` can't see the tool; a call returns unknown tool (-32602). For your own consumer's delegation snapshot, use check_authorization instead; for statutory signing authority with no actor input, use get_company_authority. No sandbox mirror; returns SANDBOX_TOOL_UNAVAILABLE under a sandbox bearer. Docs: https://www.apier.no/docs/guides/altinn-system-users","description_nb":"Finn hvilke regulatoriske handlinger en person kan utføre på vegne av et selskap: rollelisten og handlingstokenene med `legal_reference`, fra en konservativ tilordning fra rolle til handling. Inndata: fødselsnummer / D-nummer (HMAC-hashet, lagres aldri) + organisasjonsnummer. Krever read:altinn. For konsumentens egen delegeringsstatus, bruk check_authorization i stedet; for lovbestemt signaturrett, bruk get_company_authority.","inputSchema":{"type":"object","properties":{"fnr":{"type":"string","pattern":"^\\d{11}$","description":"11-digit Norwegian fødselsnummer / D-nummer of the actor. HMAC-SHA-256 hashed before any storage — the raw value is never persisted, logged, or returned.","examples":["12345678901"]},"org_number":{"type":"string","pattern":"^\\d{9}$","description":"9-digit Norwegian organisasjonsnummer of the represented entity.","examples":["999999999"]}},"required":["fnr","org_number"],"additionalProperties":false},"outputSchema":{"type":"object","description":"Rule 34 envelope; failures set result null + metadata.error_code / retryable / remediation. Contract: https://www.apier.no/docs/mcp","properties":{"result":{"type":["object","null"],"description":"The actor's raw Altinn role list plus the derived action tokens they may pass to /v1/actions/execute (dry-run first with the validate_action tool), each with a lovdata legal_reference."},"justification":{},"metadata":{},"_meta":{}},"required":["result","justification","metadata"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"icons":[{"src":"https://www.apier.no/logo.svg","mimeType":"image/svg+xml","sizes":["any"]}],"required_scope":"read:altinn","data_sources":["altinn-sandbox"],"_meta":{"examples":[{"description":"Which actions a person may perform on behalf of an org","input":{"fnr":"12345678901","org_number":"999999999"}}]}},{"name":"get_company_profile","title":"Company profile (Brønnøysund)","description":"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","description_nb":"Slå opp et organisasjonsnummer og få en selskapsprofil fra Enhetsregisteret: navn, organisasjonsform, NACE-koder, adresser, status og rollekoder, aldri personidentifikatorer. For frister og innleveringsstatus, bruk get_company_summary i stedet; for signaturrett-/prokuraoppsummeringen, bruk get_company_context i stedet. Krever read:brreg. Kostnad: 50 øre (NOK 0.50) per kall, forhåndsbetalt (priser: verktøyet get_pricing eller GET /api/v1/pricing; for lav saldo gir INSUFFICIENT_CREDITS med top_up_url).","inputSchema":{"type":"object","properties":{"org_number":{"type":"string","pattern":"^\\d{9}$","description":"9-digit Norwegian organisasjonsnummer (Brønnøysund Enhetsregisteret ID). Unlike the get_company_* tools, this input schema does NOT run the MOD-11 control-digit check — MOD-11 is enforced by the backing route, which returns ORG_NUMBER_INVALID_CHECKSUM (HTTP 400) when a well-formed 9-digit value fails it; correct the number rather than retrying the same one.","examples":["999999999"]}},"required":["org_number"],"additionalProperties":false},"outputSchema":{"type":"object","description":"Rule 34 envelope; failures set result null + metadata.error_code / retryable / remediation. Contract: https://www.apier.no/docs/mcp","properties":{"result":{"type":["object","null"],"description":"The Brønnøysund company profile: display name, organisasjonsform, NACE codes + descriptions, addresses, registration/dissolution dates, MVA flag, and person role codes (never personal identifiers)."},"justification":{},"metadata":{},"_meta":{}},"required":["result","justification","metadata"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"icons":[{"src":"https://www.apier.no/logo.svg","mimeType":"image/svg+xml","sizes":["any"]}],"required_scope":"read:brreg","data_sources":["brreg:enhetsregisteret"],"_meta":{"examples":[{"description":"Structured company profile for a Norwegian org number","input":{"org_number":"999999999"}}]}},{"name":"check_authorization","title":"Authorisation snapshot","description":"Return 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`. To check whether a SPECIFIC action is permitted, compare `active_scopes` to the scopes it requires. Always runs against the calling consumer. Always a 200: with no delegation the verdict is `status: \"none\"`, never a 404. Input: { org_number } (9 digits, MOD-11). Failure modes: VALIDATION_FAILED; a credential without `read:altinn` can't see the tool; a call returns unknown tool (-32602). For a SPECIFIC person's actions, use list_acting_capacity instead. Before a live execute, use validate_action to preflight at zero upstream cost. For the per-agent-principal breakdown, use check_fullmakt; for statutory signing authority, use get_company_authority. No sandbox mirror; returns SANDBOX_TOOL_UNAVAILABLE under a sandbox bearer. Docs: https://www.apier.no/docs/fullmakt","description_nb":"Hent autorisasjonsstatusen for konsumentens delegering i Altinn på et selskap: `status`, `active_scopes`, `missing_scopes` og `delegated_rights`. Svarer alltid 200, og ingen delegering gir `status: none`. For en bestemt persons handlinger, bruk list_acting_capacity i stedet; for nedbrytingen per agentprincipal, bruk check_fullmakt; for lovbestemt signaturrett, bruk get_company_authority. Krever read:altinn.","inputSchema":{"type":"object","properties":{"org_number":{"type":"string","pattern":"^\\d{9}$","description":"9-digit Norwegian organisasjonsnummer (passing MOD-11) the calling consumer's delegation is checked against.","examples":["999999999"]}},"required":["org_number"],"additionalProperties":false},"outputSchema":{"type":"object","description":"Rule 34 envelope; failures set result null + metadata.error_code / retryable / remediation. Contract: https://www.apier.no/docs/mcp","properties":{"result":{"type":["object","null"],"description":"The authorisation snapshot for the calling consumer's delegation on the organisation: status enum, missing_scopes, granted_scopes, and the delegation_chain breadcrumbs."},"justification":{},"metadata":{},"_meta":{}},"required":["result","justification","metadata"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"icons":[{"src":"https://www.apier.no/logo.svg","mimeType":"image/svg+xml","sizes":["any"]}],"required_scope":"read:altinn","data_sources":["altinn:authorization"],"_meta":{"examples":[{"description":"Is the calling consumer authorised on this org?","input":{"org_number":"999999999"}}]}},{"name":"get_company_context","title":"Company registry facts","description":"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","description_nb":"Hent Brønnøysund-identitetsdelen for en virksomhet: navn, organisasjonsform, NACE-koder, adresser og rolleoppsummeringen (kun koder). Uten etterlevelsesverdikt. For en etterlevelsesvurdering, bruk get_company_summary i stedet; for profilen med NACE-beskrivelser, bruk get_company_profile i stedet. Krever read:brreg. Kostnad: 50 øre (NOK 0.50) per kall, forhåndsbetalt (priser: verktøyet get_pricing eller GET /api/v1/pricing; for lav saldo gir INSUFFICIENT_CREDITS med top_up_url).","inputSchema":{"type":"object","properties":{"org_number":{"type":"string","pattern":"^\\d{9}$","description":"9-digit Norwegian organisasjonsnummer (Brønnøysund ID); MOD-11-checked up-front — a failing value is rejected as VALIDATION_FAILED, so correct the number rather than retrying it.","examples":["818000006"]}},"required":["org_number"],"additionalProperties":false},"outputSchema":{"type":"object","description":"Rule 34 envelope; failures set result null + metadata.error_code / retryable / remediation. Contract: https://www.apier.no/docs/mcp","properties":{"result":{"type":["object","null"],"description":"The Brønnøysund identity slice: legal name, organisasjonsform, NACE codes, addresses, incorporation/dissolution dates, and signaturrett/prokura role codes (never personal identifiers)."},"justification":{},"metadata":{},"_meta":{}},"required":["result","justification","metadata"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"icons":[{"src":"https://www.apier.no/logo.svg","mimeType":"image/svg+xml","sizes":["any"]}],"required_scope":"read:brreg","data_sources":["brreg"],"_meta":{"examples":[{"description":"Registry identity slice for a Norwegian AS (no obligations verdict)","input":{"org_number":"818000006"}}]}},{"name":"get_company_deadlines","title":"Company filing calendar","description":"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","description_nb":"Beregn den kommende innleveringskalenderen for et selskap, `horizon_months` (1 til 60) frem: én rad per (forpliktelse, periode) med `obligation_id` (samme rule_id som get_company_obligations), `period_label`, `due_at` i Europe/Oslo, `adjusted_for` med `original_due_at` og `filing_status`. Sandkassesvar har faste datoer langt frem i tid og ignorerer `horizon_months`; for et reelt vindu, bruk get_public_deadlines. Krever read:brreg. For vurdering per forpliktelse, bruk get_company_obligations i stedet. Kostnad: 50 øre (NOK 0.50) per kall, forhåndsbetalt (priser: verktøyet get_pricing eller GET /api/v1/pricing; for lav saldo gir INSUFFICIENT_CREDITS med top_up_url).","inputSchema":{"type":"object","properties":{"org_number":{"type":"string","pattern":"^\\d{9}$","description":"9-digit Norwegian organisasjonsnummer (Brønnøysund ID); MOD-11-checked up-front — a failing value is rejected as VALIDATION_FAILED, so correct the number rather than retrying it.","examples":["818000006"]},"horizon_months":{"description":"Look-ahead window in months (1–60). Omitted → the endpoint's default horizon (12).","examples":[12],"type":"integer","minimum":1,"maximum":60}},"required":["org_number"],"additionalProperties":false},"outputSchema":{"type":"object","description":"Rule 34 envelope; failures set result null + metadata.error_code / retryable / remediation. Contract: https://www.apier.no/docs/mcp","properties":{"result":{"type":["object","null"],"description":"The upcoming filing calendar: due_date (Europe/Oslo), legal_reference, recurring + business_day_adjusted per obligation×period."},"justification":{},"metadata":{},"_meta":{}},"required":["result","justification","metadata"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"icons":[{"src":"https://www.apier.no/logo.svg","mimeType":"image/svg+xml","sizes":["any"]}],"required_scope":"read:brreg","data_sources":["rulebook","brreg"],"_meta":{"examples":[{"description":"Next 12 months of filing deadlines for a Norwegian AS","input":{"org_number":"818000006","horizon_months":12}}]}},{"name":"get_company_obligations","title":"Company regulatory obligations","description":"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","description_nb":"Evaluer Apiers regelbok for et selskap: én rad per regel med `rule_id`, `obligation_name`, `evaluation_result` (applicable / not_applicable / insufficient_data), `reason`, `legal_reference` (lovdata.no) og bokmålsbeskrivelsen arvet bytevis. Krever read:brreg. For kun kalenderen, bruk get_company_deadlines i stedet; for settet uten API-nøkkel, bruk get_public_obligations i stedet. Kostnad: 50 øre (NOK 0.50) per kall, forhåndsbetalt (priser: verktøyet get_pricing eller GET /api/v1/pricing; for lav saldo gir INSUFFICIENT_CREDITS med top_up_url).","inputSchema":{"type":"object","properties":{"org_number":{"type":"string","pattern":"^\\d{9}$","description":"9-digit Norwegian organisasjonsnummer (Brønnøysund ID); MOD-11-checked up-front — a failing value is rejected as VALIDATION_FAILED, so correct the number rather than retrying it.","examples":["818000006"]}},"required":["org_number"],"additionalProperties":false},"outputSchema":{"type":"object","description":"Rule 34 envelope; failures set result null + metadata.error_code / retryable / remediation. Contract: https://www.apier.no/docs/mcp","properties":{"result":{"type":["object","null"],"description":"The full rule-engine evaluation: every applicable obligation with stable id, lovdata legal_reference, state enum, and bokmål description."},"justification":{},"metadata":{},"_meta":{}},"required":["result","justification","metadata"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"icons":[{"src":"https://www.apier.no/logo.svg","mimeType":"image/svg+xml","sizes":["any"]}],"required_scope":"read:brreg","data_sources":["rulebook","brreg"],"_meta":{"examples":[{"description":"Full obligation menu for a Norwegian AS as of now","input":{"org_number":"818000006"}}]}},{"name":"get_public_deadlines","title":"Norwegian filing calendar (keyless)","description":"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","description_nb":"Nøkkelfritt. Hent den universelle norske fristkalenderen for et gitt kalenderår (mva-terminer, A-melding, skattemelding, årsregnskap): per periode `obligation_id` (for eksempel `mva-termin-4-2026`), `deadline`, `submission_window_closes` og `adjusted_from`. Deterministisk og allerede flyttet frem forbi helger og norske helligdager. For et konkret selskaps fristkalender, bruk get_company_deadlines i stedet.","inputSchema":{"type":"object","properties":{"year":{"description":"Europe/Oslo calendar year the calendar should cover (2020–2100). Omitted → the current Oslo year at the endpoint.","examples":[2026],"type":"integer","minimum":2020,"maximum":2100}},"additionalProperties":false},"outputSchema":{"type":"object","description":"Rule 34 envelope; failures set result null + metadata.error_code / retryable / remediation. Contract: https://www.apier.no/docs/mcp","properties":{"result":{"type":["object","null"],"description":"The universal Norwegian filing calendar for one Europe/Oslo year, independent of any specific organisation."},"justification":{},"metadata":{},"_meta":{}},"required":["result","justification","metadata"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"icons":[{"src":"https://www.apier.no/logo.svg","mimeType":"image/svg+xml","sizes":["any"]}],"required_scope":"read:rulebook","data_sources":["rulebook"],"_meta":{"examples":[{"description":"The 2026 universal Norwegian filing calendar","input":{"year":2026}}]}},{"name":"validate_action","title":"Validate a regulatory action (dry-run)","description":"Dry-run a proposed regulatory action with NO upstream side effect (no government call). Use it BEFORE a live execute to catch missing delegations and payload-shape errors. Returns `outcome`: `all_passed` (boolean), five ordered `checks` (each with `passed` and a reason) and the DRY_RUN_DISCLAIMER (a pass is NOT a guarantee of upstream success), plus the preview echo `would_be_payload` + `preview_notice`. Inputs match the /v1/actions/execute body: { org_number, action_type (`mva_melding` | `a_melding`), period, payload }; the nested `payload` mirrors the upstream government payload schema, so it is not flattened. Failure modes: a credential without `read:actions` can't see the tool; a call returns unknown tool (-32602). VALIDATION_FAILED on invalid input. To file a sandbox VAT return, use submit_vat_return instead; under a sandbox bearer this tool returns SANDBOX_TOOL_UNAVAILABLE, and for a sandbox dry-run you call submit_vat_return without an approval_token. Docs: https://www.apier.no/docs/guides/mva-filing","description_nb":"Kjør Apiers validator for prøveinnsending mot en foreslått regulatorisk handling UTEN oppstrøms sideeffekt: `outcome.all_passed` med fem sjekker (`passed` per sjekk), DRY_RUN_DISCLAIMER og forhåndsvisningen `would_be_payload` + `preview_notice`. Bruk FØR utførelse i drift. Inndata: { org_number, action_type, period, payload }. Feilutfall: for en nøkkel uten `read:actions` vises ikke verktøyet i MCP, og et kall avvises som et ukjent verktøy (JSON-RPC -32602); VALIDATION_FAILED ved ugyldig inndata. For å levere en mva-melding i sandkassen, bruk submit_vat_return i stedet. Ingen sandkassespeil; under en sandkassenøkkel returneres SANDBOX_TOOL_UNAVAILABLE.","inputSchema":{"type":"object","properties":{"org_number":{"type":"string","pattern":"^\\d{9}$","description":"9-digit Norwegian organisasjonsnummer (passing MOD-11) the proposed action targets.","examples":["999999999"]},"action_type":{"type":"string","enum":["mva_melding","a_melding"],"description":"The regulatory action to dry-run — `mva_melding` (VAT return) or `a_melding` (employer report).","examples":["mva_melding"]},"period":{"type":"string","minLength":1,"maxLength":20,"description":"Reporting period. mva_melding: `YYYY-T1..T6` (bimonthly), `YYYY-A` (annual), or `YYYY-MM` (monthly). a_melding: `YYYY-MM`.","examples":["2026-T2"]},"payload":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"The upstream-shaped JSON payload for the action; the route's per-action discriminated Zod owns shape validation. Capped at 64 KiB UTF-8 here."}},"required":["org_number","action_type","period","payload"],"additionalProperties":false},"outputSchema":{"type":"object","description":"Rule 34 envelope; failures set result null + metadata.error_code / retryable / remediation. Contract: https://www.apier.no/docs/mcp","properties":{"result":{"type":["object","null"],"description":"The structured dry-run verdict: the overall `valid` boolean, the five check slots (each pass/fail/skipped with a reason), the DRY_RUN_DISCLAIMER, and the preview echo `would_be_payload` + `preview_notice`. No upstream side effect."},"justification":{},"metadata":{},"_meta":{}},"required":["result","justification","metadata"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"icons":[{"src":"https://www.apier.no/logo.svg","mimeType":"image/svg+xml","sizes":["any"]}],"required_scope":"read:actions","data_sources":["rulebook","altinn:authorization"],"_meta":{"examples":[{"description":"Dry-run a bimonthly VAT return before filing","input":{"org_number":"999999999","action_type":"mva_melding","period":"2026-T2","payload":{"total_revenue_nok":"500000.00","total_outgoing_vat_nok":"125000.00","total_incoming_vat_nok":"20000.00"}}}]}},{"name":"explain_compliance_error","title":"Explain a compliance error (keyless)","description":"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","description_nb":"Nøkkelfritt. Gjør en feilkode fra Apier om til en forklaringspakke på bokmål: sammendrag, begrunnelse, ordnede `fix_steps`, valgfri lenke og `legal_basis`, og en overleveringsblokk for feil et menneske må løse. Aksepterer alle koder i katalogen EXPLAINER_ERROR_CODES; flate `context_*`-felter bærer plassholderverdier. For et selskaps faktiske forpliktelser, bruk get_company_obligations i stedet.","inputSchema":{"type":"object","properties":{"error_code":{"type":"string","minLength":1,"description":"An Apier error code from an error envelope. Full list: apier://tools/explain_compliance_error/guide","examples":["VALIDATION_FAILED","AUTH_NO_DELEGATION"]},"context_org_number":{"description":"Organisation the error relates to (9 digits).","type":"string","pattern":"^\\d{9}$"},"context_scope":{"description":"Scope token interpolated into the bokmål explanation.","type":"string","minLength":1,"maxLength":64},"context_role":{"description":"Role code interpolated into the explanation.","type":"string","minLength":1,"maxLength":64},"context_field":{"description":"Field name interpolated into the explanation.","type":"string","minLength":1,"maxLength":64},"context_upstream_system":{"description":"Upstream system name interpolated into the explanation.","type":"string","minLength":1,"maxLength":64}},"required":["error_code"],"additionalProperties":false},"outputSchema":{"type":"object","description":"Rule 34 envelope; failures set result null + metadata.error_code / retryable / remediation. Contract: https://www.apier.no/docs/mcp","properties":{"result":{"type":["object","null"],"description":"The Explainer envelope: summary, bokmål why, ordered fix_steps, optional documentation link + legal_basis, and an optional human handover block."},"justification":{},"metadata":{},"_meta":{}},"required":["result","justification","metadata"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"icons":[{"src":"https://www.apier.no/logo.svg","mimeType":"image/svg+xml","sizes":["any"]}],"required_scope":"read:rulebook","data_sources":["explainer:rulebook"],"_meta":{"examples":[{"description":"Explain a VALIDATION_FAILED error in Norwegian bokmål","input":{"error_code":"VALIDATION_FAILED"}}]}},{"name":"search_companies","title":"Search companies by name","description":"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","description_nb":"Slå opp et selskaps organisasjonsnummer ut fra NAVNET, ditt FØRSTE kall når du har navnet, men ikke nummeret. Søker i Enhetsregisteret og returnerer inntil ti kandidater med fem felter hver. Velg riktig org_number og kall så get_company_summary eller get_company_context. Ved NOT_FOUND: utvid søket og utelat selskapsformen. Krever read:brreg.","inputSchema":{"type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":100,"description":"Company name to search for (2–100 characters, trimmed). Free-text; matched against Brønnøysund's registered `navn` field. Omit the legal form for a broader match (search `Nordic Widgets`, not `Nordic Widgets AS`) — a too-specific or misspelled name returns a NOT_FOUND you must broaden. Norwegian characters (æ/ø/å) are supported.","examples":["Nordic Widgets","Equinor"]}},"required":["name"],"additionalProperties":false},"outputSchema":{"type":"object","description":"Rule 34 envelope; failures set result null + metadata.error_code / retryable / remediation. Contract: https://www.apier.no/docs/mcp","properties":{"result":{"type":["object","null"],"description":"The /company/search projection: { query, count, candidates } — five fields per candidate (name, org_number, org_form, municipality, status). Pick an org_number, then call get_company_summary / get_company_context."},"justification":{},"metadata":{},"_meta":{}},"required":["result","justification","metadata"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"icons":[{"src":"https://www.apier.no/logo.svg","mimeType":"image/svg+xml","sizes":["any"]}],"required_scope":"read:brreg","data_sources":["brreg"],"_meta":{"examples":[{"description":"Resolve a company name to candidate org numbers","input":{"name":"Nordic Widgets"}}]}},{"name":"get_company_verification","title":"Company verification verdict","description":"Fast go / no-go trust check before you act for a Norwegian 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","description_nb":"Rask tillitssjekk (pass / fail / unknown) på et selskap før du handler på dets vegne: `pass` = aktiv med synlig signaturrett, prokura eller innehaver; `fail` = ikke aktiv; `unknown` = ubestemmelig eller uten synlig signaturforhold. `signing_authority_summary` lister rollene, ikke regelen for felles signering; for den, bruk get_company_authority i stedet. Krever read:brreg. Kostnad: 50 øre (NOK 0.50) per kall, forhåndsbetalt (priser: verktøyet get_pricing eller GET /api/v1/pricing; for lav saldo gir INSUFFICIENT_CREDITS med top_up_url).","inputSchema":{"type":"object","properties":{"org_number":{"type":"string","pattern":"^\\d{9}$","description":"9-digit Norwegian organisasjonsnummer (Brønnøysund ID); MOD-11-checked up-front — a failing value is rejected as VALIDATION_FAILED, so correct the number rather than retrying it.","examples":["818000006"]}},"required":["org_number"],"additionalProperties":false},"outputSchema":{"type":"object","description":"Rule 34 envelope; failures set result null + metadata.error_code / retryable / remediation. Contract: https://www.apier.no/docs/mcp","properties":{"result":{"type":["object","null"],"description":"The verdict: `verification_status` (pass / fail / unknown; `warn` reserved), the seven signals, Norwegian `summary`, `signing_authority_summary`, `last_accounts_year`, and the registry identity echo."},"justification":{},"metadata":{},"_meta":{}},"required":["result","justification","metadata"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"icons":[{"src":"https://www.apier.no/logo.svg","mimeType":"image/svg+xml","sizes":["any"]}],"required_scope":"read:brreg","data_sources":["brreg"],"_meta":{"examples":[{"description":"One-shot go/no-go verification verdict for a Norwegian AS","input":{"org_number":"818000006"}}]}},{"name":"get_company_authority","title":"Company signing-authority resolver","description":"Who can legally sign for this Norwegian company, and how? 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, not Altinn delegation. UPSTREAM_UNAVAILABLE, VALIDATION_FAILED; a credential without `read:brreg` can't see the tool; a call returns unknown tool (-32602). For a person's actions use list_acting_capacity; for your own delegation use check_authorization. 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","description_nb":"Svar på «hvem kan signere lovlig for dette selskapet, og hvordan?». Kall get_company_verification først: signaturretten gjenspeiler ikke konkurs eller oppløsning. Deterministisk signeringsklassifisering fra Fullmakttjenesten og rolleinnehaverne; `coded_authority` mangler i sandkassesvar. Ingen lovhjemmel påstås. For en persons handlinger, bruk list_acting_capacity; for konsumentens delegering, bruk check_authorization. Krever read:brreg. Kostnad: 50 øre (NOK 0.50) per kall, forhåndsbetalt (priser: verktøyet get_pricing eller GET /api/v1/pricing; for lav saldo gir INSUFFICIENT_CREDITS med top_up_url).","inputSchema":{"type":"object","properties":{"org_number":{"type":"string","pattern":"^\\d{9}$","description":"9-digit Norwegian organisasjonsnummer (Brønnøysund ID); MOD-11-checked up-front — a failing value is rejected as VALIDATION_FAILED, so correct the number rather than retrying it.","examples":["999999999"]}},"required":["org_number"],"additionalProperties":false},"outputSchema":{"type":"object","description":"Rule 34 envelope; failures set result null + metadata.error_code / retryable / remediation. Contract: https://www.apier.no/docs/mcp","properties":{"result":{"type":["object","null"],"description":"The /authority answer: a deterministic `classification`, `combinations[]`, the `signaturrett_holders` / `prokura_holders` lists, `kombinasjon_available`, and the stamp-honest `coded_authority` model over the mirrored clauses. No legal citation is asserted."},"justification":{},"metadata":{},"_meta":{}},"required":["result","justification","metadata"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"icons":[{"src":"https://www.apier.no/logo.svg","mimeType":"image/svg+xml","sizes":["any"]}],"required_scope":"read:brreg","data_sources":["brreg","fullmakttjenesten"],"_meta":{"examples":[{"description":"Who can legally sign for a Norwegian company, and how","input":{"org_number":"818000006"}}]}},{"name":"get_company_accounts","title":"Company annual accounts snapshot","description":"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","description_nb":"Øyeblikksbilde av et selskaps årsregnskap fra det ÅPNE Regnskapsregisteret: `has_filed_annual_accounts` (tri-state; `null` = ukjent), `last_accounts_year` og årets minimale `key_figures` (valuta alltid oppgitt). Ukjent organisasjonsnummer gir 200 med `null`, ikke 404. Krever read:brreg. Kostnad: 50 øre (NOK 0.50) per kall, forhåndsbetalt (priser: verktøyet get_pricing eller GET /api/v1/pricing; for lav saldo gir INSUFFICIENT_CREDITS med top_up_url).","inputSchema":{"type":"object","properties":{"org_number":{"type":"string","pattern":"^\\d{9}$","description":"9-digit Norwegian organisasjonsnummer (Brønnøysund ID); MOD-11-checked up-front — a failing value is rejected as VALIDATION_FAILED, so correct the number rather than retrying it.","examples":["999999999"]}},"required":["org_number"],"additionalProperties":false},"outputSchema":{"type":"object","description":"Rule 34 envelope; failures set result null + metadata.error_code / retryable / remediation. Contract: https://www.apier.no/docs/mcp","properties":{"result":{"type":["object","null"],"description":"The /accounts snapshot: `has_filed_annual_accounts` (tri-state), `last_accounts_year`, and that year's minimal `key_figures` (currency always surfaced, presentation basis, totals). Current-snapshot only."},"justification":{},"metadata":{},"_meta":{}},"required":["result","justification","metadata"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"icons":[{"src":"https://www.apier.no/logo.svg","mimeType":"image/svg+xml","sizes":["any"]}],"required_scope":"read:brreg","data_sources":["brreg"],"_meta":{"examples":[{"description":"Current annual-accounts snapshot for a Norwegian company","input":{"org_number":"818000006"}}]}},{"name":"get_company_filing_history","title":"Company filing history (Altinn) + Apier audit trail","description":"Reconcile 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`). Cursor-paginated ({ cursor } from `pagination.next_cursor`, { limit } 1–100). Simulated today (ALTINN_MODE=mock by default) until Digdir grants the `altinn:instances.read` Maskinporten scope and the operator sets ALTINN_MODE=live. AUTH_NO_DELEGATION, VALIDATION_FAILED; a credential without `read:altinn` can't see the tool; a call returns unknown tool (-32602). For upcoming deadlines, use get_company_deadlines 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/audit-inspection","description_nb":"Avstem innsendingshistorikken i Altinn 3 for et selskap mot innsendingene DIN konsument leverte via Apier, sammenstilt med `filed_via_apier` + `apier_record`. Markørbasert paginering via `cursor` (limit 1 til 100; `offset` er utfaset). Simulert i dag (ALTINN_MODE=mock er standard) til Digdir innvilger scopet altinn:instances.read i Maskinporten og operatøren setter ALTINN_MODE=live. Krever read:altinn. For kommende frister, bruk get_company_deadlines i stedet. Kostnad: 50 øre (NOK 0.50) per kall, forhåndsbetalt (priser: verktøyet get_pricing eller GET /api/v1/pricing; for lav saldo gir INSUFFICIENT_CREDITS med top_up_url).","inputSchema":{"type":"object","properties":{"org_number":{"type":"string","pattern":"^\\d{9}$","description":"9-digit Norwegian organisasjonsnummer (Brønnøysund ID); MOD-11-checked up-front — a failing value is rejected as VALIDATION_FAILED, so correct the number rather than retrying it.","examples":["999999999"]},"limit":{"description":"Page size 1–100 (route default 20).","examples":[20],"type":"integer","minimum":1,"maximum":100},"cursor":{"description":"Opaque continuation token from the previous page's `pagination.next_cursor` - the canonical way to page.","type":"string","minLength":1},"offset":{"description":"Zero-based offset (deprecated - use `cursor` instead).","type":"integer","minimum":0,"maximum":9007199254740991}},"required":["org_number"],"additionalProperties":false},"outputSchema":{"type":"object","description":"Rule 34 envelope; failures set result null + metadata.error_code / retryable / remediation. Contract: https://www.apier.no/docs/mcp","properties":{"result":{"type":["object","null"],"description":"The paired filing history: `data[]` Altinn instances (form code, title, agency, submitted_at, status, instance id) each with `filed_via_apier` + `apier_record` when Apier submitted it, plus a `pagination` block. No filings → empty `data[]`, not an error."},"justification":{},"metadata":{},"_meta":{}},"required":["result","justification","metadata"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"icons":[{"src":"https://www.apier.no/logo.svg","mimeType":"image/svg+xml","sizes":["any"]}],"required_scope":"read:altinn","data_sources":["altinn","internal-supabase"],"_meta":{"examples":[{"description":"Reconcile a company's Altinn filings against Apier submissions","input":{"org_number":"818000006"}}]}},{"name":"list_changes","title":"Query the cross-source change archive","description":"Read 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). 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","description_nb":"Les Apiers endringsarkiv: hendelser av typen created, updated og deleted fra kildene Apier poller (polleren for Digdir er avviklet, så `digdir` er et gyldig, men tomt filter). Filtrer på source, entity_type, entity_id, change_type, from og to; markørbasert paginering nyeste først (send `next_cursor` tilbake ordrett). Uten entity_id holdes personfeltrader tilbake med hensikt (`personal_fields_withheld`). Krever read:changes. Ingen sandkassespeil; under en sandkassenøkkel returneres SANDBOX_TOOL_UNAVAILABLE.","inputSchema":{"type":"object","properties":{"source":{"description":"Filter to one upstream source (e.g. brreg / altinn / digdir / norges_bank). Omit for all sources.","type":"string","enum":["brreg","altinn","digdir","norges_bank","nav","skatteetaten"]},"entity_type":{"description":"Filter to one entity type (e.g. annual_accounts, company).","type":"string","minLength":1,"maxLength":50},"entity_id":{"description":"Filter to one entity's change stream (e.g. a 9-digit org number).","examples":["999999999"],"type":"string","minLength":1,"maxLength":100},"change_type":{"description":"Filter to created / updated / deleted events.","type":"string","enum":["created","updated","deleted"]},"from":{"description":"Lower bound on detected_at (ISO 8601 with timezone offset).","examples":["2026-01-01T00:00:00Z"],"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"to":{"description":"Upper bound on detected_at; must be ≥ from.","type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"limit":{"description":"Page size 1–500 (route default 50).","examples":[50],"type":"integer","minimum":1,"maximum":500},"cursor":{"description":"Opaque signed cursor from a previous `next_cursor` — pass back verbatim.","type":"string","minLength":1}},"additionalProperties":false},"outputSchema":{"type":"object","description":"Rule 34 envelope; failures set result null + metadata.error_code / retryable / remediation. Contract: https://www.apier.no/docs/mcp","properties":{"result":{"type":["object","null"],"description":"The change page: `data[]` rows (source, entity_type, entity_id, change_type, detected_at, source_snapshot_id, observation_kind), a `pagination` block, and `personal_fields_withheld`. Ordered newest-first."},"justification":{},"metadata":{},"_meta":{}},"required":["result","justification","metadata"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"icons":[{"src":"https://www.apier.no/logo.svg","mimeType":"image/svg+xml","sizes":["any"]}],"required_scope":"read:changes","data_sources":["internal-supabase"],"_meta":{"examples":[{"description":"Recent Brønnøysund changes for one org since a date","input":{"source":"brreg","entity_id":"999999999","from":"2026-01-01T00:00:00Z"}}]}},{"name":"get_altinn_migration_guidance","title":"Altinn 2 → Altinn 3 migration guidance","description":"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); a credential without `read:digdir` 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/altinn-system-users","description_nb":"Finn det tilsvarende i Altinn 3 for en kode fra Altinn 2 (utfasingsfristen 19. juni 2026 er passert, så dette er nå utbedring). Send { altinn2_code } for én tilordning, eller utelat for hele listen. Baser produksjonsmigreringer på `verified === true`. Deterministisk statisk tilordning (Digdir som kilde). Nøkkelfri tvilling i REST: GET /api/v1/tools/altinn-migration. Krever read:digdir. Ingen sandkassespeil; under en sandkassenøkkel returneres SANDBOX_TOOL_UNAVAILABLE.","inputSchema":{"type":"object","properties":{"altinn2_code":{"description":"An Altinn 2 service or role code to resolve (alphanumeric, 1–10 chars, e.g. A0208). Omit to get the entire migration map.","examples":["A0208"],"type":"string","minLength":1,"maxLength":10,"pattern":"^[A-Za-z0-9]+$"}},"additionalProperties":false},"outputSchema":{"type":"object","description":"Rule 34 envelope; failures set result null + metadata.error_code / retryable / remediation. Contract: https://www.apier.no/docs/mcp","properties":{"result":{"type":["object","null"],"description":"The migration lookup: `deprecation_deadline` (Oslo), `days_remaining`, `deadline_passed`, and either one `entry` or the full `mappings[]`. Gate production migration actions on `verified === true`."},"justification":{},"metadata":{},"_meta":{}},"required":["result","justification","metadata"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"icons":[{"src":"https://www.apier.no/logo.svg","mimeType":"image/svg+xml","sizes":["any"]}],"required_scope":"read:digdir","data_sources":["digdir","internal-static"],"_meta":{"examples":[{"description":"Resolve one Altinn 2 code to its Altinn 3 equivalent","input":{"altinn2_code":"A0208"}}]}},{"name":"request_fullmakt","title":"Request a fullmakt (broker a systembruker delegation)","description":"Broker a fullmakt — scoped, revocable company→agent authority via an Altinn systembruker. Brokers and persists the delegation, binding the returned system_user_id write once onto the principal (pending to active); the company's signing authority must approve the returned `delegation_url` before it is usable. Non-empty `warnings[]` on a 201 means a local follow-up degraded: reconcile, never blind retry. Identical retries are dedup safe. Inputs: { agent_principal_id (YOUR OWN), org_number, scopes[], validity_days?, label? }. Agent principals cannot yet be created through the public API. Failure modes: FULLMAKT_PRINCIPAL_NOT_FOUND, FULLMAKT_PRINCIPAL_NOT_ELIGIBLE, FULLMAKT_UPSTREAM_FAILED, VALIDATION_FAILED; a credential without `read:altinn` can't see the tool; a call returns unknown tool (-32602). To inspect the recorded state, use check_fullmakt; to withdraw it, use revoke_fullmakt. No sandbox mirror; returns SANDBOX_TOOL_UNAVAILABLE under a sandbox bearer. Docs: https://www.apier.no/docs/fullmakt","description_nb":"Formidle en fullmakt: juridisk forankret, avgrenset og gjenkallelig myndighet fra selskap til agent via en systembruker i Altinn. Delegeringen formidles og lagres, og system_user_id knyttes én gang til principalen (`pending` blir `active`); selskapets signaturberettigede må godkjenne `delegation_url`. En `warnings[]` som ikke er tom på 201: avstem, gjenta aldri i blinde; identiske kall er idempotente. Agentprincipaler kan ennå ikke opprettes gjennom det offentlige grensesnittet. Lesesiden er check_fullmakt; tilbakekallingen er revoke_fullmakt. Krever read:altinn. Ingen sandkassespeil; under en sandkassenøkkel returneres SANDBOX_TOOL_UNAVAILABLE.","inputSchema":{"type":"object","properties":{"agent_principal_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"The agent principal (UUID) to bind this delegation to — one of YOUR OWN; an unknown or foreign id returns FULLMAKT_PRINCIPAL_NOT_FOUND.","examples":["11111111-1111-4111-8111-111111111111"]},"org_number":{"type":"string","pattern":"^\\d{9}$","description":"9-digit Norwegian organisasjonsnummer of the customer company granting the delegation. Plain 9 digits (no MOD-11 check), matching the route contract.","examples":["999999999"]},"scopes":{"minItems":1,"maxItems":100,"type":"array","items":{"type":"string"},"description":"The Altinn scopes the delegation should carry (e.g. `altinn:accessmanagement/authorizedparties.read`); at least one, each non-whitespace.","examples":[["altinn:accessmanagement/authorizedparties.read"]]},"validity_days":{"description":"Optional delegation validity window in days (1–3650; the 10-year cap matches Altinn's longest supported term). Omit to use the adapter default.","type":"integer","exclusiveMinimum":0,"maximum":3650},"label":{"description":"Optional consumer-supplied label for the delegation (dashboard display only; echoed back on the response).","type":"string","maxLength":255}},"required":["agent_principal_id","org_number","scopes"],"additionalProperties":false},"outputSchema":{"type":"object","description":"Rule 34 envelope; failures set result null + metadata.error_code / retryable / remediation. Contract: https://www.apier.no/docs/mcp","properties":{"result":{"type":["object","null"],"description":"The brokered delegation: `system_user_id`, `status`, `scopes`, `valid_until`, `delegation_url` (the approval link), the echoed `label`, the `agent_principal` snapshot, and `warnings[]` (empty on the clean path)."},"justification":{},"metadata":{},"_meta":{}},"required":["result","justification","metadata"]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"icons":[{"src":"https://www.apier.no/logo.svg","mimeType":"image/svg+xml","sizes":["any"]}],"required_scope":"read:altinn","data_sources":["altinn"],"_meta":{"examples":[{"description":"Broker a fullmakt binding an agent principal to a company delegation","input":{"agent_principal_id":"11111111-1111-4111-8111-111111111111","org_number":"999999999","scopes":["altinn:accessmanagement/authorizedparties.read"]}}]}},{"name":"check_fullmakt","title":"Check your fullmakt state for a company","description":"Check your fullmakt state for a Norwegian company BEFORE acting on its behalf. Per agent principal of yours holding a live delegation there it returns: the bound system_user_id, whether the delegation is `active` or still `pending` signaturrett approval, the scopes carried, and the scopes still missing. `overall_status`: `full` (act now), `partial` (`fix_steps` names the blocker), or `none` — a VALID answer, not an error: 200 with empty `principals[]`, never a 404. Reports the delegation state Apier RECORDED, not a live Altinn PDP decision. Input: { org_number } (9 digits). Failure modes: VALIDATION_FAILED; a credential without `read:altinn` can't see the tool; a call returns unknown tool (-32602). To BROKER a fullmakt use request_fullmakt; to withdraw one use revoke_fullmakt; the CONSUMER-level snapshot is check_authorization. No sandbox mirror; returns SANDBOX_TOOL_UNAVAILABLE under a sandbox bearer. Docs: https://www.apier.no/docs/fullmakt","description_nb":"Sjekk din fullmaktstilstand for et selskap FØR du handler på dets vegne. Per agentprincipal: system_user_id, `active` eller `pending` signaturrettsgodkjenning, scoper og mangler. `overall_status`: `full`, `partial` eller `none`, alltid et gyldig svar (200, aldri 404). For å FORMIDLE bruk request_fullmakt; for å trekke tilbake bruk revoke_fullmakt. Konsumentnivået rapporteres av check_authorization. Krever read:altinn. Ingen sandkassespeil; under en sandkassenøkkel returneres SANDBOX_TOOL_UNAVAILABLE.","inputSchema":{"type":"object","properties":{"org_number":{"type":"string","pattern":"^\\d{9}$","description":"9-digit Norwegian organisasjonsnummer of the customer company to check your fullmakt state for. Plain 9 digits (no MOD-11 check), matching the route contract.","examples":["999999999"]}},"required":["org_number"],"additionalProperties":false},"outputSchema":{"type":"object","description":"Rule 34 envelope; failures set result null + metadata.error_code / retryable / remediation. Contract: https://www.apier.no/docs/mcp","properties":{"result":{"type":["object","null"],"description":"The fullmakt state: `overall_status` (full/partial/none), `principals[]` (system_user_id, statuses, active/missing scopes, valid_until), Norwegian `fix_steps`, `last_checked`. LOCAL recorded state, not a live Altinn PDP decision."},"justification":{},"metadata":{},"_meta":{}},"required":["result","justification","metadata"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"icons":[{"src":"https://www.apier.no/logo.svg","mimeType":"image/svg+xml","sizes":["any"]}],"required_scope":"read:altinn","data_sources":["altinn"],"_meta":{"examples":[{"description":"Check which of your agent principals hold fullmakt for a company","input":{"org_number":"999999999"}}]}},{"name":"revoke_fullmakt","title":"Revoke a fullmakt (retire a delegation + its principal)","description":"Revoke a fullmakt — withdraw an agent's delegated authority for a Norwegian company and retire the agent principal. Given ONLY the agent_principal_id (system_user_id and org_number resolve server-side), Apier revokes the bound delegation and flips the principal to terminal `revoked`, never resurrected. Agent principals cannot yet be created through the public API; a new one comes from the account owner. LOCAL revocation is immediate in Apier's own check (recorded state, not an Altinn confirmation). Idempotent: revoking an already-revoked principal is a 200 no-op. `warnings[]` carries NAMED outcome tokens (principal_revoke_failed, delegation_not_found, upstream_revoke_unconfirmed): read the token. Failure modes: FULLMAKT_PRINCIPAL_NOT_FOUND, VALIDATION_FAILED; a credential without `read:altinn` 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/fullmakt","description_nb":"Tilbakekall en fullmakt og avvikle agentprincipalen. Gitt KUN agent_principal_id tilbakekaller Apier delegeringen og setter principalen til terminal `revoked`, som aldri gjenopprettes; agentprincipaler kan ennå ikke opprettes gjennom det offentlige grensesnittet, så be kontoeieren om en ny for å handle igjen. LOKAL tilbakekalling gjelder straks i Apiers egen kontroll (registrert tilstand, ikke en bekreftelse fra Altinn); idempotent (200 uten endring). `warnings[]` bærer navngitte utfallstoken. Krever read:altinn. Ingen sandkassespeil; under en sandkassenøkkel returneres SANDBOX_TOOL_UNAVAILABLE.","inputSchema":{"type":"object","properties":{"agent_principal_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"The agent principal (UUID) whose delegation to revoke — one of YOUR OWN; an unknown or foreign id returns FULLMAKT_PRINCIPAL_NOT_FOUND.","examples":["11111111-1111-4111-8111-111111111111"]},"reason":{"description":"Optional operator-facing reason, recorded on the audit row only. Send content or omit — an empty string is rejected.","examples":["Engagement ended"],"type":"string","minLength":1,"maxLength":500}},"required":["agent_principal_id"],"additionalProperties":false},"outputSchema":{"type":"object","description":"Rule 34 envelope; failures set result null + metadata.error_code / retryable / remediation. Contract: https://www.apier.no/docs/mcp","properties":{"result":{"type":["object","null"],"description":"The revocation outcome: `revoked: true`, the `agent_principal` snapshot, and `warnings[]` (empty on the clean path; NAMED tokens otherwise)."},"justification":{},"metadata":{},"_meta":{}},"required":["result","justification","metadata"]},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true},"icons":[{"src":"https://www.apier.no/logo.svg","mimeType":"image/svg+xml","sizes":["any"]}],"required_scope":"read:altinn","data_sources":["altinn"],"_meta":{"examples":[{"description":"Revoke a fullmakt and retire its agent principal","input":{"agent_principal_id":"11111111-1111-4111-8111-111111111111","reason":"Engagement ended"}}]}},{"name":"get_pricing","title":"Apier price list (keyless)","description":"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","description_nb":"Kall dette FØR målt arbeid for å sjekke prisen per kall og om kredittkontrollen er aktiv. Nøkkelfritt. Returnerer prislisten: hvert målte endepunkt med MCP-verktøynavn og kostnad i hele øre, enforcement.live, 402-gjenopprettingskontrakten og påfyllingsgrensene. Prisene er avledet fra samme konfigurasjon som 402-måleren. Inndata: ingen ({}). For nøkkelens egen saldo, bruk get_credit_balance i stedet.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"outputSchema":{"type":"object","description":"Rule 34 envelope; failures set result null + metadata.error_code / retryable / remediation. Contract: https://www.apier.no/docs/mcp","properties":{"result":{"type":["object","null"],"description":"The machine-readable price list: per-endpoint/tool costs in whole øre, enforcement.live, the 402 recovery-contract shape, top-up bounds, and the how_to_pay_guide URL."},"justification":{},"metadata":{},"_meta":{}},"required":["result","justification","metadata"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"icons":[{"src":"https://www.apier.no/logo.svg","mimeType":"image/svg+xml","sizes":["any"]}],"required_scope":"read:pricing","data_sources":["apier:pricing"],"_meta":{"examples":[{"description":"Fetch the current price list (no input, no API key needed)","input":{}}]}},{"name":"get_credit_balance","title":"Own prepaid credit balance","description":"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","description_nb":"Kall dette FØR målte kall for å bekrefte at nøkkelens forhåndsbetalte saldo dekker dem, og ETTER en 402 + påfylling. Saldoen er ALLTID den autentiserte nøkkelens egen (ingen parametre). Returnerer api_key_id, balance_ore (hele øre), currency, updated_at og top_up_url (gi den til et menneske). Gratis og uten bivirkninger. IKKE nøkkelfritt, så bruk get_pricing for nøkkelfri prisoppdagelse. Krever read:credits.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"outputSchema":{"type":"object","description":"Rule 34 envelope; failures set result null + metadata.error_code / retryable / remediation. Contract: https://www.apier.no/docs/mcp","properties":{"result":{"type":["object","null"],"description":"The authenticated key's own prepaid balance: api_key_id, balance_ore, currency, updated_at, top_up_url."},"justification":{},"metadata":{},"_meta":{}},"required":["result","justification","metadata"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"icons":[{"src":"https://www.apier.no/logo.svg","mimeType":"image/svg+xml","sizes":["any"]}],"required_scope":"read:credits","data_sources":["internal-supabase"],"_meta":{"examples":[{"description":"Check the calling key's remaining prepaid balance (no input)","input":{}}]}},{"name":"redeem_issuance_token","title":"Redeem an owner-issued key-issuance token (keyless)","description":"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","description_nb":"Veksle inn et eierutstedt nøkkelutstedelsestoken i din egen API-nøkkel, det hodeløse oppstartssteget. Nøkkelfritt: tokenet ER legitimasjonen; utstedelse skjer kun i dashbordet. Strengt ENGANGS: ved 201 returneres plaintext_key ÉN gang, så lagre den umiddelbart. Ugyldig token gir én uniform feil, ISSUANCE_TOKEN_INVALID; MAX_KEYS_REACHED (409) betyr 3 aktive nøkler (tokenet ble IKKE forbrukt). Etterpå: bruk get_pricing og get_credit_balance. Ingen sandkassespeil; under en sandkassenøkkel returneres SANDBOX_TOOL_UNAVAILABLE.","inputSchema":{"type":"object","properties":{"token":{"type":"string","minLength":1,"maxLength":256,"description":"The one-time key-issuance token the account owner minted in the Apier dashboard (Agent issuance tokens) and handed to you out-of-band. Single-use: it is consumed atomically on success. Never logged by Apier.","examples":["apr_issue_<token_from_the_account_owner>"]}},"required":["token"],"additionalProperties":false},"outputSchema":{"type":"object","description":"Rule 34 envelope; failures set result null + metadata.error_code / retryable / remediation. Contract: https://www.apier.no/docs/mcp","properties":{"result":{"type":["object","null"],"description":"The freshly issued API key: id, fixed name, read:* scopes, creation time, and the one-time plaintext_key."},"justification":{},"metadata":{},"_meta":{}},"required":["result","justification","metadata"]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"icons":[{"src":"https://www.apier.no/logo.svg","mimeType":"image/svg+xml","sizes":["any"]}],"required_scope":"read:onboarding","data_sources":["internal-supabase"],"_meta":{"examples":[{"description":"Redeem the owner-minted one-time token for your API key","input":{"token":"apr_issue_<token_from_the_account_owner>"}}]}}],"capabilities_url":"/api/v1/capabilities","openapi_url":"/openapi.json"}