orakel
Docs navigation

Canonical

GET /api/inspections

Mattilsynet food safety inspections (smilefjes). Cursor-paginated.

Updated 2026-04-21

Data source: Mattilsynet Smilefjes. Norwegian coverage only. Ratings are 0 (best) to 3 (worst).

Request

GET /api/inspections

Parameter Type Required Description
orgNumber string no Filter to one venue.
minRating integer no Inclusive. 0–3.
maxRating integer no Inclusive. 0–3.
postnr string no 4-digit Norwegian postal code.
fromDate ISO date no Inspections on or after this date.
toDate ISO date no Inspections on or before this date.
sort "date" | "totalRating" | "name" no Default date.
order "asc" | "desc" no Default desc.
limit integer no 1–100. Tier-capped. Default 20.
cursor string no Pagination cursor.

Response

{
  "data": [
    {
      "id": "clx...",
      "orgNumber": "912345678",
      "name": "Kaffebar AS",
      "postnr": "0150",
      "totalRating": 0,
      "date": "2026-02-14T00:00:00Z"
    }
  ],
  "nextCursor": "clx...",
  "hasMore": true
}

Rows also carry the inspection office, municipality, and the raw Mattilsynet inspection ID. Full field list in the source page.

Examples

curl

curl -H "Authorization: Bearer $ORAKEL_KEY" \
  "https://orakel.cloud/api/inspections?orgNumber=912345678&sort=date&order=desc"

JavaScript

const res = await fetch(
  "https://orakel.cloud/api/inspections?orgNumber=912345678",
  { headers: { Authorization: `Bearer ${process.env.ORAKEL_KEY}` } },
);
const { data, nextCursor, hasMore } = await res.json();

Error modes

Status Meaning Action
400 Invalid parameters Inspect details[]
401 Missing or invalid API key Check the Authorization header
429 Rate or quota exceeded Back off
500 Query failed Retry

Rate limits

Per-key RPM per tier. Cursor-depth guard applies.

Typical use cases

  • Restaurant-tech sales: filter by postal code and maxRating=0 to find top-rated venues.
  • Risk monitoring: watch for rating drops on portfolio venues.
  • Market sizing: count inspections by municipality and rating band.