Orakel Docs
Data sources

Doffin

Norwegian public procurement notices — tenders and contract awards.

Source attribution

Source: Doffin (Database for offentlige innkjøp — Digitaliseringsdirektoratet)
Data: Public procurement notices (tenders and contract awards) for Norwegian government and public-sector buyers
License: NLOD 2.0 (Norwegian Licence for Open Government Data)
Attribution required: Yes — credit "Doffin" or "Database for offentlige innkjøp"
Link: https://www.doffin.no
Update cadence: Daily incremental sync

What it is

Doffin is Norway's central database for public-sector procurement. Every notice published by a Norwegian buyer above the relevant threshold — and many below it — appears here, from initial tender through contract award. Larger procurements also cross-publish to TED (the EU's Tenders Electronic Daily).

Orakel ingests notices daily and links each one to the buyer's company record by orgNumber where possible. Each notice keeps its full upstream payload in rawData so downstream consumers can look up fields Orakel hasn't modelled natively.

Fields provided

FieldTypeNotes
noticeIdstringDoffin's stable identifier. Unique.
orgNumberstringBuyer's 9-digit org number when Doffin supplied it in matchable form; null otherwise. See gotchas.
contractingAuthoritystringBuyer name as published
titlestringNotice heading
descriptionstringLong-form notice text
cpvCodesstring[]CPV (Common Procurement Vocabulary) codes describing the goods or services
noticeTypestringe.g. tender notice, contract award, prior information notice
estimatedValuefloatEstimated contract value as published
currencystringCurrency of estimatedValue
publishedDatedateWhen Doffin first published
issueDatedateWhen the buyer issued the notice
deadlinedateSubmission deadline for tenders
locationIdsstring[]NUTS or municipality codes for the place of performance
statusstringUpstream status (active, awarded, cancelled, etc.)
rawDatajsonFull upstream payload for anything not modelled above
syncedAtdatetimeLast time Orakel refreshed the notice
urlstringDirect link to the notice on doffin.no. Derived from noticeId (pattern: https://www.doffin.no/notices/{noticeId}), not stored. Present on API responses, not on the DB row.

Note: procurement notices are not keyed on (country, orgNumber) in the Orakel schema — they have their own noticeId primary identifier and reference the buyer's orgNumber as a plain string column.

Endpoints that surface this data

  • GET /api/procurement — cursor-paginated search over all notices. Supported filters: orgNumber, q (free-text in title), cpvCode, noticeType, status, minValue, maxValue, deadlineAfter. Sort and order configurable.

Limitations

  • Buyer matching is best-effort. Doffin publishes buyer org numbers in a range of formats; Orakel normalises spaces and validates the 9-digit shape, but notices that fail validation keep orgNumber = null.
  • Supplier-side matching (who won a contract award) isn't modelled as a relation on the notice. Where the information exists it sits inside rawData.
  • Historical depth depends on Doffin's own archival. Expect reliable coverage for roughly the last three to five years.
  • Notices and awards are separate records. A single procurement typically produces a tender notice and, later, one or more award notices — join them via rawData or the buyer and title if you need the full arc.

Gotchas

  • Doffin org IDs sometimes arrive with embedded spaces — "940 101 808" — which Orakel strips at import. If you're comparing raw Doffin exports to Orakel records, normalise spaces first.
  • Larger procurements also appear in TED (the EU-wide procurement database). The TED identifier is typically available inside rawData; Orakel doesn't expose it as a first-class field.
  • estimatedValue reflects the buyer's estimate at publication time. The actual contract value in the eventual award notice can differ substantially — don't treat the estimate as a forecast.
  • status values come straight from Doffin. They aren't a closed enum; new statuses can appear without a schema change.

On this page