How to check how fresh Apier's sources are
Read the public source health endpoint: last successful fetch, lag, 30-day outage windows, coverage start and licence for every source Apier fetches on a schedule, with no API key.
[Cite this as: Apier.no Docs v0.1.0 — last updated 2026-10-31]
Before an agent relies on a fact, it can ask how fresh the source behind it
is. GET /api/v1/public/source-health answers that for every source Apier
fetches on a schedule, without an API key:
- the Brønnøysund update feeds (
brreg_update_feeds), - the two Brønnøysund bulk files (
brreg_bulk_enheter,brreg_bulk_underenheter), - Norges Bank exchange rates (
norges_bank_exchange_rates).
Every entry is built only from the fetch records Apier's scheduled jobs already write. Sources Apier reads live on each request (Regnskapsregisteret, Fullmakttjenesten) have no fetch record, so they are not listed.
Step 1 — Read every source
curl 'https://www.apier.no/api/v1/public/source-health'Each entry in data.sources carries:
health_status: exactly one ofverified,stale,unavailableornot_checked,last_success_atandlast_attempt_at,lag_seconds(time since the last success) andmax_lag_seconds(the lag the source's cadence allows),outages: the runs of failed fetches in the last 30 days,coverage_start: the first recorded successful fetch,licence: the licence the source's data is reused under.
Step 2 — Read the status
verified: the newest fetch succeeded and the lag is withinmax_lag_seconds.stale: the last success is older thanmax_lag_seconds.unavailable: the newest fetch failed. This is an outage at the source, never a failed check about a company.not_checked: no fetch record exists yet in this environment.
Apier claims nothing about a source from before its coverage_start.
Step 3 — Follow a check to its source
Every check in the company check bundle (GET /api/v1/company/999999999/checks)
carries source_health_url, the link to its source's entry, for example:
curl 'https://www.apier.no/api/v1/public/source-health?source=brreg_update_feeds'source_health_url is null for a check whose source has no fetch record
(the accounts register and the signing clause mirror are read live, and the
requirements check comes from Apier's own Rulebook).
The response is cached for 5 minutes and carries a strong ETag. An unknown
source or any other parameter is a 400 VALIDATION_FAILED.
How to check a receipt in the public receipt log
Every receipt Apier issues is logged as a hash in a public, append-only hash chain, anchored daily. Check that your receipt was logged, when, and that the log up to its daily anchor was not rewritten, with no API key.
Unified company snapshot in one call
Fetch verification status, roles, VAT, employer and risk for a Norwegian company in one request: one normalized object, no new government access.