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

# Аутентификация

> Официальная документация по аутентификации через наш API

## Введение

Этот раздел содержит официальную документацию по аутентификации через наш API с помощью Postman. Он включает подробные инструкции по процессу аутентификации, поддерживаемым методам и лучшим практикам для обеспечения безопасного доступа к API.

## 🔑 Аутентификация

Для доступа к любому эндпоинту Lovi API необходимо сначала пройти аутентификацию и получить токен доступа, используя ваш email и пароль. Этот токен затем должен быть включён в заголовок `Authorization` всех последующих запросов.

**Ротация токенов**: Мы рекомендуем периодически менять токены и хранить их в безопасном месте.

> **Метод**: POST  **Формат**: JSON

### Эндпоинт

```
POST https://cloud.lovi.ai/functions/v1/auth?grant_type=password
```

### Параметры запроса

| Параметр     | Обязательный | Фиксированное значение | Описание                                                                                                  |
| ------------ | ------------ | ---------------------- | --------------------------------------------------------------------------------------------------------- |
| `grant_type` | Да           | `password`             | Указывает, что вы используете аутентификацию через email и пароль. Это единственный поддерживаемый метод. |

### Заголовки запроса

Сообщите серверу тип отправляемого контента:

| Ключ           | Значение           | Описание                                    |
| -------------- | ------------------ | ------------------------------------------- |
| `Content-Type` | `application/json` | Указывает, что тело запроса в формате JSON. |

### Тело запроса

Здесь вы указываете свои учётные данные (email и пароль):

```json theme={null}
{
  "email": "your-email@example.com",
  "password": "your-secure-password"
}
```

Вы должны заменить:

* "[your-email@example.com](mailto:your-email@example.com)" на ваш реальный адрес электронной почты.
* "your-secure-password" на ваш пароль.

### Ответ

Сервер ответит токеном, который вам понадобится для аутентификации в будущих API-запросах. Ответ будет выглядеть так:

```json theme={null}
{
    "access_token": "your-access-token",
    "token_type": "bearer",
    "expires_in": 3600,
    "expires_at": 1744196340,
    "refresh_token": "bNYf6m7S7dFjfHCFTob2zg",
    "user": {
        "id": "3b601fa8-49fd-4a8c-af8c-b30601410975",
        "aud": "authenticated",
        "role": "authenticated",
        "email": "your-email@example.com",
        "email_confirmed_at": "2025-01-16T18:45:09.995114Z",
        "phone": "",
        "confirmed_at": "2025-01-16T18:45:09.995114Z",
        "last_sign_in_at": "2025-04-09T09:59:00.18987884Z",
        "app_metadata": {
            "provider": "email",
            "providers": [
                "email"
            ]
        },
        "user_metadata": {
            "email_verified": true,
            "name": "Your-Company"
        },
        "identities": [
            {
                "identity_id": "23b66c68-ce37-4483-8470-67e08e21a61e",
                "id": "3b601fa8-49fd-4a8c-af8c-b30601410975",
                "user_id": "3b601fa8-49fd-4a8c-af8c-b30601410975",
                "identity_data": {
                    "email": "your-email@example.com",
                    "email_verified": false,
                    "phone_verified": false,
                    "sub": "3b601fa8-49fd-4a8c-af8c-b30601410975"
                },
                "provider": "email",
                "last_sign_in_at": "2025-01-16T18:45:09.985377Z",
                "created_at": "2025-01-16T18:45:09.985932Z",
                "updated_at": "2025-01-16T18:45:09.985932Z",
                "email": "your-email@example.com"
            }
        ],
        "created_at": "2025-01-16T18:45:09.956743Z",
        "updated_at": "2025-04-09T09:59:00.192243Z",
        "is_anonymous": false
    }
}
```

⚠️ Сохраните ваш `access_token` — он понадобится для взаимодействия с остальными эндпоинтами API.

***

## 🧭 Получение API-ключей компании

> **Метод**: POST **Формат**: JSON

### Эндпоинт

```
POST https://cloud.lovi.ai/functions/v1/api_keys
```

**Заголовки**

| **Параметр**  | **Пример**               | **Обязательный** | **Описание**                                                                                                        |
| ------------- | ------------------------ | ---------------- | ------------------------------------------------------------------------------------------------------------------- |
| Authorization | Bearer your-access-token | Да               | Этот заголовок используется для аутентификации запроса. Он содержит Bearer-токен, полученный после входа в систему. |

### Ответ

Каждый объект в массиве **`validApiKeys`** представляет API-ключ, связанный с конкретной компанией. Поля включают:

* **`company_id`**: Уникальный идентификатор компании, владеющей API-ключом.

* **`key`**: Сам API-ключ, используемый для аутентификации запросов.

* **`is_active`**: Булево значение, указывающее, активен ли ключ в данный момент (*true*) или нет (*false*).

* **`last_used`**: Временная метка последнего использования ключа. Если ключ никогда не использовался, значение будет *null*.

* **`company_name`**: Название компании, связанной с API-ключом, полезно для отображения в интерфейсах или журналах.

Вот пример:

```json theme={null}
{
    "validApiKeys": [
        {
            "company_id": "your_company_id",
            "key": "your_key",
            "is_active": true,
            "last_used": null,
            "company_name": "your_company_name"
        }
    ]
}
```

***

### ⚠️ API-ключи не найдены

Если ответ возвращает пустой массив `validApiKeys`, это означает, что API-ключи ещё не были созданы для вашей компании.

Пример:

```json theme={null}
{
    "validApiKeys": []
}
```

В этом случае вам **необходимо перейти в панель администратора** и создать новый API-ключ для вашей компании.

<Card title="Настройка API-ключей из панели администратора" icon="gear" href="/ru/user-guide/profile_ru">
  В этом разделе вы узнаете, как настроить профиль и API-ключ из панели.
</Card>

> 🧭 **Важно**: Без действующего и активного API-ключа вы не сможете аутентифицироваться на уровне компании или выполнять защищённые операции.

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

***

#### 🔁 Токен компании

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

Вы будете использовать ранее полученный `key` в параметрах запроса или заголовках, в зависимости от эндпоинта.
