Public

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.

get/api/v1/public/company-status

Request

  • Base URL: https://www.apier.no
  • URL: https://www.apier.no/api/v1/public/company-status
  • Auth: none required

Query parameters

org_numbersstring required
Example:923609016,999999999

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.

successtrue required

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.