Meteo.lt API
Free Lithuanian weather API with no key: hourly long-term forecasts from the national service, with feels-like temperature, gusts and condition codes. Tested example included.
Endpoint tested and returned HTTP 200 on 21 Aug 2026
What is the Meteo.lt API?
Meteo.lt is the Lithuanian Hydrometeorological Service's open API, free of any key. A place's long-term forecast returns hourly entries with air and feels-like temperature, wind speed and gust, cloud cover, pressure, humidity, precipitation and a condition code.
Small national meteorological services rarely publish a clean modern API, which makes this one worth knowing about. Places are addressed by human-readable slug — `vilnius`, `kaunas` — rather than by coordinates or an opaque station id, so the URLs are readable and you can construct them without a lookup step in the common case.
The hourly granularity is the appeal. Where many free forecast APIs give you daily minima and maxima, this returns an entry per hour with `feelsLikeTemperature` computed alongside the air temperature and `windGust` separate from mean wind speed — the two fields that matter for deciding whether to cycle to work. `conditionCode` is a readable string such as `partly-cloudy` rather than a numeric code needing a lookup table, which is a small kindness. Timestamps are `YYYY-MM-DD HH:MM:SS` in UTC with no timezone marker, so parse them as UTC explicitly.
Quick facts
- Base URL
https://api.meteo.lt/v1- Authentication
- No API key and no registration. Attribution to the Lithuanian Hydrometeorological Service is requested.
- Rate limit
- Published as a fair-use policy; the service asks clients not to poll faster than the forecast updates.
- Pricing
- Free. Lithuanian government open data.
- CORS
- Not enabled — call it from your server
- Official docs
- Read the docs
How to use the Meteo.lt API
Every request below was executed against the live API on 21 Aug 2026, and the response shown is the real body it returned — not an illustration.
1. Fetch an hourly long-term forecast
GET https://api.meteo.lt/v1/places/vilnius/forecasts/long-term
curl 'https://api.meteo.lt/v1/places/vilnius/forecasts/long-term'const res = await fetch("https://api.meteo.lt/v1/places/vilnius/forecasts/long-term");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://api.meteo.lt/v1/places/vilnius/forecasts/long-term", timeout=20)
res.raise_for_status()
print(res.json()){
"place": {
"code": "vilnius",
"name": "Vilnius",
"administrativeDivision": "Vilniaus miesto savivaldybė",
"country": "Lietuva",
"countryCode": "LT",
"coordinates": {
"latitude": 54.68705,
"longitude": 25.28291
}
},
"forecastType": "long-term",
"forecastCreationTimeUtc": "2026-08-21 05:17:36",
"forecastTimestamps": [
{
"forecastTimeUtc": "2026-08-21 07:00:00",
"airTemperature": 18.1,
"feelsLikeTemperature": 18.1,
"windSpeed": 2,
"windGust": 6,
"windDirection": 194,
"cloudCover": 29,
"seaLevelPressure": 1011,
"relativeHumidity": 86,
"totalPrecipitation": 0,
"conditionCode": "partly-cloudy"
},
{
"forecastTimeUtc": "2026-08-21 08:00:00",
"airTemperature": 20.3,
"feelsLikeTemperature": 20.3,
"windSpeed": 2,
"windGust": 6,
"windDirection": 198,
"cloudCover": 4,
"seaLevelPressure": 1011,
"relativeHumidity": 79,
"totalPrecipitation": 0,
"conditionCode": "clear"
},
{
"forecastTimeUtc": "2026-08-21 09:00:00",
"airTemperature": 22.1,
"feelsLikeTemperature": 22.1,
"windSpeed": 3,
"windGust": 6,
"windDirection": 204,
"cloudCover": 49,
"seaLevelPressure": 1011,
"relativeHumidity": 71,
"totalPrecipitation": 0,
"conditionCode": "partly-cloudy"
},
{
"forecastTimeUtc": "2026-08-21 10:00:00",
"airTemperature": 23.2,
"feelsLikeTemperature": 23.2,
"windSpeed": 3,
"windGust": 7,
"windDirParameters
| Parameter | Type | Required | Description |
|---|---|---|---|
(place code) | path | Required | Place slug such as `vilnius` or `kaunas`. Fetch `/v1/places` for the full list. vilnius |
(forecast type) | path | Required | `long-term` is the hourly multi-day forecast. It is the only type currently published. long-term |
/places | path | Optional | Every available place with its code, name and coordinates. |
/stations | path | Optional | Observation stations and their recorded readings, as opposed to forecasts. |
Response fields
placeobject- The location: `code`, `name`, `administrativeDivision`, `country`, `countryCode` and `coordinates`. Names are Lithuanian.
forecastTypestring- Echoes the forecast type requested.
forecastCreationTimeUtcstring- When the model run was produced. Compare it against your cache before re-fetching.
forecastTimestampsarray- Hourly forecast entries.
forecastTimestamps[].forecastTimeUtcstring- `YYYY-MM-DD HH:MM:SS` in UTC with no offset marker. Parse as UTC explicitly.
forecastTimestamps[].airTemperature / feelsLikeTemperaturefloat- Degrees Celsius, actual and apparent.
forecastTimestamps[].windSpeed / windGustinteger- Metres per second, mean and gust. Gust is the one that matters for cycling and sailing.
forecastTimestamps[].windDirectioninteger- Degrees, meteorological convention — the direction the wind is coming from.
forecastTimestamps[].cloudCoverinteger- Percentage.
forecastTimestamps[].seaLevelPressureinteger- Hectopascals.
forecastTimestamps[].relativeHumidityinteger- Percentage.
forecastTimestamps[].totalPrecipitationfloat- Millimetres for that hour.
forecastTimestamps[].conditionCodestring- Readable condition such as `partly-cloudy` or `rain` — no lookup table needed.
What you can build with the Meteo.lt API
- Build a Lithuanian weather app on official national data
- Drive cycling or outdoor scheduling from hourly gust forecasts
- Compare feels-like against actual temperature through a cold snap
- Combine forecast and station observation data for verification
Common errors and how to fix them
404 on a place
The slug was guessed rather than taken from the places list.
Fix: Fetch `/v1/places` and use the `code` values it publishes. Diacritics are stripped in the slugs.
Times off by hours
Timestamps are UTC but carry no offset marker.
Fix: Parse `forecastTimeUtc` as UTC explicitly. A naive parser will treat it as local time.
Wind speed looks low
Values are metres per second, not kilometres per hour.
Fix: Multiply by 3.6 for km/h. A gust of 6 m/s is about 22 km/h.
Same forecast on every call
The model runs on a schedule.
Fix: Check `forecastCreationTimeUtc`. Polling more often than the model updates returns identical data.
Meteo.lt API — frequently asked questions
Is the Meteo.lt API free?
Yes, free with no key or registration. It is Lithuanian government open data, and attribution to the Hydrometeorological Service is requested.
How do I find a place code?
Fetch `/v1/places` for the full list. Codes are lowercase slugs with diacritics stripped, so Vilnius is `vilnius`.
What units does it use?
Celsius for temperature, metres per second for wind, hectopascals for pressure, millimetres for precipitation and percentages for humidity and cloud cover.
Does it cover anywhere outside Lithuania?
No. It is the Lithuanian national service, and the places list is Lithuanian locations only.
Tools that pair with this API
Unit Converter
Convert between units of length, weight, temperature, area, volume, speed, time and data storage instantly, with a swap button and common conversion tables.
Wind Chill Calculator
Apply the 2001 North American wind chill formula in Fahrenheit or Celsius, with validity limits flagged and the frostbite exposure time for the result.
Alternatives to Meteo.lt API
If Meteo.lt does not fit, these weather apis cover similar ground. Every one was called before publishing, and each links to its own reference page with a working curl command and the response it returned.
| API | What it does | Auth | CORS | Last verified |
|---|---|---|---|---|
| Open-Meteo | Free weather forecast API with no API key and no signup. Hourly and daily forecasts worldwide, free for commercial use. Working curl example and live response. | No key | Yes | 19 Aug 2026 |
| Open-Meteo Air Quality | Free air quality API with no key: PM2.5, PM10, ozone, nitrogen dioxide, European and US AQI plus pollen forecasts worldwide. Tested curl example included. | No key | Yes | 19 Aug 2026 |
| wttr.in | wttr.in is a free console-oriented weather API with no key. Get weather as plain text, ASCII art, PNG or full JSON with one curl command. Live example included. | No key | Yes | 19 Aug 2026 |
| Open-Meteo Geocoding | Free geocoding API with no key: convert a city or place name into latitude and longitude, with population, country and timezone. Tested curl example and live JSON. | No key | Yes | 19 Aug 2026 |
| NOAA NCEI Natural Hazards | Free natural hazards API with no key: NOAA's historical tsunami, significant earthquake and volcanic eruption databases, filterable by year, region and magnitude. Tested example included. | No key | Yes | 21 Aug 2026 |
| NOAA National Weather Service | Free US National Weather Service API with no key: official forecasts, active severe weather alerts, radar stations and observations. Government source. Tested. | No key | Yes | 20 Aug 2026 |
Meteo.lt is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 21 Aug 2026; always check the official documentation before relying on this API in production, as terms and limits can change.