Football team form API

The last N matches of any club in one request — results, scores, form string, home and away splits, goal averages and streaks. Ready for match previews, Telegram posts and betting models.

Form is the first thing readers look at before a match, and the most tedious data to keep up to date. Results arrive from different sources, team names never match, and home/away splits have to be recalculated after every round.

The oddmind team form endpoint does that work for you. Team names are normalised across leagues, so arsenal is always the same ID, and every response has the same shape — whether you ask for the Premier League, Brasileirão or MLS.

Request parameters

ParameterDescription
lastNumber of recent matches, 1–20 (default 5)
venueall, home or away
seasonSeason, e.g. 2026/27 (default — current)
GET/v1/teams/arsenal/form?last=5&venue=all200 OK
{
  "team": "Arsenal",
  "team_id": "arsenal",
  "league": "Premier League",
  "position": 2, "points": 18, "played": 7,
  "form": "WWLWW",
  "last_matches": [
    { "date": "2026-10-18", "opponent": "Nottingham Forest",
      "venue": "away", "score": "1-0", "result": "W" },
    { "date": "2026-10-10", "opponent": "Leeds United",
      "venue": "home", "score": "2-1", "result": "W" }
    // …
  ],
  "home_season": { "played": 3, "won": 3, "goals_for_avg": 2.33, "over_2_5": 1.0 },
  "streaks": { "unbeaten": 2, "wins": 2 },
  "source": "football-data.co.uk"
}
Response fields

What you get back

FieldTypeDescription
formstringResults from oldest to newest: W, D, L
last_matches[]arrayDate, opponent, venue, score and result of each match
position / pointsintCurrent league position and points
home_season / away_seasonobjectPlayed, won, goals for/against averages, over 2.5 and BTTS rates
streaksobjectUnbeaten, winless, scored-in and clean-sheet streaks
sourcestringData attribution for the underlying results
Use cases

Built for people who publish football data

Match previews

Show “WWLWW” chips and home/away averages next to every fixture without maintaining your own database.

Telegram channels

Turn the form string and streaks into a one-line summary for each post.

Betting models

Use goal averages and over/BTTS rates as features, consistently calculated across leagues.

FAQ

Team form API: questions

How many leagues are covered?

14 domestic leagues — including the Premier League, LaLiga, Serie A, Bundesliga, Ligue 1, Brasileirão and MLS — plus head-to-head history for UEFA club competitions.

How fresh is the form data?

Results are imported daily, so form updates after every round.

Can I get only home or away matches?

Yes — use the venue parameter to get home-only or away-only form.

Related

More from the API

Early access

Get your API key first

Free plan for small projects. Early-access users get 50% off for the first year.

Request early access