# API Яндекс Погоды: Узнать текущую погоду в точке

Сценарий из mcp-everything. Актуально на 2026-10-24.

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

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 } } }"}'
```

## Базовые 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/` («Погода на вашем сайте»).

## Другие сценарии

- [Получить почасовой прогноз](https://mcp-everything.ru/integrations/yandex-weather/scenarios/poluchit-pochasovoy-prognoz.md)

---

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