Business v1 / Firme
Working points
A company's hotels, restaurants, food shops, pharmacies and approved establishments, with address, authorisation and, where available, coordinates.
GET
https://oneapi.ro/api/business/v1/firme/{cui}/puncte-lucru
Path parameters
NameTypeDescriptionExample
cuirequired
string
The company tax identification number, without the
RO prefix (e.g. 6719278).
Query parameters
NameTypeDescriptionAccepted values
sursalistoptional
text
Optional. One or more registers, comma-separated or as a list (
sursa[]=): situr_cazare, situr_alimentatie, ansvsa, dgsante, farmacii. All by default.
situr_cazaresitur_alimentatieansvsadgsantefarmacii
How it behaves
- This is not the list of working points declared at the Trade Register — that is not published openly anywhere. The Ministry of Finance has a parent-company column for secondary units but leaves it empty on all 2.65 million rows (checked on 17 Sep). Instead, the route rebuilds the authorised locations from registers where a row is a physical unit: classified tourism establishments (Ministry of Tourism), sanitary-veterinary units (ANSVSA), establishments approved for intra-EU trade (DG SANTE) and pharmacies.
- A company with no authorised activity in these fields gets an empty list, even if it has working points.
meta.surseshows where the search went and how much each register returned. - SITUR gives the operator's tax ID, so the link is reliable. ANSVSA and pharmacies give only the name: the tax ID comes from the matching engine, and
potriviresays how certain it is. Names truncated at source ("SC DISTRIB") stay unlinked. - The same unit can appear several times in ANSVSA, once for each authorised activity (shop and online sales, for instance).
What it is for
- Mapping a chain: every restaurant or shop of an operator, by county.
- Checking that a partner really has the authorised unit at the declared address.
- Prospecting in hospitality and food retail: the operators with the most locations in a county.
Response structure
FieldTypeDescription
data[].sursa
string
The register the location comes from:
situr_cazare, situr_alimentatie, ansvsa, dgsante, farmacii.
data[].operator
string
The operator, as written in the register.
data[].unitate
string | null
The unit name (the hotel, the restaurant), where the register gives it.
data[].tip
string | null
The unit type:
HOTEL, RESTAURANT CLASIC, MAGAZIN ALIMENTAR…
data[].categorie
string | null
The tourism classification (
3 - STELE), SITUR only.
data[].adresa
string | null
The unit address, from the register.
data[].localitate
string | null
The locality, where the register gives it separately.
data[].judet
string | null
The county, named as in the Locations nomenclature;
null when the register does not give it.
data[].coordonate
object | null
The unit coordinates
{lat, lng}, where the register publishes them (SITUR almost always, ANSVSA rarely).
data[].coordonate.lat
number
Latitude, in decimal degrees (WGS 84).
data[].coordonate.lng
number
Longitude, in decimal degrees (WGS 84).
data[].autorizatie.numar
string | null
The number of the authorisation, certificate or approval.
data[].autorizatie.data
string | null
The issue date, where the register gives it separately.
data[].autorizatie.valabila_pana_la
string | null
The expiry date, where known.
data[].potrivire
string
exact — tax ID given by the register or identical name; probabil — link made by the matching engine from name and place.
meta.surse
object
How many locations the company has in each register consulted, zero included.
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/6205722/puncte-lucru
{
"data": [
{
"sursa": "ansvsa",
"operator": "Premier Restaurants Romania SRL",
"unitate": null,
"tip": "Restaurant-Vanzare internet",
"categorie": null,
"adresa": "Alba Iulia, Calea Motilor, Nr.120",
"localitate": null,
"judet": "Alba",
"coordonate": null,
"autorizatie": {
"numar": "9087/12.12.2019",
"data": null,
"valabila_pana_la": null
},
"potrivire": "exact"
}
],
"meta": {
"surse": {
"situr_cazare": 0,
"situr_alimentatie": 52,
"ansvsa": 82,
"dgsante": 0,
"farmacii": 0
},
"paginare": {
"pagina": 1,
"per_pagina": 20,
"total": 134,
"pagini": 7
}
}
}
GEThttps://oneapi.ro/api/business/v1/firme/12751583/puncte-lucru?sursa=situr_alimentatie
{
"data": [
{
"sursa": "situr_alimentatie",
"operator": "ROMPETROL DOWNSTREAM SRL",
"unitate": "HEI ALBA IULIA 2",
"tip": "SNACK-BAR",
"categorie": "2 - STELE",
"adresa": "NR. 30, Mun. Alba Iulia",
"localitate": "Mun. Alba Iulia",
"judet": "Alba",
"coordonate": {
"lat": 46.0991997,
"lng": 23.6017537
},
"autorizatie": {
"numar": "17551",
"data": "16.11.2021",
"valabila_pana_la": null
},
"potrivire": "exact"
}
],
"meta": {
"surse": {
"situr_alimentatie": 158
},
"paginare": {
"pagina": 1,
"per_pagina": 20,
"total": 158,
"pagini": 8
}
}
}
GEThttps://oneapi.ro/api/business/v1/firme/6719278/puncte-lucru
{
"data": [
{
"sursa": "ansvsa",
"operator": "MEGA IMAGE SRL",
"unitate": null,
"tip": "fast food",
"categorie": null,
"adresa": "municipiul București, Sectorul 6, b-dul Timișoara, nr. 26, et. 2, PL",
"localitate": null,
"judet": "Brașov",
"coordonate": null,
"autorizatie": {
"numar": "741/21.07.2026",
"data": null,
"valabila_pana_la": null
},
"potrivire": "exact"
}
],
"meta": {
"surse": {
"situr_cazare": 0,
"situr_alimentatie": 0,
"ansvsa": 1561,
"dgsante": 0,
"farmacii": 0
},
"paginare": {
"pagina": 1,
"per_pagina": 20,
"total": 1561,
"pagini": 79
}
}
}
GEThttps://oneapi.ro/api/business/v1/firme/14399840/puncte-lucru
{
"data": [
{
"sursa": "ansvsa",
"operator": "DANTE INTERNATIONAL SA",
"unitate": null,
"tip": "DEPOZIT ALIMENTAR",
"categorie": null,
"adresa": "MUN. BACAU, STR. STEFAN CEL MARE, ARENA MALL, NR. 28",
"localitate": null,
"judet": "Bacău",
"coordonate": null,
"autorizatie": {
"numar": "VA-BC-0014872/29.11.2022",
"data": null,
"valabila_pana_la": null
},
"potrivire": "exact"
}
],
"meta": {
"surse": {
"situr_cazare": 0,
"situr_alimentatie": 0,
"ansvsa": 17,
"dgsante": 0,
"farmacii": 0
},
"paginare": {
"pagina": 1,
"per_pagina": 20,
"total": 17,
"pagini": 1
}
}
}
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 | Company [{cui}] not found. |
| 422 | validare | An unknown value in sursa or an undeclared parameter. 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 unknown value in sursa or an undeclared parameter. The offending field is in detalii.",
"detalii": {
"cui": [
"The value sent does not satisfy the parameter rule."
]
}
}
}