Пользовательские станции

Как подключить вашу метеостанцию к Яндекс Погоде

  1. Получите ключ для доступа к методам API

    Примечание

    Ключ нужен только для того, чтобы идентифицировать вас как пользователя. Поэтому, даже если срок действия ключа истёк или он был заблокирован в рамках тарифа, API Пользовательских станций будет продолжать работать.

    Можно бесплатно пользоваться API Пользовательских станций по Триальному ключу доступа, не привязывая платёжные реквизиты.

  2. Зарегистрируйте свою станцию в нашей системе, используя метод /stations, и получите уникальный идентификатор станции.

  3. Передайте данные о погоде, используя метод /measurements

Методы API пользовательских станций

Два метода, необходимых для начала работы с API пользовательских станций: создание станции и передача измерений.
Для доступа к методам API требуется, чтобы вы передали свой ключ в запросе.

При вызове методов PUT и POST также необходимо указать заголовок: Content-Type: application/json.

/stations

Этот метод используется для регистрации станции.
Вам необходимо передать набор параметров: внешний идентификатор, название станции и ее географическое расположение.
В случае успешного создания метод возвращает HTTP-код 200.

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

curl -X POST -H 'X-Yandex-Weather-Key: <Key>' -H 'Content-type: application/json' -d '{
  "external_id": "001",
  "name": "Moscow Test Station",
  "latitude": 55.833333,
  "longitude": 37.616667,
  "altitude": 157
}' 'https://api.weather.yandex.ru/user_stations/stations/'

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

{
  "ID": "593436cc9643a9000196b8d6",
  "updated_at": "2023-11-22T12:15:25.96727176Z",
  "created_at": "2023-11-22T12:15:25.967271732Z",
  "user_id": "557066d0ff7a7e3897531d94",
  "external_id": "001",
  "name": "Moscow Test Station",
  "latitude": 55.833333,
  "longitude": 37.616667,
  "altitude": 157,
  "source_type": 5
}

/measurements

Этот метод используется для передачи измерений, собранных с вашей станции.
Ниже приведено полное описание возможных структур данных. Измерения передаются в виде массива, что позволяет указать сразу несколько наборов данных и выполнить отложенную отправку.
В случае успешных измерений метод отправки возвращает HTTP-код 200.

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

curl -X POST -H 'X-Yandex-Weather-Key: <Key>' -H 'Content-type: application/json' -d '[
  {
    "station_id": "593436cc9643a9000196b8d6",
    "dt": 1697545340,
    "temperature": 18.7,
    "wind_speed": 1.2,
    "wind_gust": 3.4,
    "pressure": 1021,
    "humidity": 87,
    "rain_1h": 2,
    "clouds": [
      {
        "condition": "NSC"
      }
    ],
    "weather": [
      {
          "condition": "NSC"
      }
    ]
  }
]' 'https://api.weather.yandex.ru/user_stations/measurements/'
Поле объекта Тип Единицы измерения Описание
station_id string Внутренний ID станции
dt integer Unix Timestamp Время измерения
temperature float Градусы Цельсия Температура воздуха
wind_speed float Метры в секунду Скорость ветра
wind_gust float Метры в секунду Скорость порывов ветра
wind_deg float Градусы от 0 до 360 Направление ветра
pressure float Гектопаскали Атмосферное давление
humidity float % Относительная влажность
rain_1h float Миллиметры Выпавшие за час осадки
rain_6h float Миллиметры Выпавшие за 6 часов осадки
rain_24h float Миллиметры Выпавшие за день осадки
dew_point float Градусы Цельсия Точка росы
clouds[]:distance float Метры Высота нижней границы облаков
clouds[]:condition string SKC, FEW, BKN, OVC Облачность
weather[]:key string Имя дополнительного параметра
weather[]:value any Значение параметра

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

{}