oneapi
Sign in
Business v1 / Firme

Full profile

Every slice of the company in a single call — identity, tax, financials, people, head office, registers — instead of ten separate requests. The response is large; for fast screens take only what you need.

GET
https://oneapi.ro/api/business/v1/firme/{cui}/profil-complet

Path parameters

NameTypeDescriptionExample
cuirequired string The company tax identification number, without the RO prefix (e.g. 6719278).

Query parameters

This route accepts no query parameters.

How it behaves

  • The aggregator: identity, tax, financials, activities, people, contact and sector context — everything from the slice routes, in a single response.
  • Handy when you want the whole picture in one call; for high traffic and low latency, request only the slices you need through the dedicated routes.
  • Besides the profile, tax data, activities, balance sheets, contracts and registers, the response carries the location, contact, number of people per role, insolvency and sanctions — everything a company page needs, in one call.
  • 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

  • Filling in a complete customer record from a single call, instead of chaining seven routes.
  • Quick due diligence: identity, tax, financials and people at once, before signing.
  • Initial import into a CRM, when you want everything we know about the company on the first sync.

Response structure

All fields below live inside data.

FieldTypeDescription
profil.cui integer The tax ID.
profil.denumire string The name.
profil.cod_inmatriculare string The trade register order number (J…).
profil.euid string The European Unique Identifier of the company.
profil.forma_juridica string Legal form (SRL, SA, PFA…).
profil.stare string The company status, as an object: denumire is the raw ONRC text (107 distinct values in use), categorie is our classification into 7 buckets — activa, suspendata, dizolvata, lichidare, radiata, insolventa, alta — which is what you filter or group by. cod is the ONRC code of the status.
profil.data_inmatriculare string The trade register incorporation date.
profil.sediu.raw.judet string The county.
profil.sediu.raw.localitate string The locality.
profil.sediu.raw.strada string The street.
profil.sediu.raw.numar string The street number, as at the source.
profil.sediu.raw.etaj string The floor, as at the source.
profil.sediu.raw.sector integer The sector, as at the source.
profil.sediu.raw.cod_postal string The postal code.
profil.sediu.rezolvat.localitate_id integer The internal locality id in Locations.
profil.sediu.rezolvat.localitate string The locality.
profil.sediu.rezolvat.cod_siruta integer The locality SIRUTA code — chainable to /api/locations/v1.
profil.sediu.rezolvat.uat string The administrative-territorial unit.
profil.sediu.rezolvat.judet string The county.
profil.sediu.rezolvat.regiune string The development region.
profil.sediu.rezolvat.cod_nuts string The NUTS code of the territorial unit.
profil.sediu.rezolvat.populatie integer The locality population (census).
profil.sediu.rezolvat.strada_id integer The street id in Locations — chainable to /api/locations/v1/strazi/{id}.
profil.sediu.rezolvat.strada string The street.
profil.sediu.rezolvat.potrivire.loc string How confident the office link to the locality is (exact / approximate).
profil.sediu.rezolvat.potrivire.str string How confident the office link to the street is.
profil.caen_principal.cod string The primary CAEN code.
profil.caen_principal.denumire string The name of the primary activity.
profil.caen_principal.versiune string The CAEN revision the code is expressed in.
profil.fiscal.platitor_tva boolean VAT-registered as of the last sync.
profil.fiscal.tva_la_incasare boolean Applies VAT on collection.
profil.fiscal.split_tva boolean Applies split VAT.
profil.fiscal.inactiv_fiscal boolean Declared fiscally inactive.
profil.fiscal.e_factura boolean Enrolled in e-Invoicing.
profil.fiscal.radiata boolean The company is struck off.
profil.prezente.nr_persoane integer The number of people.
profil.prezente.ani_financiar[] integer The years for which a balance sheet was filed.
profil.prezente.nr_achizitii integer How many public procurement contracts it has.
profil.prezente.registre[] string The registers the company appears in.
fiscal.cui integer The tax ID.
fiscal.tva.platitor boolean VAT-registered.
fiscal.tva.de_la string Since when it is registered for VAT.
fiscal.tva.pana_la string | null Until when it was registered for VAT.
fiscal.tva.la_incasare.activ boolean Is active.
fiscal.tva.la_incasare.de_la string | null Since when VAT on collection applies.
fiscal.tva.la_incasare.pana_la string | null Until when VAT on collection applied.
fiscal.tva.la_incasare.tip string | null The type.
fiscal.tva.split.activ boolean Is active.
fiscal.tva.split.de_la string | null Since when split VAT applies.
fiscal.tva.split.anulare string | null The date split VAT was cancelled.
fiscal.inactiv.este_inactiv boolean Declared fiscally inactive.
fiscal.inactiv.data_inactivare string | null The date inactivity was declared.
fiscal.inactiv.data_reactivare string | null The reactivation date.
fiscal.inactiv.data_publicare string | null The date of publication in the inactive taxpayers register.
fiscal.e_factura.inrolat boolean Enrolled in e-Invoicing.
fiscal.e_factura.de_la string | null Since when it is enrolled in e-Invoicing.
fiscal.radiere.radiata boolean The company is struck off.
fiscal.radiere.data string | null The strike-off date.
fiscal.inregistrare.data string The fiscal registration date.
fiscal.inregistrare.stare string The company status, as an object: denumire is the raw ONRC text (107 distinct values in use), categorie is our classification into 7 buckets — activa, suspendata, dizolvata, lichidare, radiata, insolventa, alta — which is what you filter or group by. cod is the ONRC code of the status.
fiscal.inregistrare.forma_juridica string Legal form (SRL, SA, PFA…).
fiscal.inregistrare.forma_proprietate string The ownership form, as ANAF classifies it.
fiscal.inregistrare.forma_organizare string The organisation form, as ANAF classifies it.
fiscal.cod_caen.cod string The code.
fiscal.cod_caen.denumire string The name.
fiscal.cod_caen.versiune string The nomenclature revision.
fiscal.organ_fiscal string The tax office the company belongs to.
fiscal.domiciliu_fiscal string The fiscal domicile, in the form ANAF publishes.
fiscal.contact.telefon string The phone number in the ANAF record.
fiscal.verificat_anaf_la string When we last checked the status at ANAF.
activitati.caen_principal.cod string The primary CAEN code.
activitati.caen_principal.denumire string The name of the primary activity.
activitati.caen_principal.versiune string The CAEN revision the code is expressed in.
activitati.nr_activitati integer The number of activities.
activitati.activitati[].cod string The code.
activitati.activitati[].denumire string The name.
activitati.activitati[].versiune string The nomenclature revision.
activitati.activitati[].autorizata boolean The activity is authorised, not merely declared.
activitati.activitati[].principala boolean It is the primary activity.
financiar_sumar[].an integer The reference year.
financiar_sumar[].tip string The type.
financiar_sumar[].familie string The family of financial indicators.
financiar_sumar[].caen integer The CAEN code.
financiar_sumar[].decodat boolean The indicators decoded from the filed form.
financiar_sumar[].indicatori[].cod string The code.
financiar_sumar[].indicatori[].denumire string The name.
financiar_sumar[].indicatori[].valoare integer The indicator value.
achizitii_sumar.total.nr_contracte integer The number of contracts.
achizitii_sumar.total.valoare_ron number The value, in RON.
achizitii_sumar.total.valoare_eur number | null The value, in euro.
achizitii_sumar.pe_an[].an integer The reference year.
achizitii_sumar.pe_an[].nr_contracte integer The number of contracts.
achizitii_sumar.pe_an[].valoare_ron number The value, in RON.
achizitii_sumar.pe_tip[].tip string The type.
achizitii_sumar.pe_tip[].nr_contracte integer The number of contracts.
achizitii_sumar.top_autoritati[].autoritate string The authority that maintains the register.
achizitii_sumar.top_autoritati[].nr_contracte integer The number of contracts.
achizitii_sumar.top_autoritati[].valoare_ron number The value, in RON.
achizitii_sumar.top_cpv[].cpv string The CPV code of the subject.
achizitii_sumar.top_cpv[].nr_contracte integer The number of contracts.
registre.nr_registre integer The number of registers it appears in.
registre.registre[].registru string The register key (to use at /firme/{cui}/registre/{registru}).
registre.registre[].denumire string The name.
registre.registre[].autoritate string The authority that maintains the register.
registre.registre[].licenta string The licence the register is published under.
registre.registre[].nr_intrari integer The number of entries.
locatie object The registered office — as in /firme/{cui}/locatie (raw trade-register text + resolved through Locations).
contact object The ANAF contact details — as in /firme/{cui}/contact.
persoane.nr_persoane integer How many people are linked to the company (directors, shareholders, representatives).
persoane.pe_rol object How many people per role (administrator, asociat…). The list: /firme/{cui}/persoane.
insolventa.in_procedura boolean The company is in insolvency proceedings (by trade-register status).
insolventa.persoane array The judicial administrators or liquidators — as in /firme/{cui}/insolventa.
sanctiuni.sanctionat boolean Appears on at least one sanctions list.
sanctiuni.liste array The lists it appears on; details: /firme/{cui}/sanctiuni.
achizitii_sumar.top_autoritati[].autoritate_cui integer The authority's tax ID, so you can open /firme/{cui}/achizitii-autoritate; null where SEAP does not give it. Grouping stays by name, and the tax ID is the most frequent one for that name — the same authority appears spelled in dozens of ways across notices.

Response examples

GEThttps://oneapi.ro/api/business/v1/firme/6719278/profil-complet
{
    "data": {
        "profil": {
            "cui": 6719278,
            "denumire": "MEGA IMAGE SRL",
            "cod_inmatriculare": "J1994027872407",
            "euid": "ROONRC.J1994027872407",
            "forma_juridica": "SRL",
            "stare": {
                "cod": "1048",
                "denumire": "funcțiune",
                "categorie": "activa"
            },
            "data_inmatriculare": "1994-12-27",
            "sediu": {
                "raw": {
                    "judet": "Bucureşti",
                    "localitate": "Bucureşti Sectorul 6",
                    "strada": "Timişoara",
                    "numar": "26",
                    "etaj": "2",
                    "sector": 6,
                    "cod_postal": "61331"
                },
                "rezolvat": {
                    "localitate_id": 13755,
                    "localitate": "București Sectorul 6",
                    "cod_siruta": 179196,
                    "uat": "București",
                    "judet": "București",
                    "regiune": "București-Ilfov",
                    "cod_nuts": "RO321",
                    "populatie": 324994,
                    "strada_id": 221585,
                    "strada": "Timișoara",
                    "potrivire": {
                        "loc": "exact",
                        "str": "exact"
                    },
                    "coordonate": {
                        "lat": 44.428876,
                        "lng": 26.036041,
                        "precizie": "numar"
                    }
                }
            },
            "caen_principal": {
                "cod": "4711",
                "denumire": "Comerț cu amănuntul în magazine nespecializate, cu vânzare predominantă de produse alimentare, băuturi și tutun",
                "versiune": "CAEN Rev.2"
            },
            "fiscal": {
                "platitor_tva": true,
                "tva_la_incasare": false,
                "split_tva": false,
                "inactiv_fiscal": false,
                "e_factura": false,
                "radiata": false
            },
            "prezente": {
                "nr_persoane": 5,
                "ani_financiar": [
                    2008,
                    2009,
                    2010,
                    2011,
                    2012,
                    2013,
                    2014,
                    2015,
                    2016,
                    2017,
                    2018,
                    2019,
                    2020,
                    2021,
                    2022,
                    2023,
                    2024,
                    2025
                ],
                "nr_achizitii": 776,
                "registre": [
                    "anaf_datorii",
                    "anpm_eee",
                    "ansvsa",
                    "contribuabili",
                    "mcpds_sponsorizari"
                ]
            }
        },
        "fiscal": {
            "cui": 6719278,
            "tva": {
                "platitor": true,
                "de_la": "1995-01-04",
                "pana_la": null,
                "la_incasare": {
                    "activ": false,
                    "de_la": null,
                    "pana_la": null,
                    "tip": null
                },
                "split": {
                    "activ": false,
                    "de_la": null,
                    "anulare": null
                }
            },
            "inactiv": {
                "este_inactiv": false,
                "data_inactivare": null,
                "data_reactivare": null,
                "data_publicare": null
            },
            "e_factura": {
                "inrolat": false,
                "de_la": null
            },
            "radiere": {
                "radiata": false,
                "data": null
            },
            "inregistrare": {
                "data": "1995-01-05",
                "stare": "TRANSFER(SOSIRE) din data 19.08.2016",
                "forma_juridica": "SOCIETATE COMERCIALĂ CU RĂSPUNDERE LIMITATĂ",
                "forma_proprietate": "PROPR.PRIVATA-CAPITAL PRIVAT STRAIN",
                "forma_organizare": "PERSOANA JURIDICA"
            },
            "cod_caen": {
                "cod": "4711",
                "denumire": "Comerț cu amănuntul în magazine nespecializate, cu vânzare predominantă de produse alimentare, băuturi și tutun",
                "versiune": "CAEN Rev.2"
            },
            "organ_fiscal": "Direcţia Generală de Administrare a Marilor Contribuabili",
            "domiciliu_fiscal": "MUNICIPIUL BUCUREŞTI, Sector 6 Mun. Bucureşti, Bld. Timişoara, nr. 26",
            "contact": {
                "telefon": "0212246677"
            },
            "verificat_anaf_la": "2026-08-16 00: 00: 00"
        },
        "activitati": {
            "caen_principal": {
                "cod": "4711",
                "denumire": "Comerț cu amănuntul în magazine nespecializate, cu vânzare predominantă de produse alimentare, băuturi și tutun",
                "versiune": "CAEN Rev.2"
            },
            "nr_activitati": 82,
            "activitati": [
                {
                    "cod": "1011",
                    "denumire": "Prelucrarea și conservarea cărnii",
                    "versiune": "CAEN Rev.3",
                    "autorizata": true,
                    "principala": false
                }
            ]
        },
        "financiar_sumar": [
            {
                "an": 2023,
                "tip": "SOCIETATI COMERCIALE CARE DEPUN BILANT LUNG, BILANT SCURT SI RAPORTARI ANUALE",
                "familie": "webblbssl",
                "caen": 4711,
                "decodat": true,
                "indicatori": [
                    {
                        "cod": "I1",
                        "denumire": "ACTIVE IMOBILIZATE - TOTAL",
                        "valoare": 2377113847
                    }
                ]
            }
        ],
        "achizitii_sumar": {
            "total": {
                "nr_contracte": 776,
                "valoare_ron": 78087.56,
                "valoare_eur": null
            },
            "pe_an": [
                {
                    "an": 2023,
                    "nr_contracte": 234,
                    "valoare_ron": 25541.43
                }
            ],
            "pe_tip": [
                {
                    "tip": "notificari",
                    "nr_contracte": 776
                }
            ],
            "top_autoritati": [
                {
                    "autoritate": "ORASUL DARMANESTI (PRIMARIA DARMANESTI)",
                    "autoritate_cui": 4352921,
                    "nr_contracte": 72,
                    "valoare_ron": 18582.71
                }
            ],
            "top_cpv": [
                {
                    "cpv": "15800000-6",
                    "nr_contracte": 257
                }
            ]
        },
        "registre": {
            "nr_registre": 5,
            "registre": [
                {
                    "registru": "anaf_datorii",
                    "denumire": "Datorii către bugetul general consolidat",
                    "autoritate": "ANAF",
                    "licenta": "Guvernare Deschisă v1.0",
                    "nr_intrari": 1
                }
            ]
        },
        "locatie": {
            "cui": 6719278,
            "raw": {
                "judet": "Bucureşti",
                "localitate": "Bucureşti Sectorul 6",
                "strada": "Timişoara",
                "numar": "26",
                "cod_postal": "61331",
                "sector": 6
            },
            "rezolvat": {
                "localitate_id": 13755,
                "localitate": "București Sectorul 6",
                "cod_siruta": 179196,
                "uat": "București",
                "judet": "București",
                "regiune": "București-Ilfov",
                "cod_nuts": "RO321",
                "populatie": 324994,
                "strada_id": 221585,
                "strada": "Timișoara",
                "potrivire": {
                    "loc": "exact",
                    "str": "exact"
                },
                "coordonate": {
                    "lat": 44.428876,
                    "lng": 26.036041,
                    "precizie": "numar"
                }
            }
        },
        "contact": {
            "cui": 6719278,
            "telefon": "0212246677",
            "fax": null,
            "e_factura": false,
            "domiciliu_fiscal": "MUNICIPIUL BUCUREŞTI, Sector 6 Mun. Bucureşti, Bld. Timişoara, nr. 26",
            "organ_fiscal": "Direcţia Generală de Administrare a Marilor Contribuabili"
        },
        "persoane": {
            "nr_persoane": 5,
            "pe_rol": {
                "administrator": 5
            }
        },
        "insolventa": {
            "in_procedura": false,
            "persoane": []
        },
        "sanctiuni": {
            "sanctionat": false,
            "liste": []
        }
    }
}

Error codes

CodeSlugWhen it occurs
401neautentificatToken missing, invalid, expired or revoked.
403feature_indisponibilThe current plan does not include the feature the route depends on.
404negasitCompany [{cui}] not found.
422validareThe route takes no parameters apart from lang: any other parameter returns 422 instead of being ignored.
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": "validare",
        "mesaj": "The route takes no parameters apart from lang: any other parameter returns 422 instead of being ignored.",
        "detalii": {
            "cui": [
                "The value sent does not satisfy the parameter rule."
            ]
        }
    }
}