Погодный API (weather API) — это веб-сервис, который по HTTP-запросу отдает данные о погоде (обычно в формате JSON): текущую температуру, прогноз и историю наблюдений для заданной точки на карте. Вы отправляете координаты или название города, а в ответ получаете структурированные данные, которые можно подставить в свой сайт, приложение или скрипт.
Содержание
Ниже разберу, чем погодный API отличается от готового виджета, сравню четыре популярных сервиса с актуальными на 2026 лимитами бесплатных планов, покажу рабочий запрос на Python к Open-Meteo (он не требует ключа) и приведу таблицу сравнения. Отдельно отмечу, какие цифры устаревают быстрее всего.
Чем weather API отличается от виджета и какие данные отдает
Полезно сразу развести три близких понятия:
- Погодный виджет — готовый визуальный блок (картинка или iframe), который вставляют на страницу почти без кода. Вы не управляете данными, только внешним видом.
- Погодный API — «сырые» данные по запросу. Вы сами решаете, что показать и как: свой дизайн, свои единицы измерения, своя логика.
- SDK или клиентская библиотека — обертка над тем же API для конкретного языка, чтобы не собирать запросы вручную.
Заголовок статьи про API, поэтому дальше речь именно о данных по запросу.
Почти любой погодный API отдает три разных типа данных, и их важно не путать:
- Текущая погода (current) — что происходит прямо сейчас в точке: температура, ветер, влажность.
- Прогноз (forecast) — что ожидается: почасовой на ближайшие часы и посуточный на несколько дней вперед.
- Исторические данные (history, archive) — что было в прошлом: за вчера, за прошлый год, иногда за десятилетия.
Бесплатные планы обычно щедры на текущую погоду и короткий прогноз, но урезают историю и длину прогноза. Это первое, на что стоит смотреть при выборе.
Бесплатные погодные API на 2026: обзор
Важно: состав тарифов, бесплатные лимиты и цены провайдеры меняют часто. Числа ниже актуальны на сентябрь 2026. Перед тем как закладывать сервис в проект, сверьтесь с официальной страницей тарифов провайдера — это граница актуальности, которую статья гарантировать не может.
OpenWeatherMap
Самый известный сервис, с которого часто начинают. Бесплатный план дает доступ к текущей погоде и прогнозу на 5 дней с шагом 3 часа: около 60 запросов в минуту и до 1 000 000 запросов в месяц. Нужен API-ключ (регистрация бесплатна).
Нюанс, на котором спотыкаются новички: расширенный набор данных (One Call API 3.0) вынесен в отдельную подписку. Первые 1000 запросов в день там бесплатны, но для активации нужно привязать банковскую карту. Старый бесплатный One Call 2.5 закрыт, поэтому примеры из статей 2021-2022 годов на нем уже не работают.
WeatherAPI.com
Универсальный REST-сервис с ответами в JSON и XML. На бесплатном плане — до 1 000 000 запросов в месяц, текущая погода, прогноз до 3 дней, астрономия (восход, фазы Луны), поиск по названию места. Нужен API-ключ.
Историю и длинный прогноз (до 14 дней) отдают уже платные планы, а бесплатная история ограничена коротким недавним периодом. Хороший выбор, когда нужны текущие данные и короткий прогноз без возни с картой.
Open-Meteo
Открытый проект, который агрегирует данные национальных метеомоделей (ECMWF, GFS, ICON). Главное преимущество для обучения и прототипов: для некоммерческого использования ключ не нужен вообще, лимит — порядка 10 000 запросов в день. Есть текущая погода, почасовой и посуточный прогноз, а исторические данные — через отдельный архивный домен.
Именно на нем удобно показать первый запрос: без регистрации и ключа код запускается сразу. Для коммерческого использования у Open-Meteo есть платные планы с ключом.
Visual Crossing
Сервис с сильной исторической базой: архив уходит на десятилетия назад, есть и прогноз. Бесплатный план — около 1000 записей в день (запись примерно равна данным за один день или час) плюс API-ключ. Подходит, когда основная задача — анализ прошлой погоды, а не только текущая ситуация.
Что еще есть
- Tomorrow.io — глобальный сервис с гиперлокальным прогнозом; бесплатный план порядка 500 запросов в день, нужен ключ.
- Apple WeatherKit — около 500 000 запросов в месяц включены в платную подписку Apple Developer Program; исторических данных нет, аутентификация по токену.
- Meteostat — открытые исторические данные; удобнее всего через Python-библиотеку
meteostat, ключ не нужен.
Пример запроса на Python (Open-Meteo)
Возьму Open-Meteo, потому что запрос работает без ключа — его можно скопировать и запустить сразу. Нужна только библиотека requests (pip install requests). Запрашиваю текущую погоду для Москвы (координаты 55.75, 37.62):
import requests
url = "https://api.open-meteo.com/v1/forecast"
params = {
"latitude": 55.75, # широта (Москва)
"longitude": 37.62, # долгота
"current": "temperature_2m,wind_speed_10m,relative_humidity_2m",
}
response = requests.get(url, params=params, timeout=10)
response.raise_for_status() # выбросит исключение при HTTP-ошибке (4xx/5xx)
data = response.json()
current = data["current"]
units = data["current_units"]
print(f"Температура: {current['temperature_2m']} {units['temperature_2m']}")
print(f"Ветер: {current['wind_speed_10m']} {units['wind_speed_10m']}")
# Температура: 12.4 °C
# Ветер: 9.7 km/h
Метод requests.get собирает из словаря params строку запроса, а response.json() превращает JSON-ответ в обычный словарь Python. Вызов raise_for_status() важен: без него при ошибке (например, исчерпан лимит) код молча пойдет дальше и упадет позже на попытке достать несуществующий ключ.
Ответ Open-Meteo приходит примерно такой (сокращенно):
{
"latitude": 55.75,
"longitude": 37.625,
"timezone": "GMT",
"elevation": 144.0,
"current_units": {
"time": "iso8601",
"temperature_2m": "°C",
"wind_speed_10m": "km/h",
"relative_humidity_2m": "%"
},
"current": {
"time": "2026-09-16T10:00",
"temperature_2m": 12.4,
"wind_speed_10m": 9.7,
"relative_humidity_2m": 81
}
}
Конкретные числа температуры и ветра зависят от момента запроса — у вас будут свои. Структура ответа (current, current_units) при этом стабильна, на нее и стоит опираться в коде.
Типичные ошибки при работе с погодным API
Забыли ключ у сервиса, где он обязателен. Запрос к OpenWeatherMap без параметра appid вернет не погоду, а ошибку 401 и JSON вида:
{"cod": 401, "message": "Invalid API key..."}
Симптом — KeyError в вашем коде на попытке прочитать data["main"]. Исправление: передать ключ и проверять статус ответа (raise_for_status), а не сразу лезть в поля данных.
Уперлись в лимит запросов. При превышении квоты сервис отвечает статусом 429 (Too Many Requests). Симптом — код, работавший днем, к вечеру начинает падать. Исправление: кэшировать ответы (погода не меняется каждую секунду), опрашивать API раз в 10-30 минут и не дергать его в цикле по каждому пользователю.
Перепутали широту и долготу. Если поменять latitude и longitude местами, API вернет корректный по формату ответ, но для другой точки планеты — ошибки не будет, будут неверные данные. Проверяйте порядок: сначала широта, потом долгота.
Сравнение погодных API
Свод по бесплатным планам на сентябрь 2026 (перепроверять у провайдера):
| Сервис | Ключ | Бесплатный лимит | Текущая | Прогноз | История | Формат |
|---|---|---|---|---|---|---|
| OpenWeatherMap | да | ~60/мин, 1 млн/мес | да | 5 дней / 3 ч | ограниченно (платно) | JSON, XML |
| WeatherAPI.com | да | ~1 млн/мес | да | до 3 дней | коротко | JSON, XML |
| Open-Meteo | нет | ~10 000/день | да | почасовой, до 16 дней | архив (отдельно) | JSON |
| Visual Crossing | да | ~1000 записей/день | да | до 15 дней | глубокий архив | JSON, CSV |
Как читать таблицу: для быстрого старта и учебы без карты берите Open-Meteo; для истории — Visual Crossing; для текущей погоды и короткого прогноза с большими лимитами — WeatherAPI.com или OpenWeatherMap.
Выводы
- Погодный API отдает данные по HTTP-запросу (обычно JSON), в отличие от готового виджета: дизайн и логику вы строите сами.
- Различайте три типа данных: текущая погода, прогноз и история; бесплатные планы обычно урезают историю и длину прогноза.
- Для старта без регистрации удобен Open-Meteo: ключ не нужен, запрос на Python запускается сразу.
- Всегда проверяйте статус ответа (
raise_for_status) и кэшируйте данные, чтобы не упереться в лимит 429. - Лимиты, цены и состав тарифов быстро устаревают — перед выбором сверяйтесь с официальной страницей провайдера.
Где применяется / связь с практикой
Погодный API — типовой первый «настоящий» проект для новичка: получить данные из интернета, разобрать JSON, показать результат. На нем удобно освоить работу с requests, обработку ошибок сети и кэширование — те же навыки нужны для любого другого API, от карт до курсов валют.
Освойте тему на практике
Собрать такой скрипт с нуля и понять, как устроены запросы, разбор JSON и обработка ошибок, помогает курс python-basic в Otus. Посмотреть уровень и формат занятий, не оплачивая курс, можно на бесплатных вебинарах — там разбирают конкретные задачи и отвечают на вопросы.
Смежные темы: 10 библиотек для Python (там же про requests для запросов к API), AI Mood Tracker: сервис на внешних данных и API.
FAQ: частые вопросы
Какой погодный API лучше для новичка без банковской карты?
Open-Meteo: он не требует ни регистрации, ни ключа, ни карты для некоммерческого использования, а лимита около 10 000 запросов в день с запасом хватает на учебный проект.
Можно ли получить погоду по названию города, а не по координатам?
Да, у большинства сервисов (WeatherAPI.com, OpenWeatherMap) есть поиск и геокодинг по названию. Open-Meteo принимает координаты, поэтому город сначала переводят в широту и долготу через его отдельный geocoding-эндпоинт.
Как часто можно опрашивать API, чтобы не исчерпать лимит?
Погода в точке заметно меняется за десятки минут, поэтому запрашивать чаще, чем раз в 10-30 минут, обычно нет смысла. Ответ стоит кэшировать и отдавать пользователям сохраненное значение, а не делать по запросу на каждого посетителя.



