# Ключи и доступ

Выберите тип ключа, разрешите нужные операции и ограничьте доступ своего приложения.

## Типы ключей

| Тип | Где используется | Ограничение доступа |
| --- | --- | --- |
| На сервере | Backend сайта или приложения | Внешние IP и подсети, по желанию |
| На сайте | JavaScript SDK в браузере | Обязательный список разрешённых сайтов |

Для бесплатной карты ключ не нужен. Ключ сервисного API передаётся заголовком `Authorization: Bearer …`; SDK делает это при настройке `apiKey`.

## Создание и права

В [«Проекты и ключи»](https://mmapps.ru/app/projects) выберите проект, нажмите «Создать ключ» и укажите понятное имя. Полный ключ показывается один раз.

| Операция | Необходимые права |
| --- | --- |
| Подсказки | `search` |
| Геокодинг | `geocode` |
| Обратный геокодинг | `reverse` |
| Получение выбранного объекта | `resolve` |
| Маршрут по координатам | `route` |
| Маршрут по адресам | `route:geocode`; для выполняемых действий — `geocode`, `resolve`, `route` |
| Матрица по координатам | `matrix` |
| Матрица по адресам | `matrix`; для текста — `geocode`, для ссылки — `resolve` |
| Статус и возможности аккаунта | `status`, только серверный ключ |

Выбирайте права явно. Матрица доступна, когда она включена для аккаунта; наличие SDK само по себе не выдаёт это право. Фактическую доступность маршрута и матрицы можно проверить серверным ключом через `GET /platform/v1/capabilities`.

## Разрешённые сайты

В поле «Разрешённые сайты» укажите домены по одному на строку, например `shop.example.ru`. Без протокола добавится `https://`. Если нужен нестандартный порт, укажите его явно.

`example.ru` и `www.example.ru` добавляются отдельно. Путь страницы, параметры и `*` не допускаются. Для рабочего подключения требуется HTTPS. В демосреде для локальной разработки можно указать `http://localhost:8080`.

Браузерный ключ виден посетителю сайта. Разрешённый origin ограничивает браузерные запросы, но не заменяет права и бюджет. Серверный ключ храните только на сервере.

## Разрешённые IP

Для серверного ключа поддерживаются IPv4, IPv6 и подсети, например `203.0.113.0/24`. Указывайте адрес выхода сервера в интернет. Пустой список разрешает запросы с любого IP.

## Изменение и отзыв

Кнопка «Настроить» меняет имя, разрешённые сайты или IP, права и денежный бюджет. Тип ключа не меняется: создайте другой ключ, если нужно перенести подключение с сервера в браузер.

Технические ограничения общие для подключений с одного IP-адреса: до 20 запросов в секунду и до 60 новых сетевых соединений в минуту. Они заданы сервисом и не настраиваются для ключа. Используйте постоянные соединения; существующее соединение может обслуживать несколько HTTP-запросов. При HTTP-ограничении ответ содержит `429` и `Retry-After`.

«Отозвать» запрещает новые сервисные запросы. Для замены создайте ключ и обновите настройки приложения. Бесплатная карта продолжит работать.

Ключ Geo API не даёт доступа к платежам и управлению аккаунтом. Для кабинета нужны вход и подтверждённый email.
