🔑 Аутентификация
Как получить и использовать 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:
curl -X POST https://api.instantbase.online/v1/track \
-H "X-API-Key: ваш_ключ" \
-H "Content-Type: application/json" \
-d '{"event":"test"}'
В JavaScript (клиентская часть)
fetch('https://api.instantbase.online/v1/track', {
method: 'POST',
headers: {
'X-API-Key': 'ваш_ключ',
'Content-Type': 'application/json'
},
body: JSON.stringify({
event: 'page_view',
user_id: 'user_123'
})
});
В Node.js (серверная часть)
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.online/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
import os
import requests
API_KEY = os.environ.get('INSTANTBASE_API_KEY')
def track_event(event, user_id, properties=None):
url = 'https://api.instantbase.online/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.online/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 |
Рекомендации по безопасности
- ✅ Используйте разные ключи для разных сред (dev/stage/prod)
- ✅ Регулярно ротируйте ключи (раз в 3-6 месяцев)
- ✅ Отключайте неиспользуемые ключи
- ✅ Никогда не передавайте ключи через URL
- ✅ Используйте HTTPS для всех запросов
- ✅ Храните ключи в переменных окружения, а не в коде
- ✅ Не коммитьте ключи в Git (используйте .gitignore)
- ✅ Ограничьте доступ к ключам в команде
Примеры ответов API
Успешная аутентификация (200)
{
"status": "ok",
"message": "Event received",
"queued": true
}
Неверный или отсутствующий ключ (401)
{
"error": "Invalid or missing API key"
}
Ключ отключен (403)
{
"error": "API key is disabled"
}
Превышение rate limit (429)
{
"error": "Too many requests",
"retry_after": 60
}
Часто задаваемые вопросы
Можно ли использовать один ключ для нескольких проектов?
Да, можно. Но рекомендуется создавать отдельные ключи для разных проектов — это упрощает мониторинг и позволяет при необходимости отключить ключ только для одного проекта.
Что делать, если ключ скомпрометирован?
Немедленно отключите или удалите ключ в личном кабинете и создайте новый. Проверьте логи на предмет подозрительной активности.
Как отслеживать использование ключей?
В личном кабинете в разделе "API ключи" отображается статистика использования каждого ключа: количество запросов, последнее использование и расход событий.
Можно ли установить свои лимиты на ключ?
В текущей версии лимиты задаются на уровне компании и тарифа. Отдельные ограничения на ключ не поддерживаются.
Остались вопросы по аутентификации?
Напишите нам, и мы поможем настроить интеграцию