Skip to content

← API reference

Public tenders in the kommune and county, newest first

public_projects21 fields21 of these fields open in the demo
Source
Doffin (DFØ, NLOD 2.0) and TED (Tenders Electronic Daily), EU Publications Office
Geography
Municipality
Reported stale after
40 days
Access
Requires an API key granted this section
Contract version
1

What this does not say

Quoted verbatim from the section’s warnings field, exactly as the API returns it. They are not translated: a translation would show something other than what your response actually contains.

  • Procurement notices from the last 24 months: a project at the point where it is put out to tender, months before any work starts. Doffin carries every Norwegian notice, including the below-threshold ones TED never sees; TED carries those above the EEA threshold, and a TED notice Doffin forwarded appears once, as the Doffin notice, with ted_publication_number naming its TED copy.
  • Doffin places a notice no finer than its county (NUTS3 in nuts_codes), never at a kommune or street. match_basis says why a notice is here: buyer_in_kommune when the buyer is registered in this kommune (buyer_municipality_code is the buyer's registered address in Enhetsregisteret, which is where the buyer sits, not necessarily where the work is), place_of_performance_county when the notice names this county, buyer_post_code_in_kommune for TED, placed by the buyer's post code. Notices in the kommune come first. A county-level notice may concern the far side of the county.
  • notice_class reads the notice's own type: announcement (a competition), intention, planning, award, contract_change, award_cancelled or, for TED, correction. An award is a notice of its own and never replaces the announcement it follows. estimated_value is the buyer's own estimate in the currency stated, excluding VAT; a notice with no estimate leaves it empty.

Fields

7 of 21 fields are value fields — the ones that decide whether a record actually says anything. The rest are context: identifiers, codes and timestamps. Fields marked “open” return values to anonymous callers; the rest require a key.

FieldTypeRoleDemo
sourcestring | nullcontextopen
publication_numberstring | nullcontextopen
published_onstring | nullcontextopen
titlestring | nullvalueopen
notice_typestring | nullcontextopen
notice_classstring | nullvalueopen
contract_naturestring | nullcontextopen
buyer_namestring | nullvalueopen
buyer_org_numberstring | nullcontextopen
buyer_citystring | nullcontextopen
buyer_municipality_codestring | nullcontextopen
estimated_valuenumber | nullvalueopen
currencystring | nullcontextopen
deadlinestring | nullvalueopen
place_of_performancestring | nullvalueopen
nuts_codesarray<string> | nullcontextopen
cpv_codesarray<string> | nullcontextopen
match_basisstring | nullvalueopen
notice_urlstring | nullcontextopen
ted_publication_numberstring | nullcontextopen
updated_atstring | nullcontextopen

Fetch this section

curl -H "X-API-Key: $APPROACH_API_KEY" \
  "https://api.approach.no/api/v1/addresses/285717643?include=public_projects"

# paginated, one section at a time
curl -H "X-API-Key: $APPROACH_API_KEY" \
  "https://api.approach.no/api/v1/addresses/285717643/sections/public_projects?limit=25"

Try it now

This is a real call against the public demo, from here. What appears below is what the API returned — not a sample.