Utile v1 / Meta
Module coverage
What the module holds, area by area: how many countries have verified holidays, how many time zones, how many airports, how far the calendars reach. The entry point before you ask for data.
GET
https://oneapi.ro/api/utile/v1/acoperire
Query parameters
This route accepts no query parameters.
How it behaves
- The route is free, like every coverage route on the platform: you must be able to find out what is inside before taking a token.
- Three zones report
in_baza: false—timp,coduriand thesarbatoriengine. That is not a gap: the data comes from tzdata and ICU/CLDR, which ship with the PHP runtime. They move with an image upgrade rather than an import, and their version appears in every response of that zone. - The six zones carry six different licences. They are gathered here so you do not have to read them one route at a time.
What it is for
- Check, before integrating, how many airports, countries and time zones the module holds and where they come from.
- Find out which tzdata and CLDR versions the answers rest on, so you know the vintage of the data.
- See which zones have data in the database and which are computed from the runtime.
Response structure
All fields below live inside data.
FieldTypeDescription
zone
object
One entry per zone, with its volumes, source and whether it is stored in the database.
zone.sarbatori.tari
integer
How many countries the holiday engine covers (two-letter ISO codes).
zone.sarbatori.subdiviziuni
integer
How many subdivisions (states, Länder, provinces) have their own calendar.
zone.sarbatori.verificate
integer
How many countries are checked against the letter of the law. Currently only Romania.
zone.sarbatori.sursa
string
zone.sarbatori.in_baza
boolean
Whether the item is present in our database, not just in the source code list.
zone.timp.zone
integer
How many IANA time zones are available.
zone.timp.versiune_tzdata
string
The IANA database version in the runtime (e.g.
2026.3).
zone.timp.sursa
string
zone.timp.in_baza
boolean
Whether the item is present in our database, not just in the source code list.
zone.aeroporturi.total
integer
All aerodromes, including heliports and closed strips.
zone.aeroporturi.cu_iata
integer
How many carry an IATA code — that is, are airports in the everyday sense.
zone.aeroporturi.cu_icao
integer
zone.aeroporturi.cu_curse_regulate
integer
How many have scheduled service according to the source.
zone.aeroporturi.mari
integer
zone.aeroporturi.tari
integer
Countries covered by the response.
zone.aeroporturi.piste
integer
Total number of runways described.
zone.aeroporturi.sursa
string
zone.aeroporturi.in_baza
boolean
Whether the item is present in our database, not just in the source code list.
zone.adrese.tari
integer
For how many countries we hold addressing rules.
zone.adrese.cu_format_propriu
integer
How many declare their own template; the rest use the source default.
zone.adrese.cu_cod_postal
integer
zone.adrese.cu_subdiviziuni
integer
zone.adrese.sursa
string
zone.adrese.in_baza
boolean
Whether the item is present in our database, not just in the source code list.
zone.coduri.tari
integer
Countries covered by the response.
zone.coduri.valute
integer
Currencies covered by the response.
zone.coduri.versiune_cldr
string
The CLDR version in the runtime.
zone.coduri.sursa
string
zone.coduri.in_baza
boolean
Whether the item is present in our database, not just in the source code list.
zone.email.domenii_temporare
integer
How many domains are on the disposable list.
zone.email.sursa
string
zone.email.in_baza
boolean
Whether the item is present in our database, not just in the source code list.
observatie
string
Explains why three zones hold no data in the database.
Response examples
GEThttps://oneapi.ro/api/utile/v1/acoperire
{
"data": {
"zone": {
"sarbatori": {
"tari": 49,
"subdiviziuni": 108,
"verificate": 1,
"sursa": "Yasumi (MIT) + art. 139 Codul Muncii pentru România",
"in_baza": false
},
"timp": {
"zone": 419,
"versiune_tzdata": "2026.3",
"sursa": "IANA tzdata — domeniu public, din runtime",
"in_baza": false
},
"aeroporturi": {
"total": 86112,
"cu_iata": 9055,
"cu_icao": 10511,
"cu_curse_regulate": 4335,
"mari": 1174,
"tari": 247,
"piste": 48250,
"sursa": "OurAirports — domeniu public",
"in_baza": true
},
"adrese": {
"tari": 252,
"cu_format_propriu": 198,
"cu_cod_postal": 182,
"cu_subdiviziuni": 62,
"sursa": "Google libaddressinput — Apache-2.0",
"in_baza": true
},
"coduri": {
"tari": 251,
"valute": 154,
"versiune_cldr": "76.1",
"sursa": "ICU/CLDR — Unicode License, din runtime",
"in_baza": false
},
"email": {
"domenii_temporare": 8943,
"sursa": "disposable-email-domains — CC0 1.0; verificarea MX se face live, prin DNS",
"in_baza": true
}
},
"observatie": "Trei zone (`timp`, `coduri` și motorul de `sarbatori`) NU au date în bază: vin din tzdata și ICU/CLDR, care sunt în runtime. Se actualizează la un upgrade de imagine, nu la un import — de aceea răspunsurile lor poartă versiunea sursei."
}
}
Error codes
| Code | Slug | When it occurs |
|---|---|---|
| 401 | neautentificat | Token missing, invalid, expired or revoked. |
| 403 | modul_interzis | The token has no access to the route's module. |
| 422 | validare | The route takes no parameters apart from lang: any other parameter returns 422 instead of being ignored. |
| 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": "The route takes no parameters apart from lang: any other parameter returns 422 instead of being ignored."
}
}