Utvikler-API
Altinn for AI Agents
Gi agenten din Apiers MCP-server i stedet for å lære den norsk lov.
Hva er Altinn for AI-agenter?
Apier er et utviklerrettet API og en Model Context Protocol-server for AI-agenter som berører norsk regulatorisk infrastruktur: Altinn 3, Maskinporten og Brønnøysund som infrastruktur i stedet for noe agenten din bygger på nytt.
Lurer du på hvor grensen for en agent faktisk går? Hvordan kan AI-agenter trygt få tilgang til norske offentlige tjenester? går gjennom autoritetskjeden, delegeringen og hva agenten har lov til å gjøre uten at et menneske er involvert.
Og selve grunnlagsproblemet, altså hvor fakta kommer fra: Hvordan får AI-agenter norske selskapsfakta uten å hallusinere? forklarer hvorfor et oppslag slår en modellgjetning.
Hvorfor bør ikke agenten min bygge Altinn-integrasjonen selv?
Norsk regulatorisk infrastruktur er en lang integrasjon som endres hvert kvartal. Delene en agent enten må løse eller hoppe over:
- Autoritetskjeder. Signaturrett, prokura, daglig leder, styremedlemmer og scopene i Altinn System User-delegeringen avgjør hvem som lovlig kan handle for en virksomhet, og tilordningen er ikke åpenbar (prokura dekker kommersiell signering, men ikke skatteinnsending; signaturrett kan være bare i fellesskap).
- Legitimasjonens livssyklus. Virksomhetssertifikat, Maskinporten-klient og nøkkelpar, Altinn System Register-oppføring, delegering per virksomhet, på tvers av flere portaler og etater, hver med sin egen utløps- og rotasjonssyklus.
- Kvartalsvis regeldrift. MVA-kadens, revisjonsterskler og nyanser mellom organisasjonsformer (AS vs ENK vs NUF) skifter på Stortinget-syklusen. En agent som hardkoder reglene blir foreldet stille.
Hva gjør Apiers MCP-server for agenten?
Apier eksponerer sine MCP-verktøy over Model Context Protocol. Agenten din oppdager og kaller deterministiske verktøy: pliktavgjørelser, fristmatematikk, handleevneoppslag, prøveinnsending og Compliance Explainer. Hvert svar har samme form som det ville fått over REST. Under panseret gjør de samme åtte komponentene jobben:
- Auth Gateway. Maskinporten-client-assertion, mellomlagring av token og delegeringsflyten for Altinn 3 System User: én Bearer-nøkkel, og rå tokens eksponeres aldri.
- Registry Engine. Kanonisk selskapstilstand avstemt på tvers av Brønnøysund, Skatteetaten, Nav og Altinn.
- Universal Rulebook. Versjonerte regulatoriske regler med henvisninger i legal_reference; deterministisk evaluering, så samme inndata pluss regelbokversjon gir identisk utdata, byte for byte.
- Deadline Engine. MVA-terminer, kadens for A-melding, skattemelding, årsregnskap: kalendermatematikk i Europe/Oslo som tar hensyn til sommertid og helligdager.
- MCP Server. Alle verktøyene er tilgjengelige over Model Context Protocol på
/api/mcp, pakket som@apier-no/mcppå npm. - Intent-to-Action Parser. Handlingsforespørsler løses opp som prøveinnsending i dag; den bindende innsendingsstien i produksjon er låst og ennå ikke tilgjengelig. Valideringsporter kjøres før hvert kall oppstrøms, og innsending i produksjon vil kreve et godkjenningstoken til engangsbruk.
- AI-Agent Discovery.
llms.txt,llms-full.txt,workflows.json,/api/v1/capabilitiesog manifestene under well-known, hver flate for maskinoppdagelse fylt ut og stabil. - Compliance Explainer. Hver Apier-
error_codeløses opp til etexplanation-omslag på norsk bokmål (summary, why, fix_steps, legal_basis, handover) viaPOST /api/v1/explain.
Slik fungerer det
Etatene eksponerer rådata. Det som mangler, er laget som oversetter alt dette til ett deterministisk, maskinlesbart svar en integrasjon kan planlegge mot. Fire flater i bevegelse gjør direkte integrasjon dyr.
- Steg 01
Ett kall
Du kaller ett Apier-endepunkt med et organisasjonsnummer og en intensjon, ikke fire etater hver for seg.
- Steg 02
Autoritet løses
Apier avgjør hvem som kan handle for enheten, og henter selskapstilstand i sanntid fra Brønnøysund.
- Steg 03
Regler evalueres
Regelboken utleder pliktene og fristene deterministisk: samme inndata og regelbokversjon gir samme svar.
- Steg 04
Strukturert svar
Du får ett normalisert svar med en _meta-blokk som viser opphav, ferskhet og regelbokversjon.
Hvordan er agentens handlinger sporbare?
Når en agent handler, bevares den forensiske kjeden: hver API-respons hashes med SHA-256 inn i en provenienslogg som bare kan utvides, og hver regelevaluering tas vare på etter correlation_id med regelbokversjonen som gjaldt. Når en låst innsending i produksjon åpnes og returnerer en kvittering, lagres statens rå respons i det HMAC-signerte omslaget fra ende til ende. Hvem som autoriserte handlingen, hvilken regel som gjaldt, hva Apier returnerte, og hva staten bekreftet kan rekonstrueres fra én enkelt correlation_id, fra første kall og utover, uansett prisnivå.
Kodeeksempel
Slipp @apier-no/mcp inn i enhver MCP-kompatibel klientkonfigurasjon, og Apiers MCP-verktøy blir tilgjengelige. Samme avgjørelse er tilgjengelig over JSON-RPC og over ren REST.
{
"mcpServers": {
"apier": {
"command": "npx",
"args": ["-y", "@apier-no/mcp"],
"env": { "APIER_API_KEY": "apier_live_<your_key>" }
}
}
}// An MCP-compatible harness (Claude Desktop, Cursor, custom) calls the
// get_company_obligations tool over MCP JSON-RPC. Apier resolves it
// against the live Rulebook and returns the structured obligation set.
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "get_company_obligations",
"arguments": { "org_number": "991825827" }
},
"id": 1
}# The same verdict over REST, for any HTTP client.
curl -H "Authorization: Bearer apier_live_<your_key>" \
"https://www.apier.no/api/v1/company/991825827/obligations"Kildekode + issues: github.com/PowerLaunch/apier-mcp. Pakke: npmjs.com/package/@apier-no/mcp.
Hvor finner jeg API-referansen?
Hvert verktøy er tilordnet et dokumentert REST-endepunkt; den fullstendige referansen ligger i OpenAPI 3.1-spesifikasjonen, utviklerdokumentasjonen og MCP-integrasjonsguiden.
Hva gjør agenter med det?
- Svar på “hva må dette selskapet levere, og når?” uten at agenten lærer norsk skatterett.
- Avgjør om en gitt aktør kan ta en gitt handling før den forsøkes: handleevne over Altinn-delegeringsmodellen pluss registerrollene.
- Kjør en innsending som prøveinnsending i dag; den bindende innsendingen i produksjon (og den signerte kvitteringen du lagrer for revisjon) er låst og ennå ikke tilgjengelig.
Hvordan kommer jeg i gang?
Å koble til en agent er fire steg. MCP-verktøyene og REST-endepunktene gir de samme avgjørelsene, så du kan starte begge veier.
- Slipp
@apier-no/mcpinn i konfigurasjonen til MCP-klienten din (kodebiten over), eller pek HTTP-klienten din mot REST-flaten; hvert MCP-verktøy har en REST-motpart. - Prøv det mot sandkassen uten autentisering først. Kjør curl mot sandkassespeilet for syntetisk org
999999999, uten nøkkel og uten sertifikat. - Opprett en Apier-API-nøkkel, sett
APIER_API_KEY, og gi den scopene agenten din trenger: et lesescope (read:*) for kontekst,read:actionsfor å sende inn. - For å handle på et selskaps vegne, få det til å gi kontoen din en Altinn System User-delegering; agenten løser opp handleevne før hver låst handling.
Vanlige spørsmål
Fungerer Apier med Model Context Protocol (MCP)?
Ja. npm-pakken @apier-no/mcp faller inn i enhver MCP-kompatibel klient (Claude Desktop, Cursor, egne agentoppsett) via npx, og agenten din får Apiers MCP-verktøy (get_company_summary, get_company_obligations, get_company_deadlines, list_acting_capacity, check_authorization, validate_action, explain_compliance_error med flere) over den standard JSON-RPC-protokollen. Hvert MCP-verktøy har en REST-motpart, så du får de samme avgjørelsene begge veier, uten separat integrasjon.
Hva er forskjellen på å kalle Brønnøysund direkte og å gå gjennom Apier?
Brønnøysund returnerer rå rader fra selskapsregisteret: NACE-koder, signaturrett, prokura, status som oppløst. Apier returnerer de samme dataene pluss pliktavgjørelsen på tvers av etater: hvem som må levere MVA annenhver måned, hvem som trenger revisor ved årsslutt, hvis delegering snart utløper. Apier ligger på laget der regulatorisk tilstand fra Brønnøysund, Skatteetaten, Nav og Altinn 3 avstemmes til én kontekst en agent kan planlegge mot. Trenger du bare Tier 1-registerdata, er det rimelig å kalle Brønnøysund direkte; trenger agenten din å handle på de dataene, vipper integrasjonskostnaden mot Apier.
Kan agenten min sende inn skatt eller MVA på vegne av et norsk selskap?
Prøveinnsending kjører i dag via POST /api/v1/actions/execute?dry_run=true (mva_melding og a_melding). Bindende innsending i produksjon er derimot låst og ennå ikke tilgjengelig: Den venter på Maskinporten-produksjonsvalidering og godkjenning av Altinn-scope, og vil i tillegg kreve et godkjenningstoken til engangsbruk pluss en aktiv Altinn System User-delegering for virksomheten. Når den låste stien i produksjon åpnes, sender en vellykket innsending ut et HMAC-signert kvitteringsomslag du kan lagre for revisjon. Utførelsen er låst og deterministisk; en agent kan ikke omgå godkjenningssteget.
Hvorfor en MCP-server i stedet for å lære agenten min reglene?
Norske regulatoriske regler endres på Stortinget-syklusen: terskler, innleveringskadens og nyanser mellom organisasjonsformer skifter hvert kvartal. En agent som hardkoder dem blir foreldet stille. Apier leverer reglene som den versjonerte Universal Rulebook og eksponerer avgjørelsene som verktøy, så agenten resonnerer over gjeldende regler den aldri måtte lære. Samme inndata pluss regelbokversjon gir identisk utdata, byte for byte, og det gjør en agents beslutninger reproduserbare og reviderbare.
Trenger jeg separate Maskinporten-legitimasjoner for hvert selskap agenten min betjener?
Nei. Apier brokerer Maskinporten sentralt. Agenten din autentiserer med én Bearer-API-nøkkel; autoritet per selskap kommer fra Altinn System User-delegeringen det selskapet gir kontoen din. Hver delegering avgrenser hvilke API-er agenten din kan kalle på det selskapets vegne, og Apier løser opp riktig token ved forespørselstidspunkt uten å returnere det rå OAuth-tokenet til koden din. Ett virksomhetssertifikat, én Maskinporten-klient, N selskapsdelegeringer.
API-ene agenten din bruker
- Altinn API: delegeringer og innsending gjennom Altinn 3.
- Maskinporten API: den brokerte maskin-til-maskin-autentiseringen.
- Brønnøysund (BRREG) API: selskapsoppslag og verifisering.
- Altinn System User API: delegeringen per selskap som agenten handler under.
- Skatteetaten API: validering og innsending av MVA-melding.
- Filing History API: hva et selskap allerede har sendt inn.
- Webhooks API: varsler sendt til deg når regulatorisk tilstand endres.
- Dokumentasjon og Apier-forsiden.
Kom i gang
MCP-serveren er én npx unna, og sandkassen kan kjøres med curl uten registrering; dokumentasjonen dekker verktøyflaten, scopes og den låste utførelsesstien: prøveinnsending i dag, med bindende innsending i produksjon låst og ennå ikke tilgjengelig.