Аутентификация в REST API: API-ключ и заголовок Authorization
Каждый запрос к https://proxy.seyka.ru передаёт API-ключ в заголовке Authorization. Ключ один на всё:
он открывает каждый эндпоинт REST API и MCP-сервер mcp.seyka.ru — там основные эндпоинты
доступны как инструменты платформы.
Получение ключа
Заголовок раздела «Получение ключа»- Войдите на seyka.ru через Яндекс или VK.
- Откройте seyka.ru/api-keys и создайте ключ. Имя ключа — для вас: по нему удобно отличать, какой сервис каким ключом ходит.
- Скопируйте ключ сразу — полностью он показывается только один раз.
Ключ выглядит как sk_, 20–40 латинских букв и цифр, ещё одно подчёркивание и короткая контрольная сумма
(sk_<тело>_<сумма>). Вызовы оплачиваются с баланса аккаунта, которому
принадлежит ключ, — см. цены.
Использование ключа
Заголовок раздела «Использование ключа»Authorization: Bearer sk_...export SEYKA_API_KEY='sk_...'curl https://proxy.seyka.ru/v1/ipinfo/8.8.8.8 \ -H "Authorization: Bearer $SEYKA_API_KEY"const BASE_URL = 'https://proxy.seyka.ru';
async function seyka(path: string, init: RequestInit = {}) { const response = await fetch(`${BASE_URL}${path}`, { ...init, headers: { Authorization: `Bearer ${process.env.SEYKA_API_KEY}`, 'Content-Type': 'application/json', ...init.headers, }, }); if (!response.ok) throw new Error(`${response.status}: ${await response.text()}`); return response.json();}
const info = await seyka('/v1/ipinfo/8.8.8.8');import osimport requests
session = requests.Session()session.headers['Authorization'] = f"Bearer {os.environ['SEYKA_API_KEY']}"
response = session.get('https://proxy.seyka.ru/v1/ipinfo/8.8.8.8')response.raise_for_status()print(response.json())req, _ := http.NewRequest("GET", "https://proxy.seyka.ru/v1/ipinfo/8.8.8.8", nil)req.Header.Set("Authorization", "Bearer "+os.Getenv("SEYKA_API_KEY"))resp, err := http.DefaultClient.Do(req)Проверка ключа
Заголовок раздела «Проверка ключа»GET /v1/me отвечает, кому принадлежит ключ. Вызов бесплатный — удобно проверить ключ при старте сервиса.
curl https://proxy.seyka.ru/v1/me -H "Authorization: Bearer $SEYKA_API_KEY"{ "userId": "0b9e4c1e-6f5a-4c39-9a0f-2d1f3c8e7a51", "keyId": "5d2a7f40-1c3e-4b8a-9e61-7a0c2f9d3b14", "billingExempt": false}Ошибки аутентификации
Заголовок раздела «Ошибки аутентификации»| Код | Когда |
|---|---|
401 |
нет заголовка Authorization, он не в формате Bearer <ключ>, ключ неизвестен, отозван или истёк |
403 |
аккаунт владельца ключа заблокирован |
500 |
внутренний сбой проверки ключа — повторите запрос позже |
503 |
проверка ключа временно недоступна — повторите запрос позже |
Ответ 401 не различает неизвестный, отозванный и истёкший ключ — тело всегда Invalid API key, по нему
нельзя понять, существует ли ключ. Отдельно сообщаются только отсутствие заголовка
(Missing Authorization header) и неверный формат (Invalid Authorization header format); схема Bearer
чувствительна к регистру. Подробнее — в разделе Ошибки.
Отзыв ключа
Заголовок раздела «Отзыв ключа»Отозвать ключ можно на seyka.ru/api-keys в любой момент. Отзыв действует
мгновенно: следующий же запрос с этим ключом получит 401. Если ключ мог утечь — отзовите его, создайте новый
и обновите его во всех сервисах.