İçeriğe geç

API başvurusu

UEFA kulüp ve oyuncu puanları HTTP üzerinden. CSV indirmeleri anahtar istemez; JSON uç noktaları ücretsiz bir anahtar ister. Tüm veriler CC BY 4.0 lisanslıdır.

Giriş

API salt okunurdur ve HTTPS üzerinden JSON döndürür. Her yanıt içeriğini data alanına koyar ve lisansı ile atıf satırını içeren bir meta nesnesi ekler.

Listeler page ve per_page ile sayfalanır; meta, total, page ve per_page değerlerini taşır. Puan listeleri ayrıca tablonun tarihi olan as_of değerini taşır.

Temel URL
https://public-api.beyondelo.com/v1
Yanıt200application/json
{
  "data": {
    "status": "ok"
  },
  "meta": {
    "licence": "CC BY 4.0",
    "attribution": "beyondELO (https://beyondelo.com)"
  }
}

Kimlik doğrulama

Anahtarınızı X-API-Key başlığında gönderin. Açık veri kümeleri dışındaki her uç nokta bunu ister. Eksik veya bilinmeyen anahtar 401 döndürür.

Anahtarları profil sayfanızda oluşturup iptal edin. En fazla 3 anahtarınız olabilir.

Anahtarı sunucuda tutun. Tarayıcıya gönderilen kod onu açığa çıkarır.

curl "https://public-api.beyondelo.com/v1/clubs/arsenal" \
  -H "X-API-Key: $BEYONDELO_KEY"
Yanıt401application/json
{
  "error": {
    "code": "invalid_api_key",
    "message": "Missing or invalid API key"
  }
}

İstek sınırları

Her anahtar dakikada 10, günde 100 istek yapabilir. Günlük sayaç UTC gece yarısı sıfırlanır.

Açık veri kümeleri anahtar istemez ve her IP adresinden dakikada 10 isteğe izin verir. Herhangi bir sınır aşılırsa API Retry-After ile 429 döndürür.

BaşlıkAçıklama
X-RateLimit-LimitGünlük izin verilen istek
X-RateLimit-RemainingBugün kalan istek
X-RateLimit-Limit-MinuteDakikalık izin verilen istek
X-RateLimit-Remaining-MinuteBu dakika kalan istek
Retry-AfterBeklenecek saniye, 429 ile gönderilir
Yanıt429application/json
HTTP/1.1 429 Too Many Requests
Retry-After: 37
X-RateLimit-Limit-Minute: 10
X-RateLimit-Remaining-Minute: 0

{
  "error": {
    "code": "rate_limited",
    "message": "Rate limit exceeded"
  }
}

Hatalar

Hatalar HTTP durum kodlarını ve sabit bir kod ile okunabilir bir mesaj içeren JSON gövdesini kullanır. Mesaja değil koda göre dallanın.

DurumKodAçıklama
401invalid_api_keyX-API-Key başlığı eksik, hatalı veya bilinmiyor.
403key_disabledAnahtar devre dışı bırakıldı.
404not_foundYolla eşleşen kulüp, oyuncu veya sezon yok.
422validation_errorBir parametrenin türü yanlış veya aralık dışında.
422invalid_dateBir tarih YYYY-AA-GG biçiminde değil veya gelecekte.
422invalid_seasonSezon, 2025-2026 gibi art arda iki yıl değil.
422filter_requiredMaçlar için competition, season veya club parametrelerinden en az biri gerekir.
429rate_limitedBir istek sınırına ulaşıldı. Retry-After kadar saniye bekleyin.
503service_busyGeçmiş bir sıralama hesaplanıyor. Kısa süre sonra yeniden deneyin.
Yanıt422application/json
{
  "error": {
    "code": "invalid_season",
    "message": "season must look like 2025-2026 (two consecutive years)"
  }
}

Lisans ve atıf

Veriler CC BY 4.0 lisanslıdır. beyondELO'ya atıf yapar, lisansa bağlantı verir ve neyi değiştirdiğinizi belirtirseniz ticari amaçla da paylaşıp uyarlayabilirsiniz. Bu atıf satırını kullanın:

Lisansı oku

beyondELO (https://beyondelo.com)

Açık veri kümeleri

Anahtar gerektirmeyen CSV dosyaları. Her biri bir saat önbelleğe alınır ve CC BY 4.0 lisansını Link başlığında taşır.

Veri kümelerini listele

GET/v1/datasets

CSV indirmeleri, sütunları ve her birinin son güncellenme tarihiyle.

Anahtar gerekmez

Parametreler

Parametre yok.

Hatalar

  • 429rate_limited
curl "https://public-api.beyondelo.com/v1/datasets"
Yanıt200application/json
{
  "data": [
    {
      "name": "club-ratings",
      "url": "/v1/datasets/club-ratings.csv",
      "columns": [
        "rank",
        "country_rank",
        "slug",
        "name",
        "country_code",
        "elo",
        "rd",
        "hfa",
        "is_ranked",
        "last_match_date",
        "as_of"
      ],
      "updated": "2026-11-01",
      "description": "Current rating, rank and country rank of every rated UEFA club (hourly snapshot)."
    },
    {
      "name": "player-ratings",
      "url": "/v1/datasets/player-ratings.csv",
      "columns": [
        "rank",
        "slug",
        "name",
        "country_code",
        "club",
        "position",
        "elo",
        "as_of"
      ],
      "updated": "2026-11-01",
      "description": "Every ranked player with the current rating, best first."
    },
    {
      "name": "club-elo-history",
      "url": "/v1/datasets/club-elo-history/{season}.csv",
      "columns": [
        "date",
        "club",
        "elo",
        "rd"
      ],
      "updated": null,
      "description": "Club ratings recorded in one season, e.g. 2025-2026."
    }
  ],
  "meta": {
    "licence": "CC BY 4.0",
    "attribution": "beyondELO (https://beyondelo.com)"
  }
}

Kulüp puanları CSV

GET/v1/datasets/club-ratings.csv

Puanlanan her UEFA kulübü; saatlik anlık görüntüden puanı, sırası ve ülkesindeki sırasıyla.

Anahtar gerekmez

Parametreler

Parametre yok.

Hatalar

  • 429rate_limited
curl -o club-ratings.csv "https://public-api.beyondelo.com/v1/datasets/club-ratings.csv"
Yanıt200text/csv
rank,country_rank,slug,name,country_code,elo,rd,hfa,is_ranked,last_match_date,as_of
1,1,arsenal,Arsenal,ENG,2143,73.9944080273676,47.9473267152183,true,2026-10-24,2026-11-01
2,1,bayern-munich,Bayern Munich,GER,2095,78.1585982480217,50.0911638547463,true,2026-10-25,2026-11-01
3,1,paris-saint-germain,Paris Saint-Germain,FRA,2092,75.6086753081906,38.0483502418775,true,2026-10-30,2026-11-01

Oyuncu puanları CSV

GET/v1/datasets/player-ratings.csv

Sıralamadaki her oyuncu, en iyiden başlayarak. Canlı veriden okunur; indirme sırasında bir sıra değişirse bir satır tekrarlanabilir veya atlanabilir.

Anahtar gerekmez

Parametreler

Parametre yok.

Hatalar

  • 429rate_limited
curl -o player-ratings.csv "https://public-api.beyondelo.com/v1/datasets/player-ratings.csv"
Yanıt200text/csv
rank,slug,name,country_code,club,position,elo,as_of
1,lamine-yamal,Lamine Yamal,ESP,Barcelona,RW,2275,2026-11-01
2,harry-kane,Harry Kane,ENG,Bayern Munich,CF,2256,2026-11-01
3,ousmane-dembele,Ousmane Dembele,FRA,Paris Saint-Germain,CF,2247,2026-11-01

Kulüp puan geçmişi CSV

GET/v1/datasets/club-elo-history/{season}.csv

Bir sezonda kaydedilen tüm kulüp puanları, tarihe sonra kulübe göre sıralı.

Anahtar gerekmez

Parametreler

ParametreTürAçıklama
seasonzorunlustringArt arda iki yıl olarak sezon, örneğin 2025-2026.

Hatalar

  • 404not_found
  • 422invalid_season
  • 429rate_limited
curl -o 2024-2025.csv "https://public-api.beyondelo.com/v1/datasets/club-elo-history/2024-2025.csv"
Yanıt200text/csv
date,club,elo,rd
2024-03-31,arsenal,2000,66.78311941349256
2024-04-03,arsenal,2002,67.13726422701903
2024-04-06,arsenal,2011,66.96197342076347

Kulüpler

Kulüpleri listele

GET/v1/clubs

Puanlanan UEFA kulüpleri, en iyiden başlayarak: önce sıralamadakiler sıraya göre, sonra diğerleri puana göre. rd puan sapması, hfa kulübün iç saha avantajıdır; ikisi de puan cinsindendir.

API anahtarı gerekir

Parametreler

ParametreTürAçıklama
countrystringÜlke adı veya kodu, örneğin England veya ENG.
rankedbooleanYalnızca sıralamadaki kulüpler için true, yalnızca diğerleri için false.
pageintegerSayfa numarası, 1'den başlar.Varsayılan 1
per_pageintegerSayfa başına satır, en fazla 1000.Varsayılan 100

Hatalar

  • 401invalid_api_key
  • 403key_disabled
  • 429rate_limited
  • 422validation_error
curl -G "https://public-api.beyondelo.com/v1/clubs" \
  -d country=ENG \
  -d ranked=true \
  -d per_page=2 \
  -H "X-API-Key: $BEYONDELO_KEY"
Yanıt200application/json
{
  "data": [
    {
      "slug": "arsenal",
      "name": "Arsenal",
      "country": "England",
      "country_code": "ENG",
      "uefa_id": "52280",
      "elo": 2143,
      "rd": 73.9944080273676,
      "hfa": 47.9473267152183,
      "rank": 1,
      "country_rank": 1,
      "is_ranked": true,
      "last_match_date": "2026-10-24"
    },
    {
      "slug": "manchester-city",
      "name": "Manchester City",
      "country": "England",
      "country_code": "ENG",
      "uefa_id": "52919",
      "elo": 2037,
      "rd": 70.0925676619534,
      "hfa": 51.6742858123645,
      "rank": 5,
      "country_rank": 2,
      "is_ranked": true,
      "last_match_date": "2026-10-24"
    }
  ],
  "meta": {
    "licence": "CC BY 4.0",
    "attribution": "beyondELO (https://beyondelo.com)",
    "as_of": "2026-11-01",
    "total": 25,
    "page": 1,
    "per_page": 2
  }
}

Bir kulübü getir

GET/v1/clubs/{slug}

Güncel puanı ve sırasıyla tek bir kulüp.

API anahtarı gerekir

Parametreler

ParametreTürAçıklama
slugzorunlustringKulübün beyondelo.com adresindeki kısa adı (slug).

Hatalar

  • 401invalid_api_key
  • 403key_disabled
  • 429rate_limited
  • 404not_found
curl "https://public-api.beyondelo.com/v1/clubs/arsenal" \
  -H "X-API-Key: $BEYONDELO_KEY"
Yanıt200application/json
{
  "data": {
    "slug": "arsenal",
    "name": "Arsenal",
    "country": "England",
    "country_code": "ENG",
    "uefa_id": "52280",
    "elo": 2143,
    "rd": 73.9944080273676,
    "hfa": 47.9473267152183,
    "rank": 1,
    "country_rank": 1,
    "is_ranked": true,
    "last_match_date": "2026-10-24"
  },
  "meta": {
    "licence": "CC BY 4.0",
    "attribution": "beyondELO (https://beyondelo.com)",
    "as_of": "2026-11-01"
  }
}

Kulüp puan geçmişi

GET/v1/clubs/{slug}/history

Kulübün her maçtan sonraki puanı, en eskiden başlayarak.

API anahtarı gerekir

Parametreler

ParametreTürAçıklama
slugzorunlustringKulübün beyondelo.com adresindeki kısa adı (slug).
fromdateDahil edilecek ilk tarih, YYYY-AA-GG.
todateDahil edilecek son tarih, YYYY-AA-GG.
pageintegerSayfa numarası, 1'den başlar.Varsayılan 1
per_pageintegerSayfa başına satır, en fazla 1000.Varsayılan 1000

Hatalar

  • 401invalid_api_key
  • 403key_disabled
  • 429rate_limited
  • 404not_found
  • 422invalid_date
  • 422validation_error
curl -G "https://public-api.beyondelo.com/v1/clubs/arsenal/history" \
  -d from=2026-10-01 \
  -H "X-API-Key: $BEYONDELO_KEY"
Yanıt200application/json
{
  "data": [
    {
      "date": "2026-10-10",
      "elo": 2143,
      "rd": 75.1398962114201
    },
    {
      "date": "2026-10-13",
      "elo": 2146,
      "rd": 75.17221192369435
    },
    {
      "date": "2026-10-18",
      "elo": 2142,
      "rd": 74.94831715206651
    },
    {
      "date": "2026-10-21",
      "elo": 2147,
      "rd": 74.0646972086874
    },
    {
      "date": "2026-10-24",
      "elo": 2143,
      "rd": 73.88066354332346
    }
  ],
  "meta": {
    "licence": "CC BY 4.0",
    "attribution": "beyondELO (https://beyondelo.com)",
    "total": 5,
    "page": 1,
    "per_page": 1000
  }
}

Sıralamalar

Kulüp sıralaması

GET/v1/rankings/clubs

Bir tarihteki sıralamadaki kulüpler, en iyiden başlayarak. Tarih verilmezse bugünkü tablo döner.

API anahtarı gerekir

Parametreler

ParametreTürAçıklama
datedateBu tarihteki tablo, YYYY-AA-GG. Varsayılan bugündür; gelecek tarihler reddedilir.

Hatalar

  • 401invalid_api_key
  • 403key_disabled
  • 429rate_limited
  • 422invalid_date
  • 503service_busy
curl -G "https://public-api.beyondelo.com/v1/rankings/clubs" \
  -d date=2026-10-01 \
  -H "X-API-Key: $BEYONDELO_KEY"
Yanıt200application/json
{
  "data": [
    {
      "slug": "arsenal",
      "name": "Arsenal",
      "country": "England",
      "country_code": "ENG",
      "uefa_id": "52280",
      "elo": 2140,
      "rd": 75.5430105775723,
      "hfa": 47.4219471539218,
      "rank": 1,
      "country_rank": 1,
      "is_ranked": true,
      "last_match_date": "2026-09-19"
    },
    {
      "slug": "bayern-munich",
      "name": "Bayern Munich",
      "country": "Germany",
      "country_code": "GER",
      "uefa_id": "50037",
      "elo": 2110,
      "rd": 80.2567376578145,
      "hfa": 49.7829941581144,
      "rank": 2,
      "country_rank": 1,
      "is_ranked": true,
      "last_match_date": "2026-09-18"
    },
    …
  ],
  "meta": {
    "licence": "CC BY 4.0",
    "attribution": "beyondELO (https://beyondelo.com)",
    "as_of": "2026-10-01",
    "total": 527
  }
}

Oyuncular

Oyuncuları listele

GET/v1/players

Sıralamadaki oyuncular, en iyiden başlayarak.

API anahtarı gerekir

Parametreler

ParametreTürAçıklama
countrystringUyruk, ad veya kodla.
clubstringYalnızca bu slug'a sahip kulübün oyuncuları.
pageintegerSayfa numarası, 1'den başlar.Varsayılan 1
per_pageintegerSayfa başına satır, en fazla 1000.Varsayılan 100

Hatalar

  • 401invalid_api_key
  • 403key_disabled
  • 429rate_limited
  • 422validation_error
curl -G "https://public-api.beyondelo.com/v1/players" \
  -d per_page=2 \
  -H "X-API-Key: $BEYONDELO_KEY"
Yanıt200application/json
{
  "data": [
    {
      "slug": "lamine-yamal",
      "name": "Lamine Yamal",
      "country_code": "ESP",
      "club": "Barcelona",
      "position": "RW",
      "elo": 2275,
      "rank": 1
    },
    {
      "slug": "harry-kane",
      "name": "Harry Kane",
      "country_code": "ENG",
      "club": "Bayern Munich",
      "position": "CF",
      "elo": 2256,
      "rank": 2
    }
  ],
  "meta": {
    "licence": "CC BY 4.0",
    "attribution": "beyondELO (https://beyondelo.com)",
    "total": 7820,
    "page": 1,
    "per_page": 2
  }
}

Bir oyuncuyu getir

GET/v1/players/{slug}

Güncel puanı ve sırasıyla tek bir oyuncu. Sıralamada olmayan oyuncuların rank değeri null olur.

API anahtarı gerekir

Parametreler

ParametreTürAçıklama
slugzorunlustringOyuncunun beyondelo.com adresindeki kısa adı (slug).

Hatalar

  • 401invalid_api_key
  • 403key_disabled
  • 429rate_limited
  • 404not_found
curl "https://public-api.beyondelo.com/v1/players/harry-kane" \
  -H "X-API-Key: $BEYONDELO_KEY"
Yanıt200application/json
{
  "data": {
    "slug": "harry-kane",
    "name": "Harry Kane",
    "country_code": "ENG",
    "club": "Bayern Munich",
    "position": "CF",
    "elo": 2256,
    "rank": 2
  },
  "meta": {
    "licence": "CC BY 4.0",
    "attribution": "beyondELO (https://beyondelo.com)"
  }
}

Oyuncu puan geçmişi

GET/v1/players/{slug}/history

Oyuncunun her maçtan sonraki puanı, en eskiden başlayarak.

API anahtarı gerekir

Parametreler

ParametreTürAçıklama
slugzorunlustringOyuncunun beyondelo.com adresindeki kısa adı (slug).
fromdateDahil edilecek ilk tarih, YYYY-AA-GG.
todateDahil edilecek son tarih, YYYY-AA-GG.
pageintegerSayfa numarası, 1'den başlar.Varsayılan 1
per_pageintegerSayfa başına satır, en fazla 1000.Varsayılan 1000

Hatalar

  • 401invalid_api_key
  • 403key_disabled
  • 429rate_limited
  • 404not_found
  • 422invalid_date
  • 422validation_error
curl -G "https://public-api.beyondelo.com/v1/players/harry-kane/history" \
  -d from=2026-10-01 \
  -H "X-API-Key: $BEYONDELO_KEY"
Yanıt200application/json
{
  "data": [
    {
      "date": "2026-10-10",
      "elo": 2221,
      "rd": 90.2
    },
    {
      "date": "2026-10-13",
      "elo": 2235,
      "rd": 90.05
    },
    {
      "date": "2026-10-17",
      "elo": 2240,
      "rd": 90.17
    },
    {
      "date": "2026-10-21",
      "elo": 2263,
      "rd": 88.2
    },
    {
      "date": "2026-10-25",
      "elo": 2256,
      "rd": 88.09
    }
  ],
  "meta": {
    "licence": "CC BY 4.0",
    "attribution": "beyondELO (https://beyondelo.com)",
    "total": 5,
    "page": 1,
    "per_page": 1000
  }
}

Ülkeler ve turnuvalar

Ülkeleri listele

GET/v1/countries

Puanlanan kulübü olan UEFA ülkeleri, kulüplerinin ortalama puanına göre.

API anahtarı gerekir

Parametreler

Parametre yok.

Hatalar

  • 401invalid_api_key
  • 403key_disabled
  • 429rate_limited
curl "https://public-api.beyondelo.com/v1/countries" \
  -H "X-API-Key: $BEYONDELO_KEY"
Yanıt200application/json
{
  "data": [
    {
      "name": "England",
      "code": "ENG",
      "avg_elo": 1839,
      "club_count": 25,
      "last_rated_at": "2026-10-31"
    },
    {
      "name": "Spain",
      "code": "ESP",
      "avg_elo": 1707,
      "club_count": 26,
      "last_rated_at": "2026-10-31"
    },
    …
  ],
  "meta": {
    "licence": "CC BY 4.0",
    "attribution": "beyondELO (https://beyondelo.com)",
    "total": 55
  }
}

Turnuvaları listele

GET/v1/competitions

Puanlanan turnuvalar, kapsanan ilk ve son sezonla. Süren turnuvalarda end_season null olur.

API anahtarı gerekir

Parametreler

Parametre yok.

Hatalar

  • 401invalid_api_key
  • 403key_disabled
  • 429rate_limited
curl "https://public-api.beyondelo.com/v1/competitions" \
  -H "X-API-Key: $BEYONDELO_KEY"
Yanıt200application/json
{
  "data": [
    {
      "code": "ucl",
      "name": "UEFA Champions League",
      "tier": "continental_club",
      "country": null,
      "first_season": "1992-1993",
      "end_season": null
    },
    {
      "code": "eng.1",
      "name": "Premier League",
      "tier": "domestic_league",
      "country": "England",
      "first_season": "1993-1994",
      "end_season": null
    },
    …
  ],
  "meta": {
    "licence": "CC BY 4.0",
    "attribution": "beyondELO (https://beyondelo.com)",
    "total": 32
  }
}

Maçlar

Maçları listele

GET/v1/matches

Tamamlanan maçlar, en yeniden başlayarak; iki kulübün maç öncesi ve sonrası puanlarıyla. En az bir filtre verin.

API anahtarı gerekir

Parametreler

ParametreTürAçıklama
competitionstringTurnuva kodu, örneğin ucl.
seasonstringArt arda iki yıl olarak sezon, örneğin 2025-2026.
clubstringYalnızca bu slug'a sahip kulübün oynadığı maçlar.
pageintegerSayfa numarası, 1'den başlar.Varsayılan 1
per_pageintegerSayfa başına satır, en fazla 1000.Varsayılan 100

Hatalar

  • 401invalid_api_key
  • 403key_disabled
  • 429rate_limited
  • 422filter_required
  • 422invalid_season
  • 422validation_error
curl -G "https://public-api.beyondelo.com/v1/matches" \
  -d competition=ucl \
  -d club=arsenal \
  -d per_page=1 \
  -H "X-API-Key: $BEYONDELO_KEY"
Yanıt200application/json
{
  "data": [
    {
      "id": "750f31e0-1e54-4d12-997e-6e74e01ae44f",
      "date": "2026-10-21",
      "competition": "ucl",
      "season": "2026-2027",
      "stage": "League Phase",
      "matchday": 3,
      "home": "Bayern Munich",
      "away": "Arsenal",
      "home_score": 2,
      "away_score": 2,
      "home_elo_before": 2091,
      "home_elo_after": 2090,
      "away_elo_before": 2146,
      "away_elo_after": 2147
    }
  ],
  "meta": {
    "licence": "CC BY 4.0",
    "attribution": "beyondELO (https://beyondelo.com)",
    "total": 233,
    "page": 1,
    "per_page": 1
  }
}