Не раскрывайте свой API-ключ в публичном коде или открытых репозиториях.
Кредиты
Каждый вызов API расходует кредиты. Кредиты не истекают. Новые аккаунты получают 100 бесплатных кредитов.
Эндпоинт
Стоимость
GET /matches
1 кредит за вызов
GET /match/scores
1 кредит за вызов
GET /match/statistics
1 кредит за вызов
GET /match/h2h
1 кредит за вызов
GET /match/tracker
Бесплатно — API-ключ не нужен
GET /rankings
1 кредит за вызов
GET /tournament/details
1 кредит за вызов
GET /tournament/bracket
1 кредит за вызов
GET /tournament/results
1 кредит за вызов
GET /player/profile
1 кредит за вызов
GET /player/matches
1 кредит за вызов
GET /player/statistics
1 кредит за вызов
GET /webhook/register
Бесплатно — API-ключ не нужен
GET /webhook/list
Бесплатно — API-ключ не нужен
GET /webhook/delete
Бесплатно — API-ключ не нужен
Остаток возвращается в каждом ответе в поле credits_remaining и заголовке X-Credits-Remaining.
Ошибки
Все ошибки возвращают JSON с полями code и message:
{ "error": "Invalid API key.", "code": 401 }
Код
Значение
401
Отсутствующий или недействительный api_key
402
Недостаточно кредитов
400
Недопустимый параметр (например, неверный формат даты)
503
Источник данных недоступен
GET /matches
Возвращает матчи по Теннису за указанную дату. Названия команд и лиг можно переводить.
GET/api/v1/matches1 credit
Параметры
Параметр
Обязательный
По умолчанию
Описание
api_key
Да
—
Ваш API-ключ
date
Нет
Сегодня
Дата матча в формате YYYY-MM-DD
lang
Нет
en
Язык ответа: entrderu
Примеры запросов
# Today's matches (English)
https://live-tennis-api.com/api/v1/matches?api_key=YOUR_KEY# Specific date
https://live-tennis-api.com/api/v1/matches?api_key=YOUR_KEY&date=2026-07-13
# Turkish translation
https://live-tennis-api.com/api/v1/matches?api_key=YOUR_KEY&lang=tr
# Russian + specific date
https://live-tennis-api.com/api/v1/matches?api_key=YOUR_KEY&date=2026-07-13&lang=ru
Players of the requested match — id, name, country, ranking, photo
summary.player1_wins
integer
Head-to-head wins for player1 in all-time meetings
summary.player2_wins
integer
Head-to-head wins for player2 in all-time meetings
summary.total
integer
Total number of H2H meetings ever played
meetings[]
array
Historical meetings between the two players, most recent first
meetings[].winner
string|null
"player1" or "player2" — refers to the home/away of that specific match
meetings[].result
string|null
"win" or "loss" — from player1's perspective (the home team of the current requested match)
recent_form.player1[]
array
Last 5 matches for player1, excluding the current match. Same object structure as meetings[]
recent_form.player2[]
array
Last 5 matches for player2, excluding the current match
score.sets_won
array
[player1_sets, player2_sets]
score.s1–s5
array
[player1_games, player2_games] per set
score.s1_tb–s5_tb
array
Tiebreak score; only present if a tiebreak was played
credits_remaining
integer|string
Credits left after this call. "unlimited" for subscription users
GET /match/tracker
Возвращает live-трекер матча в виде полностью отрендеренной HTML-страницы. API-ключ не нужен — получите tracker_url из GET /match/scores и вставьте его напрямую в iframe. Ваш API-ключ никогда не будет виден конечным пользователям.
GET/api/v1/match/trackerБесплатно — API-ключ не нужен
Совет: Вызовите GET /match/scores на стороне сервера, получите tracker_url и установите его как src iframe. Тогда ваш API-ключ остаётся на сервере и не виден в исходном коде страницы.
Параметры
Параметр
Обязательный
По умолчанию
Описание
match_id
Да
—
ID матча из ответа /matches
lang
Нет
en
Язык ответа: entrderu
Примеры запросов
# Step 1: call match/scores with your API key to get tracker_url
https://live-tennis-api.com/api/v1/match/scores?api_key=YOUR_KEY&match_id=16498578
# Step 2: embed the tracker_url from the response — no API key exposed
<iframe src="https://live-tennis-api.com/api/v1/match/tracker?match_id=16498578" width="800" height="600"></iframe>
# Direct access also works
https://live-tennis-api.com/api/v1/match/tracker?match_id=16498578&lang=de
Этот эндпоинт возвращает text/html — полноценную HTML-страницу для вставки в iframe. Ответ не является JSON.
GET /rankings
Возвращает рейтинги игроков ATP, WTA, ATP Live или WTA Live. Полный список до 500 игроков кэшируется на сервере — используйте from и limit для пагинации без дополнительных кредитов.
GET/api/v1/rankings1 credit
Параметры
Параметр
Обязательный
По умолчанию
Описание
api_key
Да
—
Ваш API-ключ
type
Нет
atp
Список рейтинга: atp, wta, atp_live или wta_live
from
Нет
1
Начальная позиция (с 1). Например, 51 — начать с 51-го места.
limit
Нет
100
Количество возвращаемых игроков (по умолчанию 100, макс. 500).
Примеры запросов
# ATP top 100
https://live-tennis-api.com/api/v1/rankings?api_key=YOUR_KEY&type=atp&limit=100
# WTA positions 51–100
https://live-tennis-api.com/api/v1/rankings?api_key=YOUR_KEY&type=wta&from=51&limit=50
true if more players exist beyond this slice — increment from by limit to paginate
position_change
integer
Positions gained (positive) or lost (negative) since the previous update
best_position
integer
Career best ranking position
previous_points
integer
Points from the previous ranking update
tournaments_played
integer
Tournaments counted toward the current ranking
credits_remaining
integer|string
docs_f_credits_remaining
GET /tournament/details
Возвращает основные метаданные турнира за указанный сезон — название, покрытие, страну, город, призовые, размер сетки и даты. Также содержит массив seasons для навигации по годам и массив info_boxes с дополнительными полями от SofaScore.
GET/api/v1/tournament/details1 credit
Параметры
Параметр
Обязательный
По умолчанию
Описание
api_key
Да
—
Ваш API-ключ
tournament_id
Да
—
ID турнира из URL SofaScore (например, 23140 для ATP Challenger Lincoln)
season_id
Нет
последний
ID сезона — используйте seasons[].id из GET /tournament/results для конкретного года. По умолчанию: последний сезон.
Возвращает полную сетку нокаут-турнира для сезона — основная сетка и квалификация. Каждый раунд содержит все матчи с игроками, рейтингами и флагом победителя. Используйте season_id из GET /tournament/results для выбора года.
GET/api/v1/tournament/bracket1 credit
Параметры
Параметр
Обязательный
По умолчанию
Описание
api_key
Да
—
Ваш API-ключ
tournament_id
Да
—
ID турнира из URL SofaScore (например, 23140 для ATP Challenger Lincoln)
season_id
Нет
последний
ID сезона — используйте seasons[].id из GET /tournament/results для конкретного года. По умолчанию: последний сезон.
Примеры запросов
# Latest season (auto-detected)
https://live-tennis-api.com/api/v1/tournament/bracket?api_key=YOUR_KEY&tournament_id=23140
# Specific season
https://live-tennis-api.com/api/v1/tournament/bracket?api_key=YOUR_KEY&tournament_id=23140&season_id=89928
All available seasons — id, year, name. Use season_id param to switch year.
draws[].type
string
"main" or "qualifying"
draws[].rounds[].name
string
Round label — e.g. "Round of 32", "Quarterfinal", "Final"
draws[].rounds[].order
integer
Round order starting from 1 (1 = earliest round)
matches[].event_id
integer|null
Match ID — use with GET /match/scores; null if not yet scheduled
matches[].finished
boolean
Whether the match has been played
matches[].player1 / player2
object|null
id, name, ranking, photo, winner (boolean); null if slot is empty (BYE or not yet filled)
credits_remaining
integer|string
Credits left after this call
GET /tournament/results
Возвращает завершённые и предстоящие матчи турнирного сезона, а также список всех доступных сезонов для выбора года. Включает сеяный номер игрока при наличии.
GET/api/v1/tournament/results1 credit
Параметры
Параметр
Обязательный
По умолчанию
Описание
api_key
Да
—
Ваш API-ключ
tournament_id
Да
—
ID турнира из URL SofaScore (например, 23140 для ATP Challenger Lincoln)
season_id
Нет
последний
ID сезона — используйте seasons[].id из GET /tournament/results для конкретного года. По умолчанию: последний сезон.
lang
Нет
en
Язык ответа: entrderu
Примеры запросов
# Current season results (auto-detected)
https://live-tennis-api.com/api/v1/tournament/results?api_key=YOUR_KEY&tournament_id=23140
# Specific season + language
https://live-tennis-api.com/api/v1/tournament/results?api_key=YOUR_KEY&tournament_id=23140&season_id=89928&lang=tr
The year the statistics are filtered to (defaults to current year)
singles.by_surface
object
W/L breakdown per surface — keys: hardcourt, clay, grass, carpet
recent_form
string[]
Last 10 singles match results, newest first — "W" or "L"
credits_remaining
integer|string
docs_f_credits_remaining
GET /webhook/register
Регистрирует новый webhook-эндпоинт. При наступлении подписанного события ваш URL получит POST-запрос с JSON-телом. Максимум 10 активных вебхуков на аккаунт. Бесплатно — кредиты не тратятся.
GET/api/v1/webhook/registerБесплатно — API-ключ не нужен
Параметры
Параметр
Обязательный
По умолчанию
Описание
api_key
Да
—
Ваш API-ключ
url
Да
—
Публично доступный http или https URL, который будет получать POST-запросы
events
Нет
all
Список типов событий через запятую (например, match.start,score.update). Оставьте пустым, чтобы подписаться на все события.
secret
Нет
—
Необязательная секретная строка — при наличии каждый запрос содержит заголовок X-Webhook-Signature: sha256=<hmac> для проверки подлинности
Доступные события
Событие
Описание
match.start
Матч начался (notstarted → inprogress)
match.finish
Матч завершён с финальным счётом
match.postponed
Матч перенесён
match.cancelled
Матч отменён
score.update
Счёт сета изменился или обновлён текущий счёт игры (15 / 30 / 40 / A). Содержит поле current_game при активном розыгрыше.
Ваш эндпоинт получает POST-запрос с Content-Type: application/json и следующим телом:
Every event follows the same envelope: event, timestamp, a match object (always present), and an event-specific data object.
Click an event below to see its example response.
⚠️ Важное уведомление о безопасности Webhook-уведомления отправляются из нашей системы с IP-адреса 45.94.4.69. Для дополнительной безопасности вы можете ограничить входящие запросы к вашему webhook-эндпоинту на вашем сервере (на уровне брандмауэра), разрешив доступ только с этого IP-адреса.
GET /webhook/list
Возвращает все активные вебхуки, зарегистрированные для вашего API-ключа. Бесплатно — кредиты не тратятся.
GET/api/v1/webhook/listБесплатно — API-ключ не нужен