Перейти к основному содержимому

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).
  • При компрометации — замените ключ в личном кабинете.