Business v1 / Firme
Compare companies
The financial statements of 2–5 companies side by side, on the same years and the same indicators aligned by name.
GET
https://oneapi.ro/api/business/v1/firme/compara
Query parameters
NameTypeDescriptionAccepted values
de_laoptional
integer | null
Optional: the first year included,
YYYY.
1990 – 2100
pana_laoptional
integer | null
Optional: the last year included,
YYYY.
1990 – 2100
cuilistrequired
text
Required: 2–5 tax IDs, comma-separated, with or without
RO.
e.g. 6719278,14399840e.g. 5022670,2054341e.g. 6719278,14399840,2054341
How it behaves
- ⭐ The financial statements of 2–5 companies on the same years, with the indicators aligned: for each year, one row per company, in the order requested.
- Indicators are aligned by name, not by code. The Ministry of Finance codes (
I1…I38) are not stable: net profit has 13 different codes depending on the reporting family (long, short, IFRS, micro-enterprise). The name, brought to a common form, is the only key linking two companies from different families. - Not every family reports every indicator: where an indicator is missing for a company, the value is
null, not zero. A year with no filed statement appears withdepus: false, so the gap is visible. rezultat_netputs profit and loss on a single axis (negative for a loss) — the figure to compare between companies that had different years.- Values are in lei, as filed; for euro or prices comparable over time, see
/firme/{cui}/financiar/eurand/financiar/real. The full detail, with every indicator of the family, is at/firme/{cui}/financiar.
What it is for
- Put a customer and its competitors side by side: turnover, profit, employees, debt, on the same years.
- Choose between two suppliers on financial strength, not on the pitch.
- Build a benchmark table for a report without aligning indicator codes by hand.
Response structure
All fields below live inside data.
FieldTypeDescription
firme[]
array
The companies compared, in the order requested:
{cui, denumire, in_registru_onrc}.
firme[].cui
integer
Tax identification number, without the
RO prefix.
firme[].denumire
string
The name, exactly as the source publishes it.
firme[].in_registru_onrc
boolean
negasite
array
The requested tax IDs that have no financial statements filed.
indicatori[]
array
The indicators compared:
{cheie, denumire}, in the order they appear on each company.
indicatori[].cheie
string
indicatori[].denumire
string
The name, exactly as the source publishes it.
ani[].an
integer
The financial year.
ani[].firme[].cui
integer
The tax ID.
ani[].firme[].caen
integer
The CAEN code declared in that year's statement.
ani[].firme[].depus
boolean
false when the company filed no statement for that year — the indicators are then missing as well.
ani[].firme[].cifra_afaceri_neta
integer
Net turnover, in lei.
ani[].firme[].venituri_totale
integer
ani[].firme[].cheltuieli_totale
integer
ani[].firme[].profit_brut
integer
ani[].firme[].pierdere_bruta
integer
ani[].firme[].profit_net
integer
ani[].firme[].pierdere_neta
integer
ani[].firme[].salariati
integer
The average number of employees.
ani[].firme[].active_imobilizate
integer
ani[].firme[].active_circulante
integer
ani[].firme[].stocuri
integer
ani[].firme[].creante
integer
ani[].firme[].casa_si_conturi
integer
ani[].firme[].datorii
integer
ani[].firme[].capitaluri_proprii
integer
ani[].firme[].rezultat_net
integer
Net profit minus net loss, in lei; negative for a loss.
observatie
string
How the indicators are aligned and what a
null means.
Response examples
GEThttps://oneapi.ro/api/business/v1/firme/compara?cui=6719278,14399840&de_la=2020
{
"data": {
"firme": [
{
"cui": 6719278,
"denumire": "MEGA IMAGE SRL",
"in_registru_onrc": true
}
],
"negasite": [],
"indicatori": [
{
"cheie": "cifra_afaceri_neta",
"denumire": "Cifra de afaceri netă"
}
],
"ani": [
{
"an": 2025,
"firme": [
{
"cui": 6719278,
"caen": 4711,
"depus": true,
"cifra_afaceri_neta": 12256333315,
"venituri_totale": 12310207852,
"cheltuieli_totale": 12073174928,
"profit_brut": 237032924,
"pierdere_bruta": 0,
"profit_net": 124841094,
"pierdere_neta": 0,
"salariati": 10171,
"active_imobilizate": 2489044532,
"active_circulante": 2181618267,
"stocuri": 1039070952,
"creante": 502664799,
"casa_si_conturi": 639882516,
"datorii": 1981326855,
"capitaluri_proprii": 2669472085,
"rezultat_net": 124841094
}
]
}
],
"observatie": "Indicatorii sunt aliniaţi după DENUMIRE, nu după cod: codurile MF (`I1`…`I38`) diferă între familiile de raportare. `rezultat_net` = profitul net minus pierderea netă. Firmele din familii diferite (bilanţ lung, scurt, IFRS, microîntreprinderi) nu raportează toţi indicatorii — unde un indicator lipseşte, e `null`. Un an în care o firmă n-a depus bilanţ apare cu `depus: false`."
}
}
GEThttps://oneapi.ro/api/business/v1/firme/compara?cui=5022670,2054341&de_la=2021&pana_la=2023
{
"data": {
"firme": [
{
"cui": 5022670,
"denumire": "BANCA TRANSILVANIA SA",
"in_registru_onrc": true
}
],
"negasite": [],
"indicatori": [
{
"cheie": "cifra_afaceri_neta",
"denumire": "Cifra de afaceri netă"
}
],
"ani": [
{
"an": 2023,
"firme": [
{
"cui": 5022670,
"caen": 6419,
"depus": true,
"cifra_afaceri_neta": null,
"venituri_totale": null,
"cheltuieli_totale": null,
"profit_brut": null,
"pierdere_bruta": null,
"profit_net": null,
"pierdere_neta": null,
"salariati": null,
"active_imobilizate": null,
"active_circulante": null,
"stocuri": null,
"creante": null,
"casa_si_conturi": null,
"datorii": null,
"capitaluri_proprii": null,
"rezultat_net": null
}
]
}
],
"observatie": "Indicatorii sunt aliniaţi după DENUMIRE, nu după cod: codurile MF (`I1`…`I38`) diferă între familiile de raportare. `rezultat_net` = profitul net minus pierderea netă. Firmele din familii diferite (bilanţ lung, scurt, IFRS, microîntreprinderi) nu raportează toţi indicatorii — unde un indicator lipseşte, e `null`. Un an în care o firmă n-a depus bilanţ apare cu `depus: false`."
}
}
GEThttps://oneapi.ro/api/business/v1/firme/compara?cui=6719278,14399840,2054341&de_la=2021
{
"data": {
"firme": [
{
"cui": 6719278,
"denumire": "MEGA IMAGE SRL",
"in_registru_onrc": true
}
],
"negasite": [],
"indicatori": [
{
"cheie": "cifra_afaceri_neta",
"denumire": "Cifra de afaceri netă"
}
],
"ani": [
{
"an": 2025,
"firme": [
{
"cui": 6719278,
"caen": 4711,
"depus": true,
"cifra_afaceri_neta": 12256333315,
"venituri_totale": 12310207852,
"cheltuieli_totale": 12073174928,
"profit_brut": 237032924,
"pierdere_bruta": 0,
"profit_net": 124841094,
"pierdere_neta": 0,
"salariati": 10171,
"active_imobilizate": 2489044532,
"active_circulante": 2181618267,
"stocuri": 1039070952,
"creante": 502664799,
"casa_si_conturi": 639882516,
"datorii": 1981326855,
"capitaluri_proprii": 2669472085,
"rezultat_net": 124841094
}
]
}
],
"observatie": "Indicatorii sunt aliniaţi după DENUMIRE, nu după cod: codurile MF (`I1`…`I38`) diferă între familiile de raportare. `rezultat_net` = profitul net minus pierderea netă. Firmele din familii diferite (bilanţ lung, scurt, IFRS, microîntreprinderi) nu raportează toţi indicatorii — unde un indicator lipseşte, e `null`. Un an în care o firmă n-a depus bilanţ apare cu `depus: false`."
}
}
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 | Fewer than two of the requested companies have filed financial statements. |
| 422 | validare | An undeclared parameter or a value that fails validation (cui, de_la, pana_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 (cui, de_la, pana_la). The offending field is in detalii.",
"detalii": {
"de_la": [
"The value sent does not satisfy the parameter rule."
]
}
}
}