Bulk company status for up to 100 organisation numbers
Zero-auth, cacheable Category A batch endpoint. Takes a comma-separated list of up to 100 Norwegian organisation numbers and returns one status row per unique number: registry status, entity type, VAT registration, the raw Brønnøysund distress flags (konkurs, under avvikling, under tvangsavvikling), municipality, NACE codes, and the open Regnskapsregisteret annual-accounts filing status. Nobody else in Norway offers keyless bulk company status — brreg.no and commercial lookups are single-company — which is WHY this exists: a portfolio of companies or an agent's watch-list resolves in one call instead of a hundred.
PERSONAL-DATA BOUNDARY (the load-bearing design constraint): this surface is anonymous, so it serves Tier-1 NON-PERSONAL fields ONLY, selected through an explicit server-side allowlist. Role-holder data — signaturrett, prokura, board members, innehaver, any named natural person — is structurally absent and will never be added to this endpoint; those fields require an authenticated, per-key rate-limited Category B call (GET /api/v1/company/{org}/context or /authority). If you need signing authority in bulk, iterate the authenticated endpoint with your API key.
Per-row fault isolation: one organisation failing never fails the batch. Each row carries lookup_status — ok (data present), not_found (authoritative Brønnøysund 404), or unavailable (upstream unreachable or timed out) — so a partial result is still a useful result. Lookups run with bounded concurrency and a per-organisation timeout server-side; requesting 100 numbers is safe.
Input rules (strict, no silent fallbacks): every token must be a 9-digit organisation number passing the Brønnøysund MOD-11 control-digit check (internal whitespace like 123 456 785 is tolerated); any malformed token, an empty list, or more than 100 entries returns 400 VALIDATION_FAILED naming the offending values. Duplicates are collapsed — each unique number appears exactly once, in request order.
Tri-state semantics: mva_registered, the distress flags, and has_filed_annual_accounts are true / false / null where null means genuinely unknown (the registry omitted the field or the cached row predates it) — never coerced to false.
Caching: responses carry a strong SHA-256 ETag and honour If-None-Match with 304 Not Modified; Cache-Control is public, max-age=300. _meta.data_freshness is the MAX cache timestamp across the resolved rows, so the response is deterministic for a given registry-cache state (same input + same data = same bytes = same ETag).
Rate limiting: soft per-IP cap of 1000 requests per minute (Category A — discovery is never hard-blocked). Exceeding returns 429 with the standard RateLimitExceeded response.
Request
- Base URL: https://www.apier.no
- URL: https://www.apier.no/api/v1/public/company-status
- Auth: none required
Query parameters
Comma-separated list of 1–100 Norwegian organisation numbers. Each must be exactly 9 digits and pass the Brønnøysund MOD-11 control-digit check; internal whitespace inside a number (the common 3-3-3 grouping) is tolerated. Duplicates are deduplicated server-side, preserving first-seen order. More than 100 entries is a 400 — split larger portfolios across calls.
Response
One row per unique requested organisation number, in request order. Rows with lookup_status of not_found or unavailable carry company: null — the batch never fails because one organisation did.
Example response
{
"_meta": {
"rulebook_version": "v1.0.0",
"source": "apier.no",
"data_source": "Brønnøysund Enhetsregisteret + Apier Universal Rulebook",
"schema_version": "1.0.0",
"legal_basis": "NLOD — public registry reuse",
"response_timestamp": "2026-04-24T12:00:00.000Z",
"response_hash": "sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
"source_snapshot_id": "brreg-2026-04-24T02:00:00.000Z",
"cost_nok": 0.5,
"wallet_remaining_nok": 9.5,
"spend_cap_remaining_nok": 12.5
}
}Changes
No recorded changes to this operation across all 1 revision of this API.