---
slug: "yandex-weather"
name: "API Яндекс Погоды"
vendor: "Яндекс"
industry: "maps"
docsUrl: "https://yandex.ru/dev/weather/doc/ru/concepts/index-v3"
version: 2
updatedAt: "2026-10-24"
---

# API Яндекс Погоды

Отрасль: Карты и геоданные. Актуально на 2026-10-24.

HTTP-интерфейс доступа к погодным данным Яндекс Погоды (версия v3): фактическая погода и прогноз по координатам точки — по дням, частям дня и часам. Запросы пишутся на языке GraphQL, ответы приходят в JSON. Доступ платный по тарифам, есть одноразовый тестовый тариф для новых пользователей.

## Сценарии

### Узнать текущую погоду в точке

Показать погоду на сайте, учесть дождь в логистике или рекламе — по координатам.

1. Создай ключ в консоли Яндекс Погоды (https://yandex.ru/pogoda/b2b/console), выбрав «API Погодных Данных». Он активируется через несколько минут. Доступ платный, для новых клиентов есть тестовый тариф.
2. Отправь GraphQL-запрос: POST /graphql/query с заголовком X-Yandex-Weather-Key и JSON-полем query. Точка задаётся в weatherByPoint(request: { lat, lon }), фактическая погода — в блоке now.
3. Выбирай нужные поля: temperature, humidity, pressure, windSpeed, windDirection, cloudiness, precType, precStrength. Единицы задаются аргументами, например temperature(unit: FAHRENHEIT).
4. Ответ — в data.weatherByPoint.now. Делай запросы со своего сервера: из браузера ключ виден, а запросы упадут с ошибкой CORS.

```bash
curl -X POST https://api.weather.yandex.ru/graphql/query \
  -H "X-Yandex-Weather-Key: $YA_WEATHER_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"query": "{ weatherByPoint(request: { lat: 55.7558, lon: 37.6173 }) { now { temperature humidity pressure windSpeed windDirection cloudiness precType } } }"}'
```

### Получить почасовой прогноз

Прогноз на ближайшие дни по часам — для планирования доставки, мероприятий или выездных работ.

1. Отправь запрос: POST /graphql/query с блоком forecast { days(limit: N) { hours { ... } } } внутри weatherByPoint. limit задаёт число дней прогноза.
2. Для каждого часа выбери поля: time, temperature, humidity, pressure, windSpeed, windDirection.
3. Ответ — в data.weatherByPoint.forecast.days[].hours[]; time — в часовом поясе точки.
4. Набор доступных полей зависит от тарифа: если поле недоступно, запрос вернёт ошибку — проверь схему в консоли API.

```python
import requests

query = """
{ weatherByPoint(request: { lat: 55.7558, lon: 37.6173 }) {
    forecast { days(limit: 2) { hours { time temperature humidity windSpeed windDirection } } }
} }
"""
r = requests.post("https://api.weather.yandex.ru/graphql/query",
                  headers={"X-Yandex-Weather-Key": "<ключ>"}, json={"query": query}).json()
for day in r["data"]["weatherByPoint"]["forecast"]["days"]:
    for h in day["hours"]:
        print(h["time"], h["temperature"], h["windSpeed"])
```

## Базовые URL

- Боевой: `https://api.weather.yandex.ru`
- Схему GraphQL и тестовые запросы можно посмотреть в консоли API ().: `https://yandex.ru/pogoda/b2b/console`

## Авторизация

Тип: API-ключ

Ключ создают в Кабинете разработчика (`https://yandex.ru/pogoda/b2b/console`), выбрав «API Погодных Данных»; активируется через несколько минут. Ключ передаётся в заголовке `X-Yandex-Weather-Key`.

```
X-Yandex-Weather-Key: <Key>
```

## Методы

### POST /graphql/query — GraphQL-запрос погоды

Текст GraphQL-запроса передаётся в теле POST-запроса, в JSON-поле `query`. Точка задаётся в `weatherByPoint(request: { lat, lon })`; внутри выбираются `now` (фактическая погода) и/или `forecast` (прогноз).

Пример запроса (текущая температура):

Пример запроса (почасовой прогноз):

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `X-Yandex-Weather-Key` | header | string | да | Ключ доступа |
| `query` | body | string | да | Текст GraphQL-запроса |

Пример запроса:

```
{
  weatherByPoint(request: { lat: 52.37125, lon: 4.89388 }) {
    now {
      temperature
    }
  }
}
```

Пример ответа:

```json
{
  "data": {
    "weatherByPoint": {
      "now": {
        "temperature": 20
      }
    }
  }
}
```

## Нюансы

- Поля `now`: `temperature`, `humidity`, `pressure`, `precType`, `precStrength`, `windSpeed`, `windDirection`, `cloudiness` и др.; единицы задаются аргументами, например `temperature(unit: FAHRENHEIT)` (`TemperatureUnit`, `PressureUnit`, `WindSpeedUnit`).
- `days(limit: N)` — сколько дней прогноза вернуть (необязательный аргумент).
- Поля `...OnHeight` (например, `temperatureOnHeight`) принимают аргумент `height`; подбирается ближайшая доступная высота.
- API не предназначено для запросов из браузера пользователя: ключ виден в инструментах браузера, а запросы падают с ошибкой CORS. Делайте запросы через свой сервер.
- Набор доступных полей зависит от тарифа.
- Старая версия v2 использует адреса `https://api.weather.yandex.ru/v2/forecast/` (тариф «Тестовый») и `https://api.weather.yandex.ru/v2/informers/` («Погода на вашем сайте»).

## Ошибки

| Код | Описание |
|---|---|
| `403` | Нет заголовка X-Yandex-Weather-Key, неверный URL для тарифа, истёк тестовый тариф или превышен лимит запросов |

## Ограничения

Тарифы действуют только для новых клиентов; цены — на странице тарифов.

## Источники

- [API Яндекс Погоды (v3)](https://yandex.ru/dev/weather/doc/ru/concepts/index-v3)
- [Аутентификация](https://yandex.ru/dev/weather/doc/ru/concepts/auth)
- [Использование](https://yandex.ru/dev/weather/doc/ru/concepts/how-to)
- [Фактическая погода](https://yandex.ru/dev/weather/doc/ru/concepts/fact)
- [Прогноз](https://yandex.ru/dev/weather/doc/ru/concepts/forecast)
- [Возможные ошибки](https://yandex.ru/dev/weather/doc/ru/concepts/errors)
- [Тарифы доступа](https://yandex.ru/dev/weather/doc/ru/concepts/pricing)

---

Если этого недостаточно — официальная документация: https://yandex.ru/dev/weather/doc/ru/concepts/index-v3
JSON: https://mcp-everything.ru/api/integrations/yandex-weather. MCP: https://mcp-everything.ru/mcp
