oneapi
Sign in
Locations v1 / Profil & comparație

Profile of a county

⭐ Everything we know about a county in a single call: demographics, companies (total, VAT, density), unemployment at the latest month, building permits at the latest year and the 19 INS indicators. It replaces five separate calls.

GET
https://oneapi.ro/api/locations/v1/judete/{cod}/profil

Path parameters

NameTypeDescriptionExample
codrequired string County code, two letters (e.g. CJ). Bucharest is B.

Query parameters

This route accepts no query parameters.

How it behaves

  • ⭐ Composes what /judete/{cod}/statistici, /firme/sumar, /somaj, /autorizatii and /statistici/ins return separately. There is no new data here — the gain is the number of round trips.
  • Each section keeps its own period: the census is from 2021, unemployment is at the latest published month, building permits at the latest year, and every INS indicator has its own year. They are not forced to a common denominator, because that would mean claiming a simultaneity that does not exist.
  • A section with no data comes back as null rather than being absent — so the response shape is the same for every county.
  • firme.densitate = companies per km², derived from the county's area.

What it is for

  • Rendering a complete county page with a single call instead of five.
  • Feeding a regional dashboard without assembling the calls by hand.
  • Exporting a county record for a report, with every quantity dated.

Response structure

FieldTypeDescription
data.nivel string The entity level (judet).
data.cod string The code requested.
data.nume string The name of the county.
data.populatie integer | null The census population.
data.suprafata_kmp number | null Area, in km².
data.densitate number | null Inhabitants per km².
data.nr_uat integer | null How many administrative units the county has.
data.nr_localitati integer | null How many active localities it has.
data.firme.total integer The total number of companies registered in the entity.
data.firme.platitori_tva integer How many of them are VAT-registered.
data.firme.densitate number | null Companies per km²; null where there is no area.
data.somaj.numar number | null The number of registered unemployed at the latest published month.
data.somaj.pondere number | null The share of labour resources, as a percentage.
data.somaj.numitor string | null What the share is measured against — this is not the unemployment rate.
data.somaj.perioada.an integer The year of the latest published month.
data.somaj.perioada.luna integer The month (1–12).
data.autorizatii.an integer The latest year with published permits.
data.autorizatii.categorii[].categorie string The construction category.
data.autorizatii.categorii[].numar number | null How many permits were issued.
data.autorizatii.categorii[].mp_utili number | null The usable floor area permitted, in m².
data.statistici_ins[].indicator string The INS indicator key.
data.statistici_ins[].tema string The theme it belongs to.
data.statistici_ins[].nume string The name of the indicator.
data.statistici_ins[].valoare number The latest published value.
data.statistici_ins[].um string | null The unit of measure.
data.statistici_ins[].perioada string The reference period of the value.
data.statistici_ins[].matrice string The source TEMPO matrix.
meta.actualizat object Prospețimea datelor pe domenii (dată ISO 8601).

Response examples

GEThttps://oneapi.ro/api/locations/v1/judete/CJ/profil
{
    "data": {
        "nivel": "judet",
        "cod": "CJ",
        "nume": "Cluj",
        "populatie": 679141,
        "suprafata_kmp": 6666.8818,
        "densitate": 101.9,
        "nr_uat": 81,
        "nr_localitati": 434,
        "firme": {
            "total": 194068,
            "platitori_tva": 26852,
            "densitate": 29.11
        },
        "somaj": {
            "numar": 5331,
            "pondere": 1.2,
            "numitor": "resurse de muncă",
            "perioada": {
                "an": 2026,
                "luna": 7
            }
        },
        "autorizatii": {
            "an": 2025,
            "categorii": [
                {
                    "categorie": "administrative",
                    "numar": 2,
                    "mp_utili": 12195
                }
            ]
        },
        "statistici_ins": [
            {
                "indicator": "populatie_domiciliu",
                "tema": "demografie",
                "nume": "Populația după domiciliu (1 ianuarie)",
                "valoare": 747392,
                "um": "Numar persoane",
                "perioada": "2026-01-01",
                "matrice": "POP107A"
            }
        ]
    },
    "meta": {
        "actualizat": {
            "administrativ": "2026-08-15T16: 39: 14+03: 00",
            "populatie": "2026-08-15T16: 40: 07+03: 00"
        }
    }
}

Error codes

CodeSlugWhen it occurs
401neautentificatToken missing, invalid, expired or revoked.
403feature_indisponibilThe current plan does not include the feature the route depends on.
404negasitThe county does not exist.
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": "negasit",
        "mesaj": "The county does not exist."
    }
}