Skip to content
Apier.no
Guides

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 of verified, stale, unavailable or not_checked,
  • last_success_at and last_attempt_at,
  • lag_seconds (time since the last success) and max_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 within max_lag_seconds.
  • stale: the last success is older than max_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.

Building with an LLM? Read llms.txt for agent-oriented integration guidance.