oneapi
Sign in
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, coduri and the sarbatori engine. 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

CodeSlugWhen it occurs
401neautentificatToken missing, invalid, expired or revoked.
403modul_interzisThe token has no access to the route's module.
422validareThe route takes no parameters apart from lang: any other parameter returns 422 instead of being ignored.
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": "validare",
        "mesaj": "The route takes no parameters apart from lang: any other parameter returns 422 instead of being ignored."
    }
}