Public

Generic Norwegian business obligations by entity type

Zero-auth, deterministic, cacheable public endpoint. Returns the generic universal obligation set for a given Norwegian entity type — AS, ENK, ANS, DA, or NUF. This is the TEMPLATE layer: the response describes what obligations generally apply to the entity type, not whether any specific company's thresholds are currently tripped. For company-specific evaluation (e.g. "is THIS AS over the MVA threshold?") call the paid /v1/company/{org}/obligations endpoint instead.

The template is DATABASE-DRIVEN: getActiveRulesForEntity pulls every verified active rule for the entity type, the pure Rulebook evaluator runs them against a tier-1-only context, and a mapping layer projects each verdict onto the published UniversalObligation shape. Tier-2-gated rules surface as required: "conditionally" + tier_2_required: true. The response is deterministic — same (entity_type, Rulebook version) inputs produce byte-identical output — and _meta.rulebook_version / _meta.data_freshness carry the MAX last_verified across the rules that produced the response. Cache for up to an hour (the Rulebook changes on DB updates, and consumers can invalidate on the rulebook_version delta).

Key field: tier_2_required. Agents use it to plan ahead — when true, evaluating the obligation for a specific company needs Tier 2 commercial data (employee count, turnover, MVA registration). That in turn requires an Altinn delegation, so tier_2_required: true entries should trigger the request-delegation workflow before the evaluated endpoint can answer.

Another key field: required. Tri-state (always | conditionally | never). The Rulebook-driven endpoint emits always for rules with zero conditions and conditionally for every rule with at least one condition (Tier 1 or Tier 2); never remains a reserved value in the enum but is not currently produced because the Rulebook models entity-type exclusions by omission (a rule that doesn't apply to an entity type is simply absent from that type's rule set) rather than via an explicit "never" outcome. conditionally entries always carry a Norwegian condition description of the trigger; tier_2_required: true entries do too.

Entity types ANS, DA, and NUF currently return an empty obligations array with a notes entry indicating the templates are not yet published — future release.

Rate limiting: soft per-IP cap of 1000 requests per minute. Exceeding returns 429 with the standard RateLimitExceeded response.

get/api/v1/public/obligations

Request

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

Query parameters

entity_type'AS' | 'ENK' | 'ANS' | 'DA' | 'NUF' required
Example:AS

Norwegian entity-type code. One of: AS (aksjeselskap), ENK (enkeltpersonforetak), ANS (ansvarlig selskap), DA (delt ansvar), NUF (norskregistrert utenlandsk foretak).

Response

Generic obligation template set for the requested entity type. The _meta block reports served_from: "live" (every request hits Supabase for the rule set) and carries data_freshness / last_verified equal to the MAX last_verified across the rules that produced the response — a single CDN invalidation key.

successtrue required

Example response

{
  "data": {
    "obligations": [
      {
        "obligation_id": "mva-melding",
        "obligation_name": "MVA-melding",
        "condition": "Påkrevd når samlet omsetning overstiger 50 000 NOK i en 12-måneders periode.",
        "legal_reference": "Skatteforvaltningsloven § 8-3",
        "source_url": "https://lovdata.no/lov/2016-05-27-14/%C2%A78-3"
      }
    ]
  },
  "_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.