---
metadata:
  - name: generator
    content: Diplodoc Platform v5.39.6
alternate:
  - https://yandex.com/dev/weather/doc/en/concepts/how-to.md
  - https://yandex.com/dev/weather/doc/ru/concepts/how-to.md
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.com/dev/weather/doc/ru/llms.txt

## Быстрый старт {#fast-start}

Чтобы сделать свой первый запрос в API Яндекс Погоды, необходимо получить ключ доступа.
Получить тестовый бесплатный ключ самостоятельно можно на странице [API Яндекс Погоды](https://yandex.ru/pogoda/b2b/console/home).

Для авторизации доступа необходимо полученный ранее ключ передать в заголовке HTTP-запроса `X-Yandex-Weather-Key`

Далее необходимо сформировать сам запрос в соответствии со [схемой](https://yandex.com/dev/weather/doc/ru/concepts/spectaql.md).

Вы можете начать с простого запроса:

{% include [button](../_includes/button-cd154f71d142.md) %}
<div class="button-container">
    <a target="_blank" href="https://clck.ru/38yMgx">Запустить в песочнице</a>
</div>

```graphql


{
  weatherByPoint(request: { lat: 52.37125, lon: 4.89388 }) {
    now {
      temperature
    }
  }
}
```
Этот запрос буквально означает: "Покажите мне текущие данные о температуре для этих координат".

Вам нужно передать этот текст в парметре `body` POST-запроса. HTTP-запрос выполняется по адресу `https://api.weather.yandex.ru/graphql/query`. Вы можете использовать любой HTTP-клиент.

### Пример на языке Python {#python}

Далее представлен минимальный работающий пример на языке программирования Python. Чтобы его запустить, достаточно вставить свой ключ доступа к API в значение переменной `access_key` и выполнить этот код с помощью интерпретатора.

```python
import requests

# insert your real key here!
access_key = "your_key"

headers = {
    "X-Yandex-Weather-Key": access_key
}

query = """{
  weatherByPoint(request: { lat: 52.37125, lon: 4.89388 }) {
    now {
      temperature
    }
  }
}"""

response = requests.post('https://api.weather.yandex.ru/graphql/query', headers=headers, json={'query': query})

print(response.content)
```

## Как сформировать запрос к GraphQL в API Яндекс Погоды {#create-request}

Для формирования запросов в API Яндекс Погоды используется язык запросов [GraphQL](https://graphql.org/).
**GraphQL** позволяет зафиксировать схему, описывающую данные в API понятным для пользователя образом. Данная схема однозначно определяет то, как должен быть сформирован запрос в API и каким будет формат ответа.
Основным преимуществом GraphQL-схемы (вместо, например, REST API) является возможность получить за один запрос любое подмножество данных. При разработке приложений это позволяет писать более короткий и понятный код, т.к. нет необходимости описывать логику склеивания данных из ответов на запросы по разным типам данных. Более того, большинство провайдеров погодных API тарифицируют количество запросов в API за единицу времени. Это значит, что получение всех необходимых данных за один запрос (вместо нескольких) экономически более выгодно.

Запрос – это простой текст, похожий на JSON. Каждый запрос заключается в фигурные скобки.
```
{
  # request parameters
}
```
[Выше](#fast-start) был рассмотрен пример запроса "температуры сейчас в точке". Ключевым в этом запросе является вызов метода `weatherByPoint` с параметром `request`, для которого устанавливается значение:
```
{
  lat: 52.37125,
  lon: 4.89388
}
```
Тем самым можно сообщить системе "покажи погоду в точке" и указать, для какой точки необходимо получить данные. Далее укажите, какие конкретно данные нужно получить. Для этого добавьте необходимые структуры в запрос внутри метода `weatherByPoint`:
```
weatherByPoint(request: { lat: 52.37125, lon: 4.89388 })
{
  now {          # weather for now
    temperature  # temperature value
  }
}
```

Выполнив такой запрос, ответ будет:
```(json)
{
  "data": {
    "weatherByPoint": {
      "now": {
        "temperature": 20
      }
    }
  }
}
```

### Как пользоваться playground и подробнее изучить GraphQL-схему {#use-playground}
API Яндекс Погоды оснащен интерактивным [интерфейсом-песочницей](https://yandex.ru/pogoda/b2b/console/playground/frame), с помощью которого можно пробовать составлять запросы и выполнять их. Песочница позволяет составлять запрос с использованием возможностей автодополнения и интерактивной документации, в которой подробно описана GraphQL-схема API. После составления запроса его можно сразу выполнить и убедиться, что запрос составлен корректно.
Также в песочнице есть возможность сгенерировать рабочий код для Python и Node.JS и выполнить его в командной строке с помощью утилиты `curl`.
