Unified company snapshot in one call
Fetch verify + roles + VAT + employer + risk for a Norwegian company in a single request — one normalized object composed from the existing endpoints, partial-failure tolerant, no new government access.
[Cite this as: Apier.no Docs v0.1.0 — last updated 2026-07-18]
The snapshot endpoint orients you on a Norwegian company in one round-trip
instead of chaining /verify → /authority → /context. It returns a single
normalized object with five sub-sections — verify, roles, vat, employer,
and risk — each composed from the same handlers the dedicated endpoints
use. There is no new government access: the only upstreams touched are the
ones /context and /authority already touch (Brønnøysund, NAV Aa-registeret,
Fullmakttjenesten).
Request
curl -H "Authorization: Bearer apr_free_<your_key_here>" \
"https://apier.no/api/v1/company/999999999/snapshot"Requires an API key with the read:brreg scope — the same scope as /verify,
/authority, and /context. A non-9-digit org number returns
400 VALIDATION_FAILED before any data is loaded.
Response
Each of the five sub-objects is a small discriminated union. On success it
carries status: "ok" plus its fields; if that one sub-source could not be
composed it carries status: "degraded" (see Partial failure
below).
{
"success": true,
"data": {
"org_number": "999999999",
"name": "Eksempel AS",
"entity_type": "AS",
"verify": {
"status": "ok",
"verification_status": "pass",
"signals": {
"is_active": true,
"not_bankrupt": true,
"not_under_dissolution": true,
"not_forcibly_dissolved": true,
"has_signing_authority_defined": true,
"has_filed_annual_accounts": true,
"mva_registered": true
},
"summary": "Selskapet er aktivt registrert i Enhetsregisteret ..."
},
"roles": {
"status": "ok",
"classification": "sole",
"summary": "Én rolle kan signere alene for selskapet.",
"signaturrett_holders": [{ "role": "Daglig leder", "name": "Ola Nordmann" }],
"prokura_holders": [],
"kombinasjon_available": true
},
"vat": { "status": "ok", "mva_registered": true },
"employer": { "status": "ok", "available": true, "active_count": 12, "reason": null },
"risk": {
"status": "ok",
"level": "clear",
"distress_flags": [],
"basis": "brreg_distress_signals",
"summary": "Ingen konkurs-, avviklings- eller tvangsavviklingsflagg ..."
},
"composed_at": "2026-01-15T09:00:00+01:00"
},
"_meta": { "...": "..." }
}What each sub-object means
| Sub-object | Source | Notes |
|---|---|---|
verify | Same reducer as /verify | The deterministic pass / fail / unknown verdict plus its seven tri-state signals. |
roles | Same resolver as /authority | Signing classification (sole / joint / by_role / prokura_only / no_authority / unknown) plus the holders. kombinasjon_available: false is a holders-only degraded classification, still status: "ok". |
vat | Tier-1 Brønnøysund | mva_registered is tri-state (true / false / null), never coerced. |
employer | NAV Aa-registeret | available: false with a reason when the caller has no NAV delegation — this is a normal status: "ok" outcome, not a degraded sub-object. |
risk | Computed-thin from verify | A transparency-only clear / elevated / unknown level reduced from the Brønnøysund distress signals (konkurs / avvikling / tvangsavvikling). Not a credit score. |
Partial failure
The five sub-sources are composed independently. If one sub-source throws
while composing, only its field degrades — the other four stay populated and
the call still returns 200:
{
"success": true,
"data": {
"roles": { "status": "degraded", "error": "roles sub-source could not be composed for this snapshot" },
"verify": { "status": "ok", "verification_status": "pass", "...": "..." },
"vat": { "status": "ok", "...": "..." },
"employer": { "status": "ok", "...": "..." },
"risk": { "status": "ok", "...": "..." }
},
"_meta": { "...": "..." }
}Branch on each sub-object's status before reading its fields. The error
string is deliberately generic — it never leaks upstream detail.
The base company facts are the one hard prerequisite: if the organisation does
not exist in Brønnøysund you get 404, and if Brønnøysund is unreachable with no
serviceable cache you get 503 — exactly like the sibling company endpoints.
When to use it
Reach for /snapshot when an agent needs a fast, all-round picture before
deciding what to do — a due-diligence pass, a pre-action trust check, or
populating a company overview. When you need just one facet (only the verdict,
only the signing authority), call the dedicated endpoint — /verify,
/authority, or /context — and skip the sub-sources you don't need.
How to verify an apier certificate
Request a signed verification certificate with ?certificate=true, then verify its detached JWS offline against the public JWKS — what's signed, what each field means, and a copy-paste verification script.
Webhook subscriptions
Subscribe to change-archive deltas via signed HTTPS webhooks. SSRF-resistant, exponential-backoff retries, HMAC-SHA256 verification.