Business v1 / Nomenclatoare
A register (global)
Every entry in a public register, across the whole base — not just for one company. Each entry carries the confidence of the name-to-tax-ID match, because registers publish names, not tax IDs.
GET
https://oneapi.ro/api/business/v1/registre/{key}
Path parameters
NameTypeDescriptionExample
keyrequired
string
Key of the sectoral register (
ansvsa, ong, anmcs…). The full list is at /api/business/v1/registre.
Query parameters
NameTypeDescriptionAccepted values
judetoptional
string | null
Optional. The county licence-plate code (
CJ) or its name.
max 40 car.
uatoptional
integer | null
Optional. The SIRUTA code of the administrative unit.
1
localitateoptional
integer | null
Optional. The SIRUTA code of the locality.
1
How it behaves
- The entries of a specific register across all companies (not just for one company), paginated. Take the register key from the list at
/registre. - The geographic filters (
judet,uat,localitate) work onloc: the location from the register when it publishes one (AFIR, schools and social services give a SIRUTA code — where the project or the unit is), otherwise the seat of the matched company. An entry with neither — no SIRUTA in the register and not matched to a company (cui: null) — drops out of every geographic filter. That is why registers with few matches (ANSVSA, NGOs, TED) return far fewer entries once filtered. - AFIR gives the SIRUTA code of the administrative unit, not of the village: there the
localitatefilter finds nothing anduatis the right one. - A filter that cannot be resolved (a misspelt county, a non-existent SIRUTA) returns an empty list, not the whole register.
What it is for
- Downloading a full authorisation register, paginated.
- Finding every authorised operator in a field, regardless of company.
- Building your own database of authorised suppliers.
Response structure
FieldTypeDescription
data[].cui
integer
The tax ID.
data[].nume
string
The name.
data[].incredere
string
How confident the match with the company is.
data[].atribute.judet
string
The county.
data[].atribute.adresa
string
The address, from the register raw attributes.
data[].atribute.categorie
string
The category.
data[].atribute.nr_autorizatie
string
The authorisation number, from the raw attributes.
data[].loc
object
Where the entry is, or
null when unknown: from the register (a SIRUTA code in the attributes — where the activity takes place), otherwise the seat of the matched company.
data[].loc.judet
string
The county licence-plate code.
data[].loc.uat
object
The administrative unit
{cod_siruta, nume}.
data[].loc.localitate
object
The locality
{cod_siruta, nume}; null when the register only gives the administrative unit.
data[].loc.din
string
registru or sediu_firma — where the location comes from. The two sources are never mixed.
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/registre/ansvsa
{
"data": [
{
"cui": 15695879,
"nume": "Ianoşi Carn SRL",
"incredere": "exact",
"loc": {
"judet": "AB",
"uat": {
"cod_siruta": 1213,
"nume": "Aiud"
},
"localitate": {
"cod_siruta": 1222,
"nume": "Aiud"
},
"din": "adresa"
},
"atribute": {
"judet": "alba",
"adresa": "Aiud, str.Grădinii,nr.1",
"categorie": "Carmangerie",
"nr_autorizatie": "8/15.02.07"
}
}
],
"meta": {
"paginare": {
"pagina": 1,
"per_pagina": 20,
"total": 451712,
"pagini": 22586
}
}
}
GEThttps://oneapi.ro/api/business/v1/registre/ted_ro
{
"data": [
{
"cui": null,
"nume": "S.C. ROMSERVICE TELECOMUNICATII S.R.L.",
"incredere": "ambiguu",
"loc": null,
"atribute": {
"cpv": [
"32420000",
"30213000",
"32324000",
"38651600",
"45311000"
],
"lista": "TED",
"publicatie": "4822-2024",
"data_publicare": "2024-01-04",
"valoare_totala_anunt": 5494598,
"autoritate_contractanta": "Universitatea din Bucuresti"
}
}
],
"meta": {
"paginare": {
"pagina": 1,
"per_pagina": 20,
"total": 331124,
"pagini": 16557
}
}
}
GEThttps://oneapi.ro/api/business/v1/registre/ansvsa?judet=CJ
{
"data": [
{
"cui": 30267205,
"nume": "Criscor Serv SRL",
"incredere": "exact",
"loc": {
"judet": "CJ",
"uat": {
"cod_siruta": 54975,
"nume": "Cluj-Napoca"
},
"localitate": {
"cod_siruta": 54984,
"nume": "Cluj-Napoca"
},
"din": "sediu_firma"
},
"atribute": {
"judet": "alba",
"adresa": "Piata Complex Cugir",
"categorie": "Rulota fixa",
"nr_autorizatie": "5096/10.04.2013"
}
}
],
"meta": {
"paginare": {
"pagina": 1,
"per_pagina": 20,
"total": 12961,
"pagini": 649
}
}
}
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 register [{key}] does not exist. |
| 422 | validare | An undeclared parameter or a value that fails validation (judet, uat, localitate). 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 (judet, uat, localitate). The offending field is in detalii.",
"detalii": {
"key": [
"The value sent does not satisfy the parameter rule."
]
}
}
}