Business v1 / Căutare universală
Universal search
Searches a term simultaneously in companies (by name) and people (by name) and returns a preview (top 5 of each) plus the totals. For complete paginated lists: /firme/cauta and /persoane/cauta.
GET
https://oneapi.ro/api/business/v1/cauta
Query parameters
NameTypeDescriptionAccepted values
qoptional
string | null
The text searched.
e.g. digitale.g. farmaciee.g. Mega Image
How it behaves
- A search across companies and people at once: the top few of each plus the totals. Convenient for a single search bar, where the user does not know in advance whether they are typing a company or a person name.
What it is for
- A single search bar, when the user does not know whether they are typing a company or a person.
- An autocomplete endpoint for interfaces, with results from both domains.
- Quickly triaging an ambiguous term before going to the specialised route.
Response structure
All fields below live inside data.
FieldTypeDescription
firme.total
integer
The total.
firme.rezultate[].cui
integer
The tax ID.
firme.rezultate[].denumire
string
The name.
firme.rezultate[].cod_inmatriculare
string
The trade register order number (J…).
firme.rezultate[].forma_juridica
string
Legal form (SRL, SA, PFA…).
firme.rezultate[].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.
firme.rezultate[].data_inmatriculare
string
The trade register incorporation date.
firme.rezultate[].sediu.judet
string
The county of the registered office.
firme.rezultate[].sediu.localitate
string
The locality of the registered office.
firme.rezultate[].sediu.cod_siruta
integer
The locality SIRUTA code — chainable to /api/locations/v1.
firme.rezultate[].caen_principal.cod
string
The primary CAEN code.
firme.rezultate[].caen_principal.denumire
string
The name of the primary activity.
firme.rezultate[].fiscal.tva
boolean
VAT-registered.
firme.rezultate[].fiscal.inactiv
boolean
Declared fiscally inactive.
firme.rezultate[].fiscal.e_factura
boolean
Enrolled in e-Invoicing.
firme.rezultate[].financiar
object | null
The latest filed balance sheet (year, turnover, net profit, employees);
null for companies without one — sole traders, new companies —, not zero.
firme.rezultate[].financiar.an
integer
The balance-sheet year.
firme.rezultate[].financiar.cifra_afaceri
number | null
Net turnover, in lei.
firme.rezultate[].financiar.profit_net
number | null
Net profit, in lei; negative = loss.
firme.rezultate[].financiar.salariati
integer | null
The average number of employees.
persoane.total
integer
The total.
persoane.rezultate[].id
integer
The internal identifier.
persoane.rezultate[].nume
string
The name.
persoane.rezultate[].localitate
string
The locality.
persoane.rezultate[].judet
string
The county.
persoane.rezultate[].nr_firme
integer
The number of companies.
Response examples
GEThttps://oneapi.ro/api/business/v1/cauta?q=digital
{
"data": {
"firme": {
"total": 6105,
"rezultate": [
{
"cui": 32917762,
"denumire": "DIGITAL 1 VENTURES DEVELOPMENT SRL",
"cod_inmatriculare": "J12/957/2014",
"forma_juridica": "SRL",
"stare": {
"cod": "1084",
"denumire": "radiată",
"categorie": "radiata"
},
"data_inmatriculare": "2014-03-13",
"sediu": {
"judet": "Cluj",
"localitate": "Cluj-Napoca",
"cod_siruta": 54984
},
"caen_principal": {
"cod": "6201",
"denumire": "Activități de realizare a soft-ului la comandă (software orientat client)"
},
"fiscal": {
"tva": true,
"inactiv": false,
"e_factura": false
},
"financiar": {
"an": 2025,
"cifra_afaceri": 83990,
"profit_net": 3947,
"salariati": 1
}
}
]
},
"persoane": {
"total": 12,
"rezultate": [
{
"id": 15029226,
"identificator": "5a53ec65-c6ba-50bf-b9da-9413dd3d7d42",
"nume": "DIGITAL CODECRAFT S.R.L.",
"localitate": "Constanţa",
"judet": "Constanţa",
"nr_firme": 0
}
]
}
}
}
GEThttps://oneapi.ro/api/business/v1/cauta?q=farmacie
{
"data": {
"firme": {
"total": 1515,
"rezultate": [
{
"cui": 33436988,
"denumire": "FARMACIE DIN STRĂBUNI SRL",
"cod_inmatriculare": "J40/8977/2014",
"forma_juridica": "SRL",
"stare": {
"cod": "1048",
"denumire": "funcțiune",
"categorie": "activa"
},
"data_inmatriculare": "2014-07-30",
"sediu": {
"judet": "București",
"localitate": "București Sectorul 2",
"cod_siruta": 179150
},
"caen_principal": {
"cod": "4791",
"denumire": "Comerț cu amănuntul prin intermediul caselor de comenzi sau prin Internet"
},
"fiscal": {
"tva": false,
"inactiv": false,
"e_factura": true
},
"financiar": {
"an": 2025,
"cifra_afaceri": 40198,
"profit_net": -41092,
"salariati": 1
}
}
]
},
"persoane": {
"total": 22,
"rezultate": [
{
"id": 15241604,
"identificator": "89dac5e9-c4ba-5daa-868a-f119397db3e1",
"nume": "FARMACIA ELIXIRFARM IMPEX SRL",
"localitate": "Bucureşti Sectorul 1",
"judet": "Bucureşti",
"nr_firme": 1
}
]
}
}
}
GEThttps://oneapi.ro/api/business/v1/cauta?q=Mega+Image
{
"data": {
"firme": {
"total": 27,
"rezultate": [
{
"cui": 8795433,
"denumire": "MEGA IMAGE COM SRL",
"cod_inmatriculare": "J11/411/1996",
"forma_juridica": "SRL",
"stare": {
"cod": "1084",
"denumire": "radiată",
"categorie": "radiata"
},
"data_inmatriculare": "1996-09-17",
"sediu": {
"judet": "Caraș-Severin",
"localitate": "Reșița",
"cod_siruta": 50807
},
"caen_principal": {
"cod": "5262",
"denumire": "Comerț cu amănuntul prin standuri și piețe"
},
"fiscal": {
"tva": false,
"inactiv": false,
"e_factura": false
},
"financiar": null
}
]
},
"persoane": {
"total": 0,
"rezultate": []
}
}
}
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 | An undeclared parameter or a value that fails validation (q). The offending field is in detalii. |
| 422 | q_scurt | The search term must have at least 3 characters. |
| 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 (q). The offending field is in detalii.",
"detalii": {
"q": [
"The value sent does not satisfy the parameter rule."
]
}
}
}