Tildelinger i norske offentlige anskaffelser som JSON: hvem som vant, hvilken oppdragsgiver, hvor mange tilbud som kom inn, og hva kontrakten ble verdt sammenlignet med estimatet. Til å velge hvilke konkurranser du byr på, prissette tilbudet mot den som har kontrakten i dag og følge konkurrentene. Kontrakter over EØS-terskelverdiene, fra TED.
buyer og et CPV-prefiks (cpv=45 er bygg og anlegg, 45233 er veibygging).nif) eller på navnet (supplier).bids_received på hver tildeling: en oppdragsgiver der kontraktene får ett tilbud er enten en åpning eller en lukket dør, og historikken viser hvilken.amount_eur mot amount_estimated_eur, der oppdragsgiveren har publisert et estimat.duration_months), gir tildelingsdato pluss varighet et anslag. Opsjoner på forlengelse står ikke i feltene.company_id knytter tildelingen til leverandørens selskapsprofil: status, roller og kunngjorte konkursåpninger.Tildelingene kommer fra TED eForms og gjelder kontrakter over EØS-terskelverdiene. Doffin er den nasjonale kunngjøringsdatabasen, og ifølge Direktoratet for forvaltning og økonomistyring (DFØ) er Doffin den eneste tillatte eSenderen i Norge og sender kunngjøringer over terskelverdi videre til TED (DFØ om de nye kunngjøringsskjemaene).
Det setter grensene for hva du kan se. Oppdragsgivere har plikt til å kunngjøre inngåtte kontrakter over EØS-terskelverdi (anskaffelsesforskriften § 21-6), men under terskelverdien er det ikke pålagt, og slike kontrakter er ikke med her. DFØ skriver dessuten at det for mange av konkurransene over EØS-terskelverdi som ble lyst ut i 2024, ikke er kunngjort noe resultat (DFØ om kunngjøring av kontrakt). At en tildeling mangler i API-et, betyr derfor ikke at ingen fikk kontrakten.
Tidsserien er også kort. Per oktober 2026 er tildelingene fra før 2024 få, og tettheten øker fram til i dag. Sjekk dekningen for perioden din med date_from og date_to før du bygger en tidsserie.
Eksempel: hvor mange av Statens vegvesens bygge- og anleggskontrakter siden 1. januar 2025 fikk bare ett tilbud, og hvor langt under estimatet ligger vinnerne? Rader flagget som tak i en rammeavtale (amount_is_ceiling) eller som mistenkelige (amount_suspect) holdes utenfor. Det samme kallet henter en konkurrents tildelinger på organisasjonsnummer.
import requests
BASE = 'https://api.prometiam.com/functions/v1/risk-api'
H = {'Authorization': 'Bearer rk_live_...'}
def tildelinger(**filter):
"""Alle tildelinger som passer filteret, nyeste først (2 kreditter per side på opptil 100)."""
cursor = None
while True:
p = {**filter, 'limit': 100, **({'cursor': cursor} if cursor else {})}
r = requests.get(f'{BASE}/procurement/awards', headers=H, params=p)
r.raise_for_status()
body = r.json()
yield from body['data']
cursor = (body.get('pagination') or {}).get('next_cursor')
if not cursor:
break
# Bygg og anlegg (CPV 45) hos Statens vegvesen: hvor mange fikk bare ett tilbud, og hvor langt under estimatet ligger vinnerne?
rader = [a for a in tildelinger(country='NO', buyer='Statens vegvesen', cpv='45', date_from='2025-01-01')
if not a['amount_is_ceiling'] and not a['amount_suspect']]
ett_tilbud = sum(1 for a in rader if a['bids_received'] == 1)
under = sorted(1 - a['amount_eur'] / a['amount_estimated_eur'] for a in rader
if a['amount_eur'] and a['amount_estimated_eur'])
print(len(rader), 'tildelinger,', ett_tilbud, 'med ett tilbud;',
f'median {under[len(under) // 2]:.1%} under estimatet' if under else 'ingen priser å sammenligne')
# En konkurrents tildelinger, på organisasjonsnummer (her Skanska Norge AS)
for a in tildelinger(country='NO', nif='943049467', date_from='2025-01-01'):
pris = None if a['amount_is_ceiling'] or a['amount_suspect'] else a['amount_eur']
print(a['award_date'], a['buyer'], pris, a['cpv'])
En rad er én tildeling til én leverandør. amount_eur er leverandørens andel slik den er publisert, uten mva der kilden skiller mellom beløp med og uten mva, og amount_contract_eur er hele kontrakten.
| Felt | Hva det betyr |
|---|---|
supplier_name, supplier_tax_id | Leverandørens navn og organisasjonsnummer slik kunngjøringen oppgir dem. supplier_id_scheme sier om det er et norsk organisasjonsnummer (ORGNR) |
buyer, buyer_id, buyer_city | Oppdragsgiver, oppdragsgiverens organisasjonsnummer og sted |
subject, cpv, contract_type | Hva som ble kjøpt: beskrivelse, CPV-kode og type (supplies varer, services tjenester, works bygg og anlegg) |
procedure, bids_received | Prosedyren (for eksempel open, restricted eller negotiated_with_publicity) og antall mottatte tilbud, der kunngjøringen oppgir det |
amount_eur, amount_contract_eur, amount_estimated_eur | Verdien leverandøren fikk, hele kontraktens verdi og oppdragsgiverens estimerte verdi, i euro. currency viser valutaen i kunngjøringen |
amount_is_ceiling, amount_suspect | Tak i en rammeavtale, og tall som ikke er en pris |
sme, duration_months | Om leverandøren er en liten eller mellomstor bedrift, og kontraktens varighet, der de er oppgitt |
award_date, source_url, file_reference | Tildelingsdato, lenke til kunngjøringen i TED og kunngjøringens referanse |
company_id | Leverandørens id på selskapsprofilen, satt når organisasjonsnummeret finnes i registeret og navnet stemmer |
De fleste tildelingene har bids_received, sme og company_id. Verdien (amount_eur) er ikke publisert på alle, og estimatet (amount_estimated_eur) og varigheten (duration_months) finnes bare på en del av dem. buyer_region er tom for Norge.
# En konkurrents tildelinger, på organisasjonsnummer (her Skanska Norge AS), de nyeste først curl 'https://api.prometiam.com/functions/v1/risk-api/procurement/awards?country=NO&nif=943049467&date_from=2025-01-01&limit=100' \ -H 'Authorization: Bearer rk_live_...' # En oppdragsgivers historikk i en kategori (her Statens vegvesen, bygg og anlegg) curl 'https://api.prometiam.com/functions/v1/risk-api/procurement/awards?country=NO&buyer=Statens%20vegvesen&cpv=45&date_from=2025-01-01&limit=100' \ -H 'Authorization: Bearer rk_live_...'
Minst ett av filtrene company_id, nif, supplier, buyer, cpv eller date_from er påkrevd; uten dem svarer API-et 400. buyer og supplier treffer hvor som helst i det publiserte navnet (minst tre tegn), og en kommune kan stå under flere navn, så bruk en kort, særegen del. buyer_id er oppdragsgiverens organisasjonsnummer, så du kan gruppere nøyaktig. Hvert kall koster 2 kreditter for opptil 100 tildelinger, de nyeste først, og du blar videre med next_cursor. min_amount (i euro) og date_to snevrer inn søket.
company_id er leverandørens id på selskapsprofilen; for Norge er den organisasjonsnummeret. Den er satt når organisasjonsnummeret finnes som selskap i registeret og det publiserte navnet stemmer, og tildelingen returneres uansett. GET /companies/{company_id} gir leverandørens status og roller ved siden av tildelingen, og med include=insolvency også kunngjorte konkursåpninger. Et selskapsoppslag koster 1 kreditt.
curl 'https://api.prometiam.com/functions/v1/risk-api/companies/943049467?include=insolvency' \ -H 'Authorization: Bearer rk_live_...'
Er leverandøren på vei ut av registeret, ser du det i status og local_status, og i hendelsene (GET /company-events/search, fra 14. oktober 2026). De tre siste godkjente årsregnskapene fra Regnskapsregisteret hører til Scale-planen (GET /companies/{id}/financials, 25 kreditter per selskap).
amount_is_ceiling er true. Hold slike rader utenfor prisanalyser.amount_suspect flagger tall som ikke er en pris, for eksempel standardverdier i skjemaet. En tunnelkontrakt med estimert verdi over 100 millioner euro har en tildelt verdi på under én euro og er flagget slik.currency viser valutaen kunngjøringen oppgir.source_url fører til den.Hvert kall mot /procurement/awards koster 2 kreditter og gir opptil 100 tildelinger; feil koster ingenting. Et års tildelinger fra én oppdragsgiver i en kategori er vanligvis noen få kall. Starter koster 9,99 € per måned med 1 000 kreditter, Professional 29,99 € med 10 000 kreditter og Scale 99,99 € med 50 000. Prøveperioden er 14 dager og 500 kreditter: betalingskort kreves, og ingenting belastes under prøveperioden. Deretter går du over til Starter (9,99 € per måned) hvis du ikke sier opp.
Tildelinger fra TED eForms, over EØS-terskelverdiene. Kunngjøringsplikten er beskrevet av DFØ på anskaffelser.no (oppdatert 21. april 2026).
Start din gratis prøveperiode på 14 dager · API-dokumentasjon
Prøveperioden varer i 14 dager og gir 500 kreditter. Betalingskort kreves, men ingenting belastes under prøveperioden; deretter går du over til Starter (9,99 € per måned) hvis du ikke sier opp.