Как получить данные о Чемпионатах мира по футболу без боли и лишних API-ключей
Представьте, что вы решили собрать пет-проект: телеграм-бота с расписанием матчей ЧМ-2026 или дашборд со статистикой прошлых турниров. Первым делом вы идете искать официальное API FIFA. Там вас встречает стена из регистраций, платных тарифов или, что еще хуже, закрытая документация. Знакомая история?
Я недавно наткнулся на репозиторий worldcup.json от сообщества openfootball. Ребята делают простую, но чертовски полезную штуку: они собирают данные о футбольных турнирах в обычные текстовые файлы и конвертируют их в JSON. Никаких токенов, никаких лимитов на запросы. Просто бери и пользуйся.
Что внутри этого репозитория
По сути, это огромный архив футбольной истории и планов на будущее в формате JSON. Здесь лежат данные по Чемпионатам мира среди сборных и клубов.
Проект охватывает:
- Предстоящий ЧМ-2026 (Канада, США, Мексика).
- Клубный чемпионат мира 2025.
- Прошедшие турниры: Катар 2022, Россия 2018 и даже исторические данные вплоть до 1930 года.
Самое приятное, что данные не просто свалены в кучу. В JSON-файлах прописаны не только счета, но и авторы голов, минуты, пенальти и даже стадионы.
Как это работает на практике
Автор проекта, Джеральд Бауэр, использует интересный подход. Первоисточником данных служат не базы данных, а простые текстовые файлы в формате Football.TXT. Это человекочитаемый формат, который легко править руками. Как только кто-то обновляет текстовый файл в основном репозитории, GitHub Action автоматически пересобирает JSON-версию.
Вот как выглядит типичный объект матча из файла по ЧМ-2022:
{
"round": "Final",
"date": "2022-12-18",
"team1": "Argentina",
"team2": "France",
"score": {"p": [4, 2], "et": [3, 3], "ft": [2, 2], "ht": [2, 0]},
"goals1": [
{"name": "Lionel Messi", "minute": 23, "penalty": true},
{"name": "Lionel Messi", "minute": 108},
{"name": "Ángel Di María", "minute": 36}
],
"ground": "Lusail Iconic Stadium, Lusail"
}
Видно, что структура простая и понятная. Спарсить такое на любом языке программирования — задача на пять минут.
Как использовать это как API
Вам даже не нужно клонировать репозиторий, чтобы начать работу. Можно обращаться напрямую к raw-файлам на GitHub. Это превращает репозиторий в бесплатный микросервис.
Например, получить расписание ЧМ-2026 можно одной командой в терминале:
curl https://raw.githubusercontent.com/openfootball/worldcup.json/master/2026/worldcup.json
Для фронтенд-приложения на React или Vue это идеальный вариант: зафетчили данные при загрузке и отрисовали сетку турнира. Никакого бэкенда с базой данных настраивать не нужно.
Нюансы, о которых стоит знать
Проект живет на энтузиазме, поэтому здесь есть свои особенности.
Во-первых, это не Live-данные в строгом смысле слова. Если вы ждете, что счет в JSON обновится через секунду после гола в финале, то этого не будет. Джеральд обновляет данные вручную, обычно раз в день по европейскому времени.
Во-вторых, если вам нужны ежесекундные обновления для лайв-ставок, этот проект не подойдет. Но для архивов, календарей и ботов с результатами дня — это золото.
Кстати, если вы видите ошибку в счете или хотите добавить данные по своей лиге, автор активно принимает Pull Requests. Более того, он часто приглашает контрибьюторов в организацию, чтобы они могли править данные напрямую.
Кому пригодится этот проект
Я вижу несколько сценариев, где worldcup.json экономит кучу времени.
Если вы учитесь работать с API или визуализацией данных, это отличный набор «живых» данных. На нем можно тренироваться строить турнирные таблицы или графики результативности игроков.
Для разработчиков инструментов автоматизации это тоже находка. В README уже упоминаются проекты, которые на основе этих JSON-файлов генерируют iCal-календари для смартфонов или делают Slack-ботов для корпоративных чатов.
В конечном счете, это просто честный Open Source и Public Domain. Данные принадлежат всем, и никто не закроет вам доступ, потому что вы превысили бесплатный лимит запросов. Если вы искали простой способ добавить футбол в свой проект, то вы его нашли.
