Authentication
API использует API-ключ в HTTP-заголовке Authorization. Никаких префиксов (Bearer, Token) — только сам ключ.
Пример
cURL
curl -H "Authorization: YOUR_API_KEY" \
https://api.api-sport.ru/v2/football/matches
JavaScript (fetch)
const res = await fetch('https://api.api-sport.ru/v2/football/matches', {
headers: { Authorization: 'YOUR_API_KEY' },
});
const data = await res.json();
Python (httpx)
import httpx
r = httpx.get(
'https://api.api-sport.ru/v2/football/matches',
headers={'Authorization': 'YOUR_API_KEY'},
)
data = r.json()
PHP (curl)
$ch = curl_init('https://api.api-sport.ru/v2/football/matches');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: YOUR_API_KEY'],
]);
$data = json_decode(curl_exec($ch), true);
curl_close($ch);
Передача ключа в WebSocket
Для WebSocket-API ключ передаётся в query-параметре при connect, а не заголовком:
wss://ws.api.api-sport.ru/?apiKey=YOUR_API_KEY
Подробнее — WebSocket → Overview → Авторизация.
Ошибки авторизации
- 401 Unauthorized — ключ отсутствует, неверен или истёк (
{"code":401,"error":"Unauthorized","message":"Unauthorized"}). - 400 user_has_no_access — ключ валиден, но тарифный план не покрывает запрошенный спорт (
{"code":400,"error":"user_has_no_access","message":"..."}). Полный пример — Rate limits → Доступ к спортам.
Хранение ключа
- ⚠️ Не публикуйте ключ в публичных репозиториях и frontend-коде.
- Используйте environment variables (
.env, secrets manager). - При компрометации — замените ключ в личном кабинете.