Аутентификация и API-ключи
Отправка ключа
Канонический заголовок - X-API-Key:
curl -X POST 'https://api.cognivolabs.io/v1/api/intel/risk' \
-H 'X-API-Key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"chain":"eth","address":"0xTOKEN_CONTRACT"}'
Authorization: Bearer YOUR_API_KEY принимается как псевдоним для клиентских библиотек, которым он удобнее.
Как хранятся ключи
Cognivo никогда не хранит ваш полный ключ. Сохраняются только односторонний хеш плюс префикс и последние четыре символа - именно поэтому полный ключ может быть показан ровно один раз при создании. Относитесь к нему как к паролю.
Sandbox-ключи и live-ключи
| Префикс | Назначение | Тарифицируется | Лимит запросов |
|---|---|---|---|
cogv_test_ | Sandbox: только ограниченные демо и интеграционное тестирование, явно помечен как Sandbox; не может выполнять живую аналитику | никогда не тарифицируется | жёсткий лимит 25 запросов/час, 100/день и 1/секунду |
cogv_live_ | продакшен; self-serve, работает сразу | pay-as-you-go: кредиты Cognivo за каждый успешный вызов с вашего баланса кредитов; неудачные вызовы никогда не тарифицируются | ваш лимит режима доступа, для начала 1,000 запросов/час |
Если хотите, прототипируйте форматы запросов на sandbox-ключе, а выпускайте с live-ключом. Новому live-ключу не нужны ни одобрение, ни trial: он начинает работать в момент создания, пока на аккаунте есть кредиты.
Режимы доступа, простыми словами
- Live (стандартный) - self-serve pay-as-you-go. Новый live-ключ работает сразу; списание идёт в кредитах Cognivo за каждый успешный вызов по опубликованным ценам для каждого эндпоинта. Если баланса не хватает на вызов, вы получаете
402 payment_required(ничего не списано): пополните баланс на странице биллинга вашего аккаунта Cognivo и повторите. - Sandbox - ключи
cogv_test_; только ограниченные демо/тестирование, живую аналитику выполнять не могут. Живые вызовы отвечают403 sandbox_limited. - Trial - необязательная оценочная квота, выдаваемая администратором (ограниченная и с истекающим сроком). Для обычного платного использования не требуется.
- Партнёрский - соглашение, управляемое администратором.
- Enterprise - путь с запросом доступа: индивидуальные цены, индивидуальные лимиты и объёмы. Запросите его в портале разработчика.
- Приостановленный (suspended) - ключ не может ничего выполнять; портал показывает причину.
- Legacy-ключи «только метаданные» - небольшое число старых ключей появилось до self-serve биллинга и может вызывать только эндпоинты метаданных; живые вызовы отвечают
403 access_required. Создайте новый live-ключ, чтобы перейти на pay-as-you-go.
GET /v1/api/me сообщает, в каком режиме находится ваш ключ (access_mode), плюс credits_balance вашего аккаунта и подсказку top_up.
Скоупы (разрешения)
Ключи работают по принципу запрещено по умолчанию: ключ может вызывать только те группы эндпоинтов, которые вы выдали при его создании. Скоупов три, и каждый просто открывает набор эндпоинтов.
intel:read - аналитика токенов и кошельков
Повседневный скоуп. Он позволяет вашему ключу спрашивать «что происходит с этим токеном или кошельком?»: драйверы падения цены, сигналы риска, поведение командных кошельков, реализованный PnL и точные движения.
Открывает: POST /v1/api/intel/why-down, POST /v1/api/intel/team-wallets, POST /v1/api/intel/risk, POST /v1/api/wallet/pnl, POST /v1/api/wallet/exact-movements
security:read - проверки безопасности кошелька
Позволяет вашему ключу проверять, что кошелёк одобрил: какие контракты могут тратить его токены, с пометкой безлимитных allowance. Только чтение; ключ с этим скоупом никогда не сможет перемещать средства или что-либо отзывать.
Открывает: POST /v1/api/wallet/approvals
liquidity:read - чтение ликвидности и LP
Позволяет вашему ключу проверять, реальна ли ликвидность токена и где находятся LP-токены: контекст пула, кастодия LP, контекст локов и сжигания.
Открывает: POST /v1/api/intel/liquidity
GET /v1/api/health вообще не требует ключа, а GET /v1/api/me и GET /v1/api/discover работают с любым действительным ключом, независимо от его скоупов.
Скоупы ключа можно изменить в портале в любой момент. Если вызов завершился ошибкой 403 scope_denied, значит, у ключа просто нет скоупа, который нужен этому эндпоинту.
Ротация и отзыв
- Отзыв (revoke) убивает ключ. Он перестаёт проходить аутентификацию в течение минуты.
- Ротация (rotate) создаёт ключ-замену с тем же именем, скоупами и тарифом, показывает его один раз и в том же шаге отзывает старый ключ. Используйте её при любом подозрении на утечку и по регулярному расписанию.
Необязательные ограничения
Для каждого ключа дополнительно можно задать allow-list:
- Origins (точные origin или wildcard-поддомены вроде
https://*.yourapp.com) - запросы с другимOriginотклоняются. - IP / диапазоны CIDR - запросы с других адресов отклоняются.
Пустые списки означают отсутствие ограничений.
Откуда берутся ключи
Ключи создаются только в self-serve портале разработчика с использованием вашего существующего аккаунта Cognivo. Ручной/legacy выдачи ключей для новых интеграций не существует.