> ## Documentation Index
> Fetch the complete documentation index at: https://docs.catproxy.io/llms.txt
> Use this file to discover all available pages before exploring further.

# API-ключи

> Создавайте, настраивайте права и отзывайте API-ключи в дашборде для управления программным доступом к аккаунту.

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

Управление ключами находится на странице **API-ключи** в боковом меню дашборда:

**[Панель управления](https://catproxy.io/app) → API-ключи**

<Frame>
  <img src="https://mintcdn.com/catproxyio/c5cHO-2Ms3wSO42R/images/api-keys-dashboard.png?fit=max&auto=format&n=c5cHO-2Ms3wSO42R&q=85&s=6783c29d27776c537f57922c779c61d7" alt="Страница API Keys в дашборде Catproxy" width="3456" height="2160" data-path="images/api-keys-dashboard.png" />
</Frame>

***

## Создание ключа

Нажмите **Создать API‑ключ** для открытия диалога создания. Заполните три поля:

**Имя** - описательная метка для идентификации ключа (например, `Automation script`, `CI pipeline`).

**Права** - выберите разрешения, необходимые ключу. Разрешения сгруппированы по областям:

<AccordionGroup>
  <Accordion title="Прокси">
    | Разрешение      | Что позволяет                                                                                    |
    | :-------------- | :----------------------------------------------------------------------------------------------- |
    | `proxies:read`  | Просмотр списков прокси и их настроек                                                            |
    | `proxies:write` | Создание, изменение и удаление прокси; управление лимитами и списками разрешённых IP (whitelist) |
    | `geo:read`      | Доступ к геокаталогу (страны, штаты, города, ZIP‑коды)                                           |
  </Accordion>

  <Accordion title="Статистика">
    | Разрешение   | Что позволяет                                                  |
    | :----------- | :------------------------------------------------------------- |
    | `stats:read` | Просмотр статистики трафика и экспорт отчётов об использовании |
  </Accordion>

  <Accordion title="Аккаунт и биллинг">
    | Разрешение     | Что позволяет                                                     |
    | :------------- | :---------------------------------------------------------------- |
    | `balance:read` | Просмотр баланса аккаунта, истории транзакций и доступных тарифов |
  </Accordion>
</AccordionGroup>

`proxies:write` **не включает** `proxies:read` - назначьте оба разрешения, если интеграция должна создавать и читать прокси.

**Срок действия** - выберите срок действия ключа:

| Вариант            | Срок                          |
| :----------------- | :---------------------------- |
| 30 дней            | Ключ истекает через 30 дней   |
| 90 дней            | Ключ истекает через 90 дней   |
| 6 месяцев          | Ключ истекает через 6 месяцев |
| 1 год              | Ключ истекает через 1 год     |
| Без срока действия | Ключ действует бессрочно      |

Нажмите **Создать API‑ключ** для генерации ключа.

***

## Сохранение ключа

После создания появится диалог **Ваш новый API‑ключ** с полным значением ключа и кнопкой **Копировать**.

<Warning>
  API-ключ не будет показан повторно. Скопируйте его и сохраните в надёжном месте: менеджере паролей или хранилище секретов. Если ключ утерян - отзовите его и создайте новый.
</Warning>

Нажмите **Готово** для закрытия диалога. После этого в таблице будет отображаться только префикс ключа (например, `cat_20fe...`).

***

## Просмотр и управление ключами

На странице API-ключи отображается таблица всех активных ключей со следующими столбцами:

| Столбец             | Описание                                                  |
| :------------------ | :-------------------------------------------------------- |
| **Имя**             | Метка, заданная при создании                              |
| **API-ключ**        | Усечённый префикс ключа (например, `cat_20fe...`)         |
| **Права**           | Разрешения, выданные ключу                                |
| **Последний раз**   | Когда ключ последний раз использовался для аутентификации |
| **Действителен до** | Дата истечения срока или пусто, если срок не задан        |
| **Создан**          | Когда ключ был создан                                     |

Используйте поле поиска для фильтрации ключей по имени. Столбцы можно сортировать, нажав на заголовок.

<Info>
  На одном аккаунте можно иметь не более **10 API-ключей**. Для создания нового при достижении лимита необходимо сначала отозвать существующий ключ.
</Info>

***

## Отзыв ключа

Нажмите **Отозвать** рядом с любым ключом для открытия диалога подтверждения. Подтвердите действие, нажав **Отозвать** в диалоге **Отозвать API‑ключ**.

Отзыв происходит мгновенно - все запросы с использованием этого ключа немедленно начнут возвращать `401 Unauthorized`. Действие необратимо.

Отзовите ключ немедленно, если:

* Он был случайно закоммичен в репозиторий
* Сотрудник, имевший к нему доступ, покинул команду
* Вы подозреваете, что ключ был скомпрометирован

***

## Рекомендации по безопасности

<CardGroup cols={2}>
  <Card title="Один ключ - одна интеграция" icon="key">
    У каждого скрипта или сервиса должен быть свой ключ. Это позволяет отозвать один ключ, не затрагивая остальные интеграции.
  </Card>

  <Card title="Минимальные разрешения" icon="shield-halved">
    Скрипту мониторинга нужен только `stats:read`. Пайплайну автоматизации - `proxies:write`. Никогда не выдавайте больше прав, чем необходимо.
  </Card>

  <Card title="Используйте переменные окружения" icon="terminal">
    Никогда не хардкодьте ключи в исходном коде. Храните их в переменных окружения или хранилище секретов (Vault, AWS Secrets Manager и т.д.).
  </Card>

  <Card title="Задавайте срок действия" icon="arrows-rotate">
    Ключи с ограниченным сроком действия предпочтительнее бессрочных. Перед истечением срока создайте новый ключ, обновите интеграцию, затем отзовите старый.
  </Card>
</CardGroup>
