Business v1 / Achiziții publice
Contract detail
A whole public procurement contract: the authority, the winner, the subject, the value, the procedure and the dates. The id comes from the procurement listings and searches.
GET
https://oneapi.ro/api/business/v1/achizitii/{id}
Path parameters
NameTypeDescriptionExample
idrequired
string
Identifier of the public procurement contract in SEAP.
Query parameters
This route accepts no query parameters.
How it behaves
- A single public procurement contract, with all details: authority, winner, value, CPV, procedure, dates.
- Sums count each contract once, with each winner's share. SEAP republishes the award notice on every update (1.19 M contract rows are republications), repeats the contract value on every lot (0.52 M) and puts the value of the WHOLE framework agreement on every winner (228,000 rows). Read raw, the 2021–2026 contracts added up to 7,059 billion lei and Farmexim to 248 billion; corrected, 1,212 billion and 14.6. Impossible values (a 125.9-billion air-traffic simulator, 1.59 billion of dairy at a child-protection directorate) are left out of sums.
What it is for
- Showing a contract in full, starting from a search result.
- Checking the exact terms of a contested award.
- Citing a source in an article or a report.
Response structure
All fields below live inside data.
FieldTypeDescription
id
integer
The internal identifier.
an
integer
The reference year.
trim
integer
The reference quarter.
data_contract
string
The contract date.
autoritate
string
The authority that maintains the register.
autoritate_cui
integer
The tax ID of the contracting authority.
castigator
string
The winning company.
castigator_cui
integer
The winner's tax ID.
obiect
string
The contract subject, as published.
cpv
string
The CPV code of the subject.
valoare_ron
number | null
The value, in RON.
valoare_eur
number | null
The value, in euro.
moneda
string
The currency of the amount.
tip
string
The type.
tip_procedura
string
The award procedure type.
extra.DATA_ANUNT
string
The notice date, from the raw SEAP field.
extra.CPV_CODE_ID
string
The internal SEAP id of the CPV code.
extra.NUMAR_ANUNT
string
The notice number, from the raw SEAP field.
extra.NUMAR_CONTRACT
string
The contract number, from the raw SEAP field.
extra.TITLU_CONTRACT
string
The contract title, from the raw SEAP field.
extra.CASTIGATOR_TARA
string
The winner's country, from the raw SEAP field.
extra.CASTIGATOR_ADRESA
string
The winner's address, from the raw SEAP field.
extra.CASTIGATOR_LOCALITATE
string
The winner's locality, from the raw SEAP field.
extra.TIP_INCHEIERE_CONTRACT
string
How the contract was concluded, from the raw SEAP field.
cpv_denumire
string
The official name of the CPV code, from the nomenclature;
extra also keeps the form from the notice, with the revision in brackets.
valoare_ron_atribuita
What falls to this winner: the declared value divided by the winners of the same framework agreement;
null if the value is impossible or the row is a duplicate.
nr_castigatori
How many winners share the same contract (framework agreement); usually 1.
valoare_suspecta
true if the declared value is impossible; left out of sums.
duplicat
boolean
true if the row is already counted: an older publication of a contract SEAP republished, or the contract value repeated on another lot. Not listed and not summed.
Response examples
GEThttps://oneapi.ro/api/business/v1/achizitii/10330929
{
"data": {
"id": 10330929,
"an": 2020,
"data_contract": "2020-03-09",
"autoritate": {
"nume": "Spital General CF Sibiu",
"cui": 3096175
},
"castigator": {
"nume": "Medical Corp S.R.L.",
"cui": 10770287,
"cui_romanesc": true
},
"obiect": "Aparat aerosoli conform catalog",
"cpv": "24959100-2",
"cpv_denumire": "Aerosoli",
"valoare": {
"ron": 137,
"eur": 28.48,
"moneda_originala": "RON",
"atribuita_ron": 137,
"castigatori": 1,
"suspecta": false
},
"tip": "directe",
"procedura": "Cumparare directa",
"trim": 1,
"duplicat": false,
"extra": {
"DATA_ANUNT": "09.03.2020 14: 32: 52",
"CPV_CODE_ID": "11678",
"NUMAR_ANUNT": "DA25231029",
"NUMAR_CONTRACT": "DA25231029",
"TITLU_CONTRACT": "Achizitie aparat aerosoli",
"CASTIGATOR_TARA": "Romania",
"CASTIGATOR_ADRESA": "Strada: Lazăr Gheorghe, nr. 8, Sector: -, Judet: Sibiu, Localitate: Sibiu, Cod postal: 550165",
"CASTIGATOR_LOCALITATE": "Sibiu",
"TIP_INCHEIERE_CONTRACT": "Cumparare directa"
}
}
}
GEThttps://oneapi.ro/api/business/v1/achizitii/57979033
{
"data": {
"id": 57979033,
"an": 2026,
"data_contract": "2026-03-31",
"autoritate": {
"nume": "Teatrul Municipal Lucia Sturdza Bulandra",
"cui": 4220955
},
"castigator": {
"nume": "Mega Image",
"cui": 6719278,
"cui_romanesc": true
},
"obiect": "alimente - recuzita consumabila spectacol Mascariciul",
"cpv": "15000000-8",
"cpv_denumire": "Alimente, băuturi, tutun şi produse conexe",
"valoare": {
"ron": 81.27,
"eur": null,
"moneda_originala": null,
"atribuita_ron": 81.27,
"castigatori": 1,
"suspecta": false
},
"tip": "notificari",
"procedura": "Furnizare",
"trim": 1,
"duplicat": false,
"extra": {
"DENUMIRE CPV": "Alimente, bauturi, tutun si produse conexe (Rev.2)",
"DATA FINALIZARE": "2026-03-31",
"NUMAR NOTIFICARE": "DAN2717399",
"FINANTARE PRIN FONDURI COMUNITARE?": "Nu"
}
}
}
GEThttps://oneapi.ro/api/business/v1/achizitii/62628340
{
"data": {
"id": 62628340,
"an": 2021,
"data_contract": "2021-12-31",
"autoritate": {
"nume": "ORASUL NAVODARI",
"cui": 4618382
},
"castigator": {
"nume": "KADRA TECH",
"cui": 17696129,
"cui_romanesc": true
},
"obiect": "ACHIZITIE PARCOMETRE ORAS NAVODARI",
"cpv": "34927000-1",
"cpv_denumire": "Aparate de taxare",
"valoare": {
"ron": 135000,
"eur": null,
"moneda_originala": null,
"atribuita_ron": 135000,
"castigatori": 1,
"suspecta": false
},
"tip": "directe",
"procedura": null,
"trim": 4,
"duplicat": false,
"extra": {
"DENUMIRE_CPV": "Aparate de taxare (Rev.2)",
"STARE_ACHIZITIE": "Oferta acceptata",
"VALOARE_ESTIMATA_RON": "135000",
"NUMAR_ACHIZITIE_DIRECTA": "DA29710776",
"DATA_PUBLICARE_ACHIZITIE": "12/31/2021"
}
}
}
Error codes
| Code | Slug | When it occurs |
|---|---|---|
| 401 | neautentificat | Token missing, invalid, expired or revoked. |
| 403 | feature_indisponibil | The current plan does not include the feature the route depends on. |
| 404 | negasit | The contract [{id}] does not exist. |
| 422 | validare | The route takes no parameters apart from lang: any other parameter returns 422 instead of being ignored. |
| 429 | cota_depasita | The plan's monthly quota has been exceeded (see Retry-After). |
All errors share the same shape. eroare.cod is stable and is the value you should branch on in code — not the text in mesaj, which may change.
{
"eroare": {
"cod": "validare",
"mesaj": "The route takes no parameters apart from lang: any other parameter returns 422 instead of being ignored.",
"detalii": {
"id": [
"The value sent does not satisfy the parameter rule."
]
}
}
}