Business v1 / Firme
Activity history
The authorised NACE (CAEN) codes of the company over time, with the period they appear in the register.
GET
https://oneapi.ro/api/business/v1/firme/{cui}/istoric/activitati
Path parameters
NameTypeDescriptionExample
cuirequired
string
The company tax identification number, without the
RO prefix (e.g. 6719278).
Query parameters
NameTypeDescriptionAccepted values
versiuneoptional
string | null
Only one CAEN edition:
0 (1998), 1 (Rev.1), 2 (Rev.2), 3 (Rev.3).
0123
in_vigoareoptional
boolean | null
1 only today's activities, 0 only closed ones.
e.g. 1
doar_schimbarioptional
boolean | null
1 only rows with a real addition or drop (renumbering excluded).
e.g. 1
de_laoptional
string | null
Only changes (additions or drops) from this date,
YYYY-MM-DD. Implies doar_schimbari.
e.g. 2025-10-01
How it behaves
- Real changes are separated from renumbering. The trade register moved companies from CAEN Rev.2 to Rev.3 gradually, each at its own edition: then every Rev.2 code disappears and the Rev.3 equivalents appear. Read raw, 140 of eMAG's 148 rows looked like changes.
adaugataandrenuntatareport only what the company changed, recognising old–new pairs through the official correspondence table (codes the table does not mention stayed the same), in both directions and likewise for Rev.1 codes converted to Rev.2 — the source sometimes went back, and some companies carried both nomenclatures for a while (at Dedeman, 236 "changed" rows are really 19). A Rev.2 activity with no equivalent among the new codes is a real drop, even if it disappeared on the transition day. ?doar_schimbari=1returns only rows with an addition or a drop;?de_la=2025-09-01narrows to changes after a date. "What did the company change in the last year" is one request, without reading hundreds of rows.- The main activity is known only for today. The trade register does not mark it in the activities file and ANAF does not publish its history — hence
principala_acumon the rows. ANAF often keeps the main activity on the Rev.2 code after the register moved the company to Rev.3; the Rev.3 equivalents are inmeta.caen_principal.echivalente_rev3. - The history starts with the trade-register edition of 21 March 2025, the first with authorised activities as a separate file. What the company had then appears without
adaugata: we do not know since when. - Dates are edition dates (roughly monthly): an activity with
adaugata: 2025-10-06appeared between the previous edition and 6 October. A row seen in a single edition may be a correction at the source. - Same date names as the other histories:
vazut_de_laandvazut_pana_la.
What it is for
- Which activities the company had authorised on the date of a public tender.
- When a company changed its field of activity.
- Tracking a sector moving to the new CAEN edition.
Response structure
FieldTypeDescription
data[].principala_acum
boolean
true on the code that is the company's main activity TODAY, according to ANAF, and only on the current row.
meta.caen_principal
object | null
The current main activity, per ANAF:
{cod, denumire, versiune, sursa, echivalente_rev3}; null if ANAF does not declare one.
data[].cod
string
The authorised NACE (CAEN) code.
data[].denumire
string
The code label, from the nomenclature.
data[].versiune
string
The CAEN edition:
0 (1998), 1 (2003), 2 (2008), 3 (2025).
data[].vazut_de_la
string
The first snapshot in which the company has this code authorised.
data[].vazut_pana_la
string | null
The last snapshot it still appears in;
null if still authorised.
data[].in_vigoare
boolean
true if it appears in the most recent snapshot processed.
data[].adaugata
null
The edition in which the activity really appeared;
null if it was already there in the first edition we see the company in (we do not know since when) or if it is just the Rev.3 equivalent of a Rev.2 code closed when the company moved to the new nomenclature.
data[].renuntata
null
The last edition the activity appeared in before disappearing;
null if in force or if it disappeared only through renumbering (its Rev.3 equivalent appeared in the next edition).
data[].renumerotare
boolean
true if the start or end of the period comes from the Rev.2 → Rev.3 transition, not from a company decision.
meta.caen_principal.echivalente_rev3
array
When ANAF still keeps the main activity on a Rev.2 code (common, even after the trade register moved the company to Rev.3), the corresponding Rev.3 codes per the official table;
null if already Rev.3.
meta.rezumat.prima_editie
string
The first edition in which we see the company's activities — what it had then does not appear as "added".
meta.rezumat.trecere_rev3
string
The edition in which the trade register moved the company to CAEN Rev.3;
null if we see it on Rev.3 from the start.
meta.rezumat.adaugate
integer
How many activities the company added, renumbering excluded — over the whole history, regardless of filters.
meta.rezumat.renuntate
integer
How many activities it dropped, renumbering excluded.
meta.rezumat.ultima_schimbare
string
The date of the latest real change;
null if there is none.
meta.paginare.pagina
integer
Current page, counted from 1.
meta.paginare.per_pagina
integer
How many records a page holds.
meta.paginare.total
integer
Total matching records, beyond the current page.
meta.paginare.pagini
integer
How many pages the list has.
Response examples
GEThttps://oneapi.ro/api/business/v1/firme/14399840/istoric/activitati?per_pagina=5
{
"data": [
{
"cod": "4615",
"denumire": "Intermedieri în comerțul cu mobilă, articole de menaj și de fierărie",
"versiune": "3",
"vazut_de_la": "2025-05-05",
"vazut_pana_la": null,
"in_vigoare": true,
"adaugata": null,
"renuntata": null,
"renumerotare": true,
"principala_acum": false
}
],
"meta": {
"caen_principal": {
"cod": "4754",
"denumire": "Comerț cu amănuntul al articolelor și aparatelor electrocasnice, în magazine specializate",
"versiune": "2",
"sursa": "ANAF",
"echivalente_rev3": [
"4754",
"4792"
]
},
"rezumat": {
"prima_editie": "2025-03-21",
"trecere_rev3": "2025-05-05",
"adaugate": 9,
"renuntate": 5,
"ultima_schimbare": "2026-02-03"
},
"paginare": {
"pagina": 1,
"per_pagina": 5,
"total": 148,
"pagini": 30
}
}
}
GEThttps://oneapi.ro/api/business/v1/firme/6719278/istoric/activitati?in_vigoare=1
{
"data": [
{
"cod": "1011",
"denumire": "Prelucrarea și conservarea cărnii",
"versiune": "3",
"vazut_de_la": "2026-04-03",
"vazut_pana_la": null,
"in_vigoare": true,
"adaugata": "2026-04-03",
"renuntata": null,
"renumerotare": false,
"principala_acum": false
}
],
"meta": {
"caen_principal": {
"cod": "4711",
"denumire": "Comerț cu amănuntul în magazine nespecializate, cu vânzare predominantă de produse alimentare, băuturi și tutun",
"versiune": "2",
"sursa": "ANAF",
"echivalente_rev3": [
"4711",
"4791"
]
},
"rezumat": {
"prima_editie": "2025-03-21",
"trecere_rev3": "2025-05-05",
"adaugate": 32,
"renuntate": 2,
"ultima_schimbare": "2026-05-06"
},
"paginare": {
"pagina": 1,
"per_pagina": 20,
"total": 80,
"pagini": 4
}
}
}
GEThttps://oneapi.ro/api/business/v1/firme/14399840/istoric/activitati?doar_schimbari=1
{
"data": [
{
"cod": "4638",
"denumire": "Comerț cu ridicata specializat al altor alimente",
"versiune": "3",
"vazut_de_la": "2025-10-06",
"vazut_pana_la": null,
"in_vigoare": true,
"adaugata": "2025-10-06",
"renuntata": null,
"renumerotare": false,
"principala_acum": false
}
],
"meta": {
"caen_principal": {
"cod": "4754",
"denumire": "Comerț cu amănuntul al articolelor și aparatelor electrocasnice, în magazine specializate",
"versiune": "2",
"sursa": "ANAF",
"echivalente_rev3": [
"4754",
"4792"
]
},
"rezumat": {
"prima_editie": "2025-03-21",
"trecere_rev3": "2025-05-05",
"adaugate": 9,
"renuntate": 5,
"ultima_schimbare": "2026-02-03"
},
"paginare": {
"pagina": 1,
"per_pagina": 20,
"total": 14,
"pagini": 1
}
}
}
GEThttps://oneapi.ro/api/business/v1/firme/14399840/istoric/activitati?de_la=2025-10-01
{
"data": [
{
"cod": "4638",
"denumire": "Comerț cu ridicata specializat al altor alimente",
"versiune": "3",
"vazut_de_la": "2025-10-06",
"vazut_pana_la": null,
"in_vigoare": true,
"adaugata": "2025-10-06",
"renuntata": null,
"renumerotare": false,
"principala_acum": false
}
],
"meta": {
"caen_principal": {
"cod": "4754",
"denumire": "Comerț cu amănuntul al articolelor și aparatelor electrocasnice, în magazine specializate",
"versiune": "2",
"sursa": "ANAF",
"echivalente_rev3": [
"4754",
"4792"
]
},
"rezumat": {
"prima_editie": "2025-03-21",
"trecere_rev3": "2025-05-05",
"adaugate": 9,
"renuntate": 5,
"ultima_schimbare": "2026-02-03"
},
"paginare": {
"pagina": 1,
"per_pagina": 20,
"total": 8,
"pagini": 1
}
}
}
GEThttps://oneapi.ro/api/business/v1/firme/6719278/istoric/activitati
{
"data": [
{
"cod": "1011",
"denumire": "Prelucrarea și conservarea cărnii",
"versiune": "3",
"vazut_de_la": "2026-04-03",
"vazut_pana_la": null,
"in_vigoare": true,
"adaugata": "2026-04-03",
"renuntata": null,
"renumerotare": false,
"principala_acum": false
}
],
"meta": {
"caen_principal": {
"cod": "4711",
"denumire": "Comerț cu amănuntul în magazine nespecializate, cu vânzare predominantă de produse alimentare, băuturi și tutun",
"versiune": "2",
"sursa": "ANAF",
"echivalente_rev3": [
"4711",
"4791"
]
},
"rezumat": {
"prima_editie": "2025-03-21",
"trecere_rev3": "2025-05-05",
"adaugate": 32,
"renuntate": 2,
"ultima_schimbare": "2026-05-06"
},
"paginare": {
"pagina": 1,
"per_pagina": 20,
"total": 100,
"pagini": 5
}
}
}
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 company with tax ID [{cui}] was not found. |
| 422 | validare | An undeclared parameter or a value that fails validation (versiune, in_vigoare, doar_schimbari, de_la). The offending field is in detalii. |
| 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": "An undeclared parameter or a value that fails validation (versiune, in_vigoare, doar_schimbari, de_la). The offending field is in detalii.",
"detalii": {
"cui": [
"The value sent does not satisfy the parameter rule."
]
}
}
}