How to check an agent's claims about a Norwegian company against the register
POST up to 20 claims about one company to /api/v1/company/{org}/claim-check and get, for each claim, matches, differs or not_found with the registered value, its source, the retrieval time and a check status. Never an overall verdict.
[Cite this as: Apier.no Docs v0.1.0 — last updated 2026-11-04]
An agent often holds facts about a company that came from somewhere else:
an invoice, an email, a web page, another model. Before it acts on them,
POST /api/v1/company/{org}/claim-check compares each claim with what the
register shows, field by field.
Each claim is answered on its own. There is no overall result, no score and no fraud wording: the answer is a record of the register, and the agent decides what to do with it.
Step 1 — Send the claims
curl -X POST -H "Authorization: Bearer $APIER_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: claims-2026-11-04-001" \
-d '{"claims":[
{"field":"name","value":"Nordic Widgets AS"},
{"field":"address","value":"Storgata 1, 0155 Oslo"},
{"field":"status","value":"active"},
{"field":"vat_registered","value":true},
{"field":"role","role_type":"board_chair","name":"Kari Nordmann"},
{"field":"signing_rule","clause":"signatur","value":"Styrets leder alene."}
]}' \
"https://www.apier.no/api/v1/company/999999999/claim-check"Send 1 to 20 claims. Each claim names one field of a closed set:
name,address: a stringvalue;status: one ofactive,deleted,bankrupt,forced_liquidation,liquidating;vat_registered:trueorfalse;role: arole_type(board_chair,deputy_chair,board_member,deputy_board_member,proprietor,signatory,procuration_holder) and the person'snameas written;signing_rule: theclausecolumn (signaturorprokura) and the claimed wording asvalue.
Any other field, an unknown key or a value of the wrong type is refused
with 400 VALIDATION_FAILED.
Step 2 — Read each result
data.results holds one entry per claim, in the order you sent them,
each with its index. With ?certificate=true the answer is wrapped in
a VerifyCertificate, so the entries are at data.result.results:
comparison:matches,differsornot_found(the register holds no value for the field). It isnullwhen the source could not be read or does not cover the claim;check_statusthen saysunavailableornot_checked. An unreadable source is never reported as a failed comparison.registered_value: what the register shows. A name comes back as{name}, an address as{postal_code, postal_place}only (never the street lines), a status as{status}and VAT as{vat_registered}.source,retrieved_atandcheck_statusfor every claim.
Step 3 — Roles and signing rules
A role claim is compared only against Apier's mirror of the register.
The answer never names a person: a match returns the registered
role_label, and otherwise you get how many holders that role type has
and which other role types the named person holds, if any. A company
outside the mirror answers not_checked for role claims.
A signing_rule claim returns the register's coded signing rules for the
company and the verbatim clause, exactly as
GET /api/v1/company/{org}/authority serves them. matches means the
claimed wording is the registered wording once case and punctuation are
ignored. The answer is never a verdict on authority; it is the rule as
registered.
Rules, privacy and billing
- Claimed values are used for the comparison only. They are never echoed in the answer or logged. The idempotency replay keeps the answer and a hash of the request; the answer holds register values only, so a matching name, for example, is kept as the registered name.
- A
200is billed as one company read, except a200where no claim could be compared (every claimunavailableornot_checked), which is refunded. A404, a403and a server error are refunded; a400validation error stays charged, as on the other metered company reads (see agent payments). Send anIdempotency-Keyso a retry after a lost response is answered from the first response and never debited twice. See pricing. ?certificate=truereturns the answer signed as a VerifyCertificate.- An unknown org number is
404 COMPANY_NOT_FOUNDonce Brønnøysund has answered. While Brønnøysund cannot be reached the answer is a200whose register claims areunavailable, which does not show that the company exists. - The endpoint needs an API key with the
read:brregscope. The sandbox mirror isPOST /api/v1/sandbox/company/{org}/claim-check.
How to find a Norwegian company's org number from its name or LEI
Call GET /api/v1/company/resolve with a company name (and optionally an address) for up to ten ranked org-number candidates with the evidence for each match, or with an LEI for the org number GLEIF maps it to.
How to check up to 10,000 Norwegian companies in one async job
Submit up to 10,000 org numbers with POST /api/v1/company/bulk-jobs, then read the paged results from GET /api/v1/company/bulk-jobs/{id}. Each answered item is billed once as one company read.