Аутентификация
Как получить и использовать API-ключи для доступа к InstantBase
Типы ключей
В InstantBase используется два типа API-ключей с разными назначениями и лимитами:
| Тип | Префикс | Назначение | Лимиты | Индикатор |
|---|---|---|---|---|
| Production | prod_ |
Реальный трафик, продакшн-среда | Зависят от тарифа (500k, 2.5M, 10M) | production |
| Test | test_ |
Отладка, тестирование, разработка | 50 000 событий/мес (общий лимит) | test |
💡 Рекомендация: Всегда используйте тестовые ключи на этапе разработки. Это позволит не расходовать лимиты основного тарифа и избежать случайного засорения продакшн-данных.
Где взять ключи
- Войдите в личный кабинет InstantBase
- Перейдите в раздел "Настройки" → "API ключи"
- Нажмите кнопку "Сгенерировать новый ключ"
- Выберите тип ключа (production или test)
- Укажите название ключа (например, "Сайт", "Мобильное приложение")
- Нажмите "Создать" и скопируйте ключ
⚠️ ВАЖНО: Ключ показывается только один раз — при создании. Скопируйте его сразу и сохраните в безопасном месте. При утере ключа его невозможно восстановить, придется генерировать новый.
Использование ключей
В HTTP-запросах
Ключ передается в заголовке X-API-Key каждого запроса к API:
bash
curl -X POST https://api.instantbase.ru/v1/track \
-H "X-API-Key: ваш_ключ" \
-H "Content-Type: application/json" \
-d '{"event":"test"}'
В JavaScript (клиентская часть)
javascript
fetch('https://api.instantbase.ru/v1/track', {
method: 'POST',
headers: {
'X-API-Key': 'ваш_ключ',
'Content-Type': 'application/json'
},
body: JSON.stringify({
event: 'page_view',
user_id: 'user_123'
})
});
В Node.js (серверная часть)
javascript
const axios = require('axios');
const API_KEY = process.env.INSTANTBASE_API_KEY;
async function trackEvent(event, userId, properties = {}) {
try {
const response = await axios.post('https://api.instantbase.ru/v1/track', {
event,
user_id: userId,
properties
}, {
headers: {
'X-API-Key': API_KEY
}
});
return response.data;
} catch (error) {
console.error('Failed to track event:', error);
}
}
В Python
python
import os
import requests
API_KEY = os.environ.get('INSTANTBASE_API_KEY')
def track_event(event, user_id, properties=None):
url = 'https://api.instantbase.ru/v1/track'
headers = {
'X-API-Key': API_KEY,
'Content-Type': 'application/json'
}
data = {
'event': event,
'user_id': user_id,
'properties': properties or {}
}
response = requests.post(url, json=data, headers=headers)
return response.json()
Безопасность ключей
❌ НЕПРАВИЛЬНО: ключи в клиентском коде
❌ НИКОГДА ТАК НЕ ДЕЛАЙТЕ
// Плохо: ключ виден всем в исходном коде
const API_KEY = 'prod_abc123def456ghi789';
// Плохо: ключ в URL
fetch('https://api.instantbase.ru/v1/track?api_key=prod_abc123...')
// Плохо: ключ в localStorage
localStorage.setItem('api_key', 'prod_abc123...');
✅ ПРАВИЛЬНО: переменные окружения на сервере
✅ ПРАВИЛЬНО
// Node.js
const API_KEY = process.env.INSTANTBASE_API_KEY;
// Python
import os
API_KEY = os.environ.get('INSTANTBASE_API_KEY')
// PHP
$apiKey = getenv('INSTANTBASE_API_KEY');
// Docker
# docker run -e INSTANTBASE_API_KEY=your_key ...
// .env файл (не в репозитории!)
INSTANTBASE_API_KEY=your_key
Управление ключами в личном кабинете
В разделе "API ключи" доступны следующие операции:
- Просмотр списка — все созданные ключи с указанием типа и даты создания
- Отключение/включение — временная деактивация ключа без удаления
- Переименование — удобно для организации ключей по проектам
- Удаление — необратимое удаление ключа (будьте осторожны!)
- Статистика использования — количество запросов, последнее использование
Лимиты и квоты
| Тип лимита | Production | Test |
|---|---|---|
| Месячный лимит событий | Зависит от тарифа (500k, 2.5M, 10M) | 50 000 (общий на все тестовые ключи) |
| Rate limit (запросов в минуту) | 1000 | 200 |
| Одновременных соединений | 100 | 20 |
📌 Важно: Лимиты для тестовых ключей суммируются по всем ключам компании. Как только общее количество тестовых событий достигает 50 000 в месяц, все тестовые ключи временно блокируются до начала следующего месяца.
Рекомендации по безопасности
🔐 Чек-лист безопасности:
- ✅ Используйте разные ключи для разных сред (dev/stage/prod)
- ✅ Регулярно ротируйте ключи (раз в 3-6 месяцев)
- ✅ Отключайте неиспользуемые ключи
- ✅ Никогда не передавайте ключи через URL
- ✅ Используйте HTTPS для всех запросов
- ✅ Храните ключи в переменных окружения, а не в коде
- ✅ Не коммитьте ключи в Git (используйте .gitignore)
- ✅ Ограничьте доступ к ключам в команде
Остались вопросы по аутентификации?
Напишите нам, и мы поможем настроить интеграцию