Locations v1 / Educatie
Schools of an administrative unit
The educational establishments in the unit, both legal entities and the structures attached to them, by level and by urban or rural setting. From the official school network, not estimates.
GET
https://oneapi.ro/api/locations/v1/uat/{cod}/educatie
Path parameters
NameTypeDescriptionExample
codrequired
string
SIRUTA code of the administrative-territorial unit (e.g.
54975 for Cluj-Napoca).
Query parameters
NameTypeDescriptionAccepted values
per_paginaoptional
text
How many institutions the list returns (50 by default, 200 at most). The summary always stays complete.
e.g. 50
paginaoptional
text
The page, counted from 1.
e.g. 1
How it behaves
- The source is the Ministry of Education's school network register. The link to the territory is made through the locality's SIRUTA code, which every institution carries — verified: all 18,022 institutions resolve in the nomenclature.
sumardeliberately separates institutions with legal personality (unitati_pj) from subordinate structures (structuri_arondate). They are different things: a commune with one school and four subordinate kindergartens hasunitati_pj: 1, not „5 schools". A single total would inflate the figure several times over.unitatiis paginated, because a large municipality has hundreds of institutions (Cluj-Napoca: 200). The summary and the breakdowns by type and by urban/rural are computed over the WHOLE unit, regardless of pagination.cod_siiiris the institution's official identifier in the Ministry of Education's system — the stable key, if you want to track the same institution over time.
What it is for
- Showing the school network on the detail page of a commune or a town.
- Comparing educational coverage between units (how many institutions, of what kind, urban or rural).
- Checking whether a locality has a kindergarten or a lower-secondary school before a relocation or investment decision.
Response structure
FieldTypeDescription
data.uat.cod_siruta
integer
SIRUTA code of the territorial unit.
data.uat.nume
string
The name, exactly as the source publishes it.
data.uat.tip
string
The type of unit (municipality/town/commune).
data.judet.cod_siruta
integer
SIRUTA code of the territorial unit.
data.judet.nume
string
The name, exactly as the source publishes it.
data.judet.cod_auto
string
Vehicle registration prefix of the county.
data.sumar.unitati_pj
integer
Institutions with legal personality (the school as an entity).
data.sumar.structuri_arondate
integer
Subordinate structures (premises, attached kindergartens).
data.sumar.total
integer
The total number of register entries for the requested territory.
data.pe_tip[]
array
Breakdown by institution type
[{tip, nr}] (school, school sports club and so on).
data.pe_tip[].tip
string
data.pe_tip[].nr
integer
Number of items in this group.
data.pe_mediu
object
Urban/rural breakdown, by the institution's declared area.
data.pe_mediu.urban
integer
data.unitati[]
array
The paginated list:
{denumire, cod_siiir, cui?, statut, tip, mediu, adresa?, an_scolar, localitate}.
data.unitati[].denumire
string
The name, exactly as the source publishes it.
data.unitati[].cod_siiir
string
data.unitati[].cui
integer
Tax identification number, without the
RO prefix.
data.unitati[].statut
string
The state the item is in at the source.
data.unitati[].tip
string
data.unitati[].mediu
string
Area of residence (urban or rural).
data.unitati[].adresa
string
The address, in the form published by the source.
data.unitati[].an_scolar
string
data.unitati[].localitate.nume
string
The name, exactly as the source publishes it.
data.unitati[].localitate.cod_siruta
integer
SIRUTA code of the territorial unit.
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/locations/v1/uat/54975/educatie
{
"data": {
"uat": {
"cod_siruta": 54975,
"nume": "Cluj-Napoca",
"tip": "municipiu"
},
"judet": {
"cod_siruta": 127,
"nume": "Cluj",
"cod_auto": "CJ"
},
"sumar": {
"unitati_pj": 147,
"structuri_arondate": 53,
"total": 200
},
"pe_tip": [
{
"tip": "Unitate de învățământ",
"nr": 192
}
],
"pe_mediu": {
"urban": 200
},
"unitati": [
{
"denumire": "COLEGIUL TERȚIAR NONUNIVERSITAR AL USAMV CLUJ-NAPOCA",
"cod_siiir": "1262105561",
"cui": 4288381,
"statut": "AR",
"tip": "Unitate de învățământ",
"mediu": "urban",
"adresa": "Calea Mănăștur nr. 3-5",
"an_scolar": "2025-2026",
"localitate": {
"nume": "Cluj-Napoca",
"cod_siruta": 54984
}
}
]
},
"meta": {
"paginare": {
"pagina": 1,
"per_pagina": 50,
"total": 200,
"pagini": 4
}
}
}
GEThttps://oneapi.ro/api/locations/v1/uat/155243/educatie
{
"data": {
"uat": {
"cod_siruta": 155243,
"nume": "Timișoara",
"tip": "municipiu"
},
"judet": {
"cod_siruta": 350,
"nume": "Timiș",
"cod_auto": "TM"
},
"sumar": {
"unitati_pj": 96,
"structuri_arondate": 44,
"total": 140
},
"pe_tip": [
{
"tip": "Unitate de învățământ",
"nr": 130
}
],
"pe_mediu": {
"urban": 140
},
"unitati": [
{
"denumire": "COLEGIUL DE ÎNVĂȚĂMÂNT TERȚIAR NONUNIVERSITAR USV TIMIȘOARA",
"cod_siiir": "3562106946",
"cui": 3487181,
"statut": "AR",
"tip": "Unitate de învățământ",
"mediu": "urban",
"adresa": "CALEA ARADULUI nr. 119",
"an_scolar": "2025-2026",
"localitate": {
"nume": "Timișoara",
"cod_siruta": 155252
}
}
]
},
"meta": {
"paginare": {
"pagina": 1,
"per_pagina": 50,
"total": 140,
"pagini": 3
}
}
}
GEThttps://oneapi.ro/api/locations/v1/uat/1071/educatie
{
"data": {
"uat": {
"cod_siruta": 1071,
"nume": "Ciugud",
"tip": "comuna"
},
"judet": {
"cod_siruta": 10,
"nume": "Alba",
"cod_auto": "AB"
},
"sumar": {
"unitati_pj": 1,
"structuri_arondate": 1,
"total": 2
},
"pe_tip": [
{
"tip": "Unitate de învățământ",
"nr": 2
}
],
"pe_mediu": {
"rural": 2
},
"unitati": [
{
"denumire": "GRĂDINIȚA CU PROGRAM PRELUNGIT CIUGUD",
"cod_siiir": "0162106091",
"cui": 12857518,
"statut": "AR",
"tip": "Unitate de învățământ",
"mediu": "rural",
"adresa": "CALEA ALBA IULIA nr. 11",
"an_scolar": "2025-2026",
"localitate": {
"nume": "Drâmbar",
"cod_siruta": 1099
}
}
]
},
"meta": {
"paginare": {
"pagina": 1,
"per_pagina": 50,
"total": 2,
"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 | No administrative unit exists for the given SIRUTA code. |
| 422 | validare | A parameter failed validation (per_pagina, pagina); detalii says which and why. |
| 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": "A parameter failed validation (per_pagina, pagina); detalii says which and why.",
"detalii": {
"cod": [
"The value sent does not satisfy the parameter rule."
]
}
}
}