Government bond auctions
The results of issuance auctions: how much was announced, how much was bid, how much was allotted and at what yield, price or discount. 1,834 auctions since April 2005, with the NBR's 34 fields translated into named structures.
The source's codes read along two axes, and that is where the shape of the response comes from: cerere is what was bid, adjudecat is what was accepted, each with the nominal value and the net cost, broken down into competitive bids (own account / clients' account) and non-competitive ones.
The currency is NOT published in this series. Unlike the exchange series, issues have no denomination field. And the series almost certainly contains euro-denominated issues too: 118 auctions (6.4%) have a yield far below the median of their month — 21 August 2026 gives 3.23% and 3.97% in the same week in which the rest are allotted at 6.7%. Almost certainly is not a figure you put in a field, so the route does not invent a moneda and sums nothing across auctions. Whoever adds them up, adds them up knowing.
The first nine auctions are in old lei (11 April – 20 June 2005): 500,000,000,000 against 150,000,000 after 1 July, and the individual nominal value goes from 100,000,000 to 10,000 — exactly the 10,000 ratio. The values come as published, with epoca and factor_denominare alongside.
An auction can fail: 159 of 1,834 (8.7%) allotted nothing. They are flagged nereusita, so that they do not enter a yield average as if they had had one. And 72.7% are reopenings — the residual maturity is shorter than the original, flagged reluare.
suprasubscriere and raport_prospect are computed by us, not published. The first has a declared trap: the NBR publishes total demand in two mutually exclusive fields — nominal value on 1,458 auctions, net cost on the other 376 — so suprasubscriere_baza says which one it was computed on. The medians genuinely differ: 1.66 on the nominal basis, 2.04 on net cost. raport_prospect (allotted / announced) has a median of 1.02, with 925 auctions above the announcement and 309 below.
In 2006 there is no auction at all in the series: 13 in 2005, then nothing until 2007.
Query parameters
YYYY-MM-DD. Cannot be in the future.
e.g. 2024-06-15e.g. 2024-01-02
How it behaves
- Issuance auction results: how much was announced, bid for, allotted, and at what yield, price or discount. 1,834 auctions since April 2005, with the NBR's 34 opaque field codes translated into named structures.
- The source codes read along two axes, and that is where the response shape comes from:
cerereis what was bid for,adjudecatis what was accepted, each with nominal value and net cost, broken down into competitive offers (own account / client account) and non-competitive ones.cost_net / nominalgives the category's average price — verified: 871,953,200 / 840,000,000 = 1.0380 against the published average price of 103.83. - The currency is NOT published in this series. Unlike the exchange-operations series, auctions carry no denomination field. And the series almost certainly contains euro issues too: 118 auctions (6.4%) show yields far below their month's median — 21 August 2026 gives 3.23% and 3.97% in the same week the rest cleared at 6.7%. Almost certainly is not a figure you put in a field, so this route does not invent a
monedaand never sums anything across auctions: a total would mix currencies. Anyone who adds them up does so knowingly. - The first nine auctions are in old lei (11 April – 20 June 2005): 500,000,000,000 against 150,000,000 after 1 July, with the individual face value going from 100,000,000 to 10,000 — exactly the 10,000 ratio. Values are returned as published: silently converted, they would no longer match the NBR's own page.
epocaandfactor_denominaresay what to multiply by to reach today's lei. - An auction can fail: 159 of 1,834 (8.7%) allotted nothing. They are flagged
nereusitaand carry no yield — an average that counts them as zeros is wrong. - 72.7% are reopenings: more is issued from a series that already exists, so residual maturity is shorter than the original. The
reluarefield marks them. suprasubscrierecarries a declared trap: the NBR publishes total demand in two mutually exclusive fields — nominal value for 1,458 auctions, net cost for the other 376, never both. That is whysuprasubscriere_bazasays which one it was computed on, and the medians genuinely differ: 1.66 on a nominal basis, 2.04 on net cost.raport_prospect(allotted / announced) has a median of 1.02, with 925 auctions above the announcement and 309 below: the Treasury frequently takes more than it announced, and it shows.- There is no auction at all in 2006: 13 in 2005, then nothing until 2007. An interval inside 2006 gets a 404
fara_licitatii, notin_afara_acoperirii— the year sits in the middle of the series.
What it is for
- The real cost at which the state borrows, auction by auction.
- Market appetite for sovereign debt, tracked through oversubscription.
- The issuance calendar, and how far allotment strayed from what the prospectus announced.
Response structure
obligatiuni (coupon-bearing), certificate_discont, or nedeterminat for the 51 that carry no price field to tell them apart.
ROL or RON — which currency the values are written in.
true on a reopening.
null for discount bills.
null for the 376 auctions where the NBR published only the net cost of demand — that sits in cerere.total.cost_net.
true when nothing was allotted.
nominal or cost_net — which basis the ratio could be computed on.
nominal and cost_net, in total, competitive (own account / client account) and non-competitive.
data is null and this says why. The interval falls entirely outside the series. The interval is inside the coverage but no auction was held in it (the 2006 case).
fara_date is prose and may be rephrased, this is not.
Response examples
{
"data": {
"de_la": "2024-06-15",
"pana_la": "2024-06-30",
"licitatii": [
{
"data": "2024-06-17",
"linie": 1,
"instrument": "obligatiuni",
"epoca": "RON",
"factor_denominare": 1,
"maturitate": {
"zile": 3934,
"ani": "10.77",
"reziduala_zile": 3696,
"reluare": true
},
"decontare_zile": 4,
"cupon": "7.10",
"dobanda_acumulata_titlu": "312.32",
"oferta": {
"anuntat": "500000000.00",
"subscris": "1239870000.00",
"adjudecat": "1022500000.00",
"nereusita": false,
"suprasubscriere": "1.21",
"suprasubscriere_baza": "nominal",
"raport_prospect": "2.05",
"valoare_nominala_titlu": "5000.00",
"oferta_minima": "5000.00"
},
"cerere": {
"total": {
"nominal": "1239870000.00",
"cost_net": null
},
"competitive": {
"nominal": "1042500000.00",
"cost_net": "1059899000.00"
},
"competitive_cont_propriu": {
"nominal": "1042500000.00",
"cost_net": "1059899000.00"
},
"competitive_cont_clienti": {
"nominal": "0.00",
"cost_net": "0.00"
},
"necompetitive": {
"nominal": "197370000.00",
"cost_net": null
}
},
"adjudecat": {
"total": {
"nominal": "1022500000.00",
"cost_net": "1039720140.00"
},
"competitive": {
"nominal": "897500000.00",
"cost_net": "912614890.00"
},
"competitive_cont_propriu": {
"nominal": "897500000.00",
"cost_net": "912614890.00"
},
"competitive_cont_clienti": {
"nominal": "0.00",
"cost_net": "0.00"
},
"necompetitive": {
"nominal": "125000000.00",
"cost_net": "127105250.00"
}
},
"randament": {
"mediu": "6.86",
"maxim": "6.86"
},
"pret": {
"mediu": "101.68",
"maxim": "101.65"
},
"discont": {
"mediu": null,
"maxim": null
},
"coeficient_marginal": {
"competitive": "100.00",
"necompetitive": "63.33"
}
}
]
},
"meta": {
"sursa": "BNR — licitaţii de titluri de stat (baza de date interactivă).",
"acoperire": {
"de_la": "2005-04-11",
"pana_la": "2026-09-23",
"licitatii": 1838
},
"licitatii": 5,
"nereusite": 1,
"zile_interval": 16,
"nota_moneda": "Seria de emisiuni NU publică denominarea, iar 118 licitaţii din 1.834 (6,4%) au randamentul mult sub mediana lunii lor — aproape sigur emisiuni în euro. De aceea nu există câmp `moneda` şi nu se însumează nimic peste licitaţii: un total ar amesteca monede.",
"nota_denominare": "Primele nouă licitaţii (11 aprilie – 20 iunie 2005) sunt în lei vechi. Valorile sunt cele publicate, netransformate; `epoca` şi `factor_denominare` spun cu ce se înmulţeşte pentru a ajunge în lei de azi.",
"nota_structura": "`cerere` e ce s-a cerut, `adjudecat` e ce s-a acceptat — fiecare cu `nominal` şi `cost_net`, pe competitive (cont propriu / contul clienţilor) şi necompetitive. `cost_net / nominal` dă preţul mediu al categoriei.",
"nota_calculate": "`suprasubscriere` şi `raport_prospect` sunt calculate de noi. BNR publică cererea totală în două câmpuri care se exclud — valoare nominală la 1.458 de licitaţii, cost net la 376 — deci `suprasubscriere_baza` spune pe care s-a calculat; medianele istorice diferă real: 1,66 nominal, 2,04 cost net. `raport_prospect` are mediana 1,02.",
"nota_subscris": "`oferta.subscris` e valoarea nominală cerută. E `null` la cele 376 de licitaţii pentru care BNR a publicat doar costul net al cererii — acela stă în `cerere.total.cost_net`, nu s-a pierdut.",
"nota_nereusite": "Licitaţia cu `nereusita: true` n-a adjudecat nimic — 8,7% din toate. Nu are randament, deci nu intră într-o medie.",
"nota_2006": "În 2006 nu există nicio licitaţie în serie: 13 în 2005, apoi nimic până în 2007."
}
}
{
"data": {
"de_la": "2024-01-02",
"pana_la": "2024-03-29",
"licitatii": [
{
"data": "2024-01-08",
"linie": 1,
"instrument": "obligatiuni",
"epoca": "RON",
"factor_denominare": 1,
"maturitate": {
"zile": 1468,
"ani": "4.02",
"reziduala_zile": 1239,
"reluare": true
},
"decontare_zile": 4,
"cupon": "7.20",
"dobanda_acumulata_titlu": "218.36",
"oferta": {
"anuntat": "600000000.00",
"subscris": "867000000.00",
"adjudecat": "757000000.00",
"nereusita": false,
"suprasubscriere": "1.15",
"suprasubscriere_baza": "nominal",
"raport_prospect": "1.26",
"valoare_nominala_titlu": "5000.00",
"oferta_minima": "5000.00"
},
"cerere": {
"total": {
"nominal": "867000000.00",
"cost_net": null
},
"competitive": {
"nominal": "827000000.00",
"cost_net": "849193996.00"
},
"competitive_cont_propriu": {
"nominal": "827000000.00",
"cost_net": "849193996.00"
},
"competitive_cont_clienti": {
"nominal": "0.00",
"cost_net": "0.00"
},
"necompetitive": {
"nominal": "40000000.00",
"cost_net": null
}
},
"adjudecat": {
"total": {
"nominal": "757000000.00",
"cost_net": "777437620.00"
},
"competitive": {
"nominal": "717000000.00",
"cost_net": "736357700.00"
},
"competitive_cont_propriu": {
"nominal": "717000000.00",
"cost_net": "736357700.00"
},
"competitive_cont_clienti": {
"nominal": "0.00",
"cost_net": "0.00"
},
"necompetitive": {
"nominal": "40000000.00",
"cost_net": "41079920.00"
}
},
"randament": {
"mediu": "6.27",
"maxim": "6.30"
},
"pret": {
"mediu": "102.70",
"maxim": "102.61"
},
"discont": {
"mediu": null,
"maxim": null
},
"coeficient_marginal": {
"competitive": "100.00",
"necompetitive": "100.00"
}
}
]
},
"meta": {
"sursa": "BNR — licitaţii de titluri de stat (baza de date interactivă).",
"acoperire": {
"de_la": "2005-04-11",
"pana_la": "2026-09-23",
"licitatii": 1838
},
"licitatii": 34,
"nereusite": 0,
"zile_interval": 88,
"nota_moneda": "Seria de emisiuni NU publică denominarea, iar 118 licitaţii din 1.834 (6,4%) au randamentul mult sub mediana lunii lor — aproape sigur emisiuni în euro. De aceea nu există câmp `moneda` şi nu se însumează nimic peste licitaţii: un total ar amesteca monede.",
"nota_denominare": "Primele nouă licitaţii (11 aprilie – 20 iunie 2005) sunt în lei vechi. Valorile sunt cele publicate, netransformate; `epoca` şi `factor_denominare` spun cu ce se înmulţeşte pentru a ajunge în lei de azi.",
"nota_structura": "`cerere` e ce s-a cerut, `adjudecat` e ce s-a acceptat — fiecare cu `nominal` şi `cost_net`, pe competitive (cont propriu / contul clienţilor) şi necompetitive. `cost_net / nominal` dă preţul mediu al categoriei.",
"nota_calculate": "`suprasubscriere` şi `raport_prospect` sunt calculate de noi. BNR publică cererea totală în două câmpuri care se exclud — valoare nominală la 1.458 de licitaţii, cost net la 376 — deci `suprasubscriere_baza` spune pe care s-a calculat; medianele istorice diferă real: 1,66 nominal, 2,04 cost net. `raport_prospect` are mediana 1,02.",
"nota_subscris": "`oferta.subscris` e valoarea nominală cerută. E `null` la cele 376 de licitaţii pentru care BNR a publicat doar costul net al cererii — acela stă în `cerere.total.cost_net`, nu s-a pierdut.",
"nota_nereusite": "Licitaţia cu `nereusita: true` n-a adjudecat nimic — 8,7% din toate. Nu are randament, deci nu intră într-o medie.",
"nota_2006": "În 2006 nu există nicio licitaţie în serie: 13 în 2005, apoi nimic până în 2007."
}
}
{
"data": null,
"meta": {
"de_la": "2024-06-15",
"pana_la": "2024-06-15",
"acoperire": {
"de_la": "2005-04-11",
"pana_la": "2026-09-23",
"licitatii": 1838
},
"fara_date": "Intervalul e în acoperire, dar nu s-a ţinut nicio licitaţie în el. Se întâmplă: în 2006 nu există niciuna, deşi anul e în mijlocul seriei.",
"fara_date_cod": "interval_gol"
}
}
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. |
| 422 | validare | interval_prea_lung beyond 366 days, a malformed date, pana_la before de_la, or an interval in the future. |
| 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": "interval_prea_lung beyond 366 days, a malformed date, pana_la before de_la, or an interval in the future.",
"detalii": {
"de_la": [
"The value sent does not satisfy the parameter rule."
]
}
}
}