Настройка аутентификации
Brevo предлагает два способа аутентификации в зависимости от сценария: аутентификация по API-ключу для обычного доступа к API и аутентификация по MCP-токену для ИИ-интеграций. Это руководство описывает оба способа.
Аутентификация по API-ключу
API-ключи Brevo используются для обычного доступа к REST API ко всем сервисам Brevo.
Создайте API-ключ
- Войдите в свою панель управления Brevo
- Перейдите в Settings → API Keys
- Нажмите Generate a New API Key
- Дайте ключу понятное название (например, «My App Production»)
- Скопируйте и сохраните ключ в надёжном месте (повторно он не показывается!)
Лучшие практики безопасности для API-ключей
✅ Что делать
- Храните ключи безопасно, используя переменные окружения
- Используйте разные ключи для разработки и продакшена
- Регулярно меняйте ключи (рекомендуется каждые 90 дней)
- Ограничивайте права ключа только необходимыми
- Отслеживайте использование ключа в панели управления
❌ Чего не делать
- Никогда не добавляйте ключи в систему контроля версий
- Не зашивайте ключи в код приложения
- Не передавайте ключи по email или в чате
- Не используйте продакшен-ключи для тестирования
Переменные окружения
Храните API-ключи в переменных окружения:
Linux/macOS (.bashrc или .zshrc)
export BREVO_API_KEY="your_api_key_here"Windows (командная строка)
set BREVO_API_KEY=your_api_key_hereNode.js (файл .env)
BREVO_API_KEY=your_api_key_here// Load from environmentconst apiKey = process.env.BREVO_API_KEY;Python
import os
api_key = os.getenv('BREVO_API_KEY')PHP
$apiKey = $_ENV['BREVO_API_KEY'];// or$apiKey = getenv('BREVO_API_KEY');Заголовки аутентификации
Передавайте API-ключ в заголовках запроса:
Стандартный формат заголовка
GET /v3/account HTTP/1.1Host: api.brevo.comAccept: application/jsonapi-key: your_api_key_hereПример на JavaScript
const headers = { 'Accept': 'application/json', 'api-key': process.env.BREVO_API_KEY};
fetch('https://api.brevo.com/v3/account', { headers }) .then(response => response.json()) .then(data => console.log(data));Python Requests
import requests
headers = { 'Accept': 'application/json', 'api-key': os.getenv('BREVO_API_KEY')}
response = requests.get('https://api.brevo.com/v3/account', headers=headers)Права и области действия ключа
Разные API-ключи могут иметь разные права:
- Только чтение: разрешены только запросы GET
- Отправка писем: права на транзакционные письма
- Управление контактами: создание, обновление и удаление контактов
- Управление кампаниями: создание и отправка кампаний
- Полный доступ: все эндпоинты API
Проверка аутентификации
Используйте этот эндпоинт, чтобы убедиться, что аутентификация работает:
curl -X GET "https://api.brevo.com/v3/account" \ -H "Accept: application/json" \ -H "api-key: $BREVO_API_KEY"Успешный ответ (200 OK):
{ "firstName": "John", "lastName": "Doe"}Ошибка аутентификации (401 Unauthorized):
{ "code": "unauthorized", "message": "Invalid API key provided"}Ротация ключей
Чтобы сменить API-ключ:
- Создайте новый ключ в панели управления
- Обновите переменные окружения, подставив новый ключ
- Разверните приложение с новым ключом
- Тщательно протестируйте, чтобы убедиться, что всё работает
- Отзовите старый ключ, когда убедитесь в работоспособности нового
Мониторинг использования API-ключа
Отслеживайте использование API-ключа в панели управления Brevo:
- Количество запросов в день и месяц
- Доля ошибок по эндпоинтам
- Географическое распределение запросов
- Часы пиковой нагрузки
Стратегия нескольких API-ключей
Для крупных приложений имеет смысл использовать несколько API-ключей:
- Production: реальные данные клиентов и письма
- Staging: предпродакшен-тестирование
- Development: локальная разработка и тестирование
- Monitoring: проверки работоспособности и метрики
- Third-party: внешние интеграции
Аутентификация по MCP-токену
Brevo Model Context Protocol (MCP): это фреймворк ИИ-интеграции, который позволяет ИИ-ассистентам взаимодействовать с сервисами Brevo. MCP использует отдельный способ аутентификации, через MCP-токены.
Что такое MCP?
MCP даёт ИИ стандартизированный доступ к API Brevo:
- Транспорт: HTTPS
- Базовый URL:
https://mcp.brevo.com/v1/ - Формат ответа: JSON
- Аутентификация: MCP-токен (отличается от API-ключей)
Создайте MCP-токен
- Войдите в свою панель управления Brevo
- Перейдите в Settings → MCP Tokens (или в настройки аккаунта)
- Создайте новый MCP-токен
- Скопируйте и сохраните токен в надёжном месте
Примечание: сейчас MCP доступен только пользователям с ранним доступом.
Использование MCP-токенов
MCP-токены применяются именно для ИИ-интеграций и подключений по Model Context Protocol:
export BREVO_MCP_TOKEN="your_mcp_token_here"Передавайте MCP-токен в запросах к эндпоинтам MCP:
GET /v1/account HTTP/1.1Host: mcp.brevo.comAccept: application/jsonAuthorization: Bearer your_mcp_token_hereMCP и API-ключ: сравнение
| Возможность | API-ключ | MCP-токен |
|---|---|---|
| Сценарий | Обычный доступ к REST API | ИИ-интеграции и подключения MCP |
| Базовый URL | api.brevo.com | mcp.brevo.com |
| Заголовок | api-key | Authorization: Bearer |
| Доступность | Все пользователи | Пользователи с ранним доступом |
Лучшие практики безопасности для MCP
- Храните MCP-токены отдельно от API-ключей
- Используйте переменные окружения для хранения токенов
- Регулярно меняйте токены
- Никогда не добавляйте токены в систему контроля версий
- Отслеживайте использование MCP в панели управления
Устранение неполадок с аутентификацией
Частые проблемы с API-ключами
Неверный формат API-ключа
- Длина ключа должна быть ровно 64 символа
- Проверьте, нет ли лишних пробелов или символов
Ошибка прав доступа
- Убедитесь, что у ключа есть необходимые права
- Проверьте, активен ли ключ в панели управления
Ограничение частоты запросов
- Неудачные попытки аутентификации учитываются в лимитах запросов
- Подождите, прежде чем повторять запрос с правильными данными
Географические ограничения
- У некоторых аккаунтов действуют ограничения по IP
- Обратитесь в поддержку, если нужно добавить IP в список разрешённых
Частые проблемы с MCP-токенами
MCP недоступен
- Убедитесь, что у вас есть ранний доступ к возможностям MCP
- Обратитесь в поддержку Brevo, чтобы запросить доступ
Недействительный токен
- Проверьте, что токен скопирован полностью и без пробелов
- Убедитесь, что срок действия токена не истёк и он не отозван
Неверный базовый URL
- MCP-токены работают только с mcp.brevo.com
- Не используйте MCP-токены с эндпоинтами api.brevo.com