oneapi
Sign in
Financiar v1 / Inflatie

Agricultural product prices

The prices agricultural products sell at — 1,064,340 values, from 1990 to 2026, in three different concepts, from the TEMPO matrices PPA101A, PPA102B, PPA102C and PPA103A.

⚠️ The three concepts do NOT compare with one another. piata is the selling price in agri-food markets and livestock fairs — a retail price, the only one that goes down to locality level (127 market towns, with SIRUTA codes). achizitie (2001–2003, by county) and poarta_fermei (from 2004, by region and nationally) are producer prices. The last two cover adjacent periods, but they are not the same quantity and are not spliced into one series.

⚠️ These are UNIT prices — lei per kilogram, per litre, per piece. They are not additive, neither across products nor across territories, and an average of them makes no sense without weights, which the source does not publish.

⚠️ The unit of measure is a dimension, not a label: the same product can be quoted per kilogram, per piece, per litre, per kilogram live weight or per kilogram carcass.

⚠️ The denomination cuts at 1 January 2005, not at 1 July as the law says — INS republished the whole year in new lei. Verified on a continuous series: apples cost 14,539.66 lei in December 2004 and 1.51 in January 2005. Earlier values are divided by 10,000; the publicat block keeps the raw figure.

⚠️ Not every concept has every frequency: the market price is annual and monthly, the purchase price annual and in periods cumulated from 1 January (cumulat: 2002-01..03, 2002-01..06, 2002-01..09 — not quarters), the farm-gate price annual, quarterly and monthly. Requested otherwise, the frequency gets an explicit refusal.

GET
https://oneapi.ro/api/financiar/v1/preturi-agricole

Query parameters

NameTypeDescriptionAccepted values
conceptoptional string | null Optional: piata (default), achizitie, poarta_fermei. piataachizitiepoarta_fermei
granularitateoptional string | null Optional: lunar (default), trimestrial, anual, cumulat (only achizitie) — depending on what the chosen concept publishes. anualtrimestriallunarcumulat
nivel_teritoriuoptional string | null Optional: tara (default), regiune, judet, localitate. tararegiunejudetlocalitate
umoptional string | null Optional: kg, litru, buc, kg_viu, kg_carcasa, fir, cap. e.g. kg
de_laoptional string | null Optional, YYYY or YYYY-MM, from 1990. e.g. 2024-01e.g. 2024-06-15
pana_laoptional string | null Optional, YYYY or YYYY-MM. e.g. 2024-06e.g. 2024-06-30
produslistoptional text Optional, comma-separated slugs. The nomenclature differs from concept to concept. e.g. ardei_grase.g. ardei_capia
teritoriulistoptional text Optional, slugs — total, a county, a region or a market town. e.g. total

How it behaves

  • The prices agricultural products sell at — 1,064,340 values, from 1990 to 2026, in three different concepts, from TEMPO matrices PPA101A, PPA102B, PPA102C and PPA103A.
  • ⚠️ The three concepts do NOT compare with one another. piata is the selling price in farmers’ markets — a retail price, and the only one that goes down to locality level: 127 market towns, each carrying its SIRUTA code in the label. achizitie (2001-2003 only, by county) and poarta_fermei (from 2004, by region and nationally) are producer prices. The latter two cover adjacent periods and look alike — but they are not the same magnitude and do not join into one series.
  • ⚠️ These are UNIT prices — lei per kilogram, per litre, per piece. They do not add up, neither across products nor across territories, and an average of them means nothing without weights, which the source does not publish. That is why the route computes no aggregate over them.
  • ⚠️ The unit of measure is a dimension, not a label: the same product may be quoted per kilogram, per piece, per litre, per live kilogram or per carcass kilogram. Two prices of the same product in different units do not compare.
  • ⚠️ The denomination cuts at 1 January 2005, not 1 July as the law says — INS republished the whole year in new lei. Verified on a continuous series: apples cost 14,539.66 lei in December 2004 and 1.51 in January 2005. Earlier values are divided by 10,000, and the publicat block keeps the raw figure and the factor.
  • ⚠️ Not every concept has every frequency. Market prices are published annually and monthly, procurement prices annually and in cumulated periods, farm-gate prices annually, quarterly and monthly. Asked otherwise, the frequency gets an explicit refusal listing what is available — not an empty response.
  • ⚠️ Each source matrix holds several frequencies at once, all placed on the first day of the period: January and the whole year fall on the same date. The projection separates them through granularitate; the monthly series is returned by default.
  • ⚠️ The procurement price has no quarters, but periods cumulated from 1 January — January-March, January-June, January-September — even though the source labels them “Trimestrul I/II/III”. Their granularity is cumulat, and the label states the span: 2002-01..03, 2002-01..06, 2002-01..09; January-December is the year (anual). They are averages, not sums: the difference between two periods does not give the quarter's price.

What it is for

  • The price of a product in a particular town, month by month, across thirty-five years.
  • The gap between the producer price and the market price for the same product.
  • The seasonality of fruit and vegetable prices, measured rather than assumed.
  • Price context for a territorial agricultural analysis, joined through SIRUTA.

Response structure

FieldTypeDescription
data.concept string
data.descriere_concept string
data.granularitate string How fine the time step of the values is.
data.de_la string Start of the interval the response covers.
data.pana_la string End of the interval the response covers, inclusive.
data.filtre.concept string
data.filtre.granularitate string How fine the time step of the values is.
data.filtre.nivel_teritoriu string Territorial level of the value (country, region, county, locality).
data.perioade array Years, months as YYYY-MM, quarters as YYYY-Tn or periods cumulated from 1 January as YYYY-01..MM, depending on granularitate.
data.serii[].produs string Product from the source code list.
data.serii[].denumire string The name, exactly as the source publishes it.
data.serii[].teritoriu string The territory the value refers to.
data.serii[].nivel_teritoriu string Territorial level of the value (country, region, county, locality).
data.serii[].um string The unit, part of the series identity — two series of the same product in different units are different things.
data.serii[].unitate string The exact source unit — part of the series identity, not decoration.
data.serii[].perioade_publicate integer How many periods the source actually published.
data.serii[].valori object The values of the series, by period.
meta.sursa string The official source the data comes from, with its licence where one is required.
meta.acoperire.de_la string The first period we have data for.
meta.acoperire.pana_la string The last period we have data for.
meta.serii_returnate integer How many series were actually returned, after filters and the cell ceiling.
meta.nota_preturi string A note on how to read the response: a caveat, a convention or a limit of the source.
meta.nota_implicit string Which value was used when the parameter was not sent.
meta.nota_concept string A note on how to read the response: a caveat, a convention or a limit of the source.
meta.nota_lista string What the list contains and what it does not — its limits.
data.serii[].publicat Present only for periods before 2005: the raw value in old lei and the factor applied.
data.serii[].cod_siruta Present only on market towns; the same code as in /locations/v1.
meta.fara_date data is null and this says why. The projection over the INS data is empty. The nomenclature is at /financiar/v1/preturi-agricole/nomenclator. As for the other series.
meta.fara_date_cod The short, STABLE word for the reason, for clients that branch on it in code: fara_date is prose and may be rephrased, this is not.

Response examples

GEThttps://oneapi.ro/api/financiar/v1/preturi-agricole?de_la=2024-01&pana_la=2024-06
{
    "data": {
        "concept": "piata",
        "descriere_concept": "preţul de vânzare în pieţele agroalimentare şi oboare — preţ cu amănuntul",
        "granularitate": "lunar",
        "de_la": "2024-01",
        "pana_la": "2024-06",
        "filtre": {
            "concept": "piata",
            "granularitate": "lunar",
            "nivel_teritoriu": "tara"
        },
        "perioade": [
            "2024-01",
            "2024-02",
            "2024-03",
            "2024-04",
            "2024-05",
            "2024-06"
        ],
        "serii": [
            {
                "produs": "ardei_gras",
                "denumire": "Ardei gras",
                "teritoriu": "total",
                "nivel_teritoriu": "tara",
                "um": "kg",
                "unitate": "Lei / kg",
                "perioade_publicate": 1,
                "valori": {
                    "2024-01": null,
                    "2024-02": null,
                    "2024-03": null,
                    "2024-04": null,
                    "2024-05": null,
                    "2024-06": "7.54"
                }
            }
        ]
    },
    "meta": {
        "sursa": "Institutul Naţional de Statistică — preţurile produselor agricole în pieţe, la achiziţie şi la poarta fermei (TEMPO, matricile PPA101A, PPA102B, PPA102C şi PPA103A).",
        "acoperire": {
            "de_la": "1990-01-01",
            "pana_la": "2026-07-01"
        },
        "serii_returnate": 42,
        "nota_preturi": "⚠️ Sunt preţuri UNITARE. Nu se adună — nici pe produse, nici pe teritorii — iar o medie a lor n-are sens fără ponderi, pe care sursa nu le publică.",
        "nota_implicit": "Fără `teritoriu` sau `nivel_teritoriu`, răspunsul ar purta toate cele 127 de oraşe-pieţe. Implicit: totalul ţării.",
        "nota_concept": "Conceptul ales: preţul de vânzare în pieţele agroalimentare şi oboare — preţ cu amănuntul. Cele trei nu se compară între ele.",
        "nota_lista": "Nomenclatoarele — produse, teritorii şi frecvenţe pe fiecare concept: /financiar/v1/preturi-agricole/nomenclator."
    }
}

Error codes

CodeSlugWhen it occurs
401neautentificatMissing or invalid token.
403feature_indisponibilfinanciar.indici is not in the current plan.
422raspuns_prea_mareOver 20,000 cells. Plus concept, granularity, product, territory or unit outside the expected form. granularitate_indisponibila — the concept is not published at the requested frequency; the response lists them.
429cota_depasitaThe 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": "raspuns_prea_mare",
        "mesaj": "Over 20,000 cells. Plus concept, granularity, product, territory or unit outside the expected form. granularitate_indisponibila — the concept is not published at the requested frequency; the response lists them.",
        "detalii": {
            "concept": [
                "The value sent does not satisfy the parameter rule."
            ]
        }
    }
}