---
metadata:
  - name: generator
    content: Diplodoc Platform v5.64.0
alternate:
  - https://yandex.ru/dev/weather/doc/ru/concepts/user_stations.md
  - href: https://yandex.ru/dev/weather/doc/ru/concepts/user_stations.md
    type: text/markdown
    title: Markdown version
  - href: https://yandex.ru/dev/weather/doc/ru/llms.txt?revision=r21893492
    rel: describedby
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.ru/dev/weather/doc/ru/llms.txt?revision=r21893492

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

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

1. [Получите ключ для доступа к методам API](https://yandex.ru/dev/weather/doc/ru/concepts/auth.md)

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

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

2. Зарегистрируйте свою станцию в нашей системе, используя метод [`/stations`](#post_stations), и получите уникальный идентификатор станции.
3. Передайте данные о погоде, используя метод [`/measurements`](#post_measurements)

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

Два метода, необходимых для начала работы с API пользовательских станций: создание станции и передача измерений.
Для доступа к методам API требуется, чтобы вы передали свой [ключ](https://yandex.ru/dev/weather/doc/ru/concepts/auth.md#auth-key) в запросе.

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

### /stations {#post_stations}

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

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

```bash
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/'
```

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

```json
{
  "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 {#post_measurements}

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

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

```bash
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`     |                      | Значение параметра            |

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

```json
{}
```
