API Documentation

Everything you need to call the 5DollarFootballAPI. Base URL https://api.5dollarfootballapi.com/v1.

GET /v1/fixtures?status=live
curl https://api.5dollarfootballapi.com/v1/fixtures?status=live
  -H "Authorization: Bearer fb_live_your_key"
{ "success": 1, "data": [ /* live matches */ ] }

introduction

The 5DollarFootballAPI is a read-only REST API. Every response is JSON with a top-level "success" flag. All timestamps are UTC (ISO-8601). The base URL is https://api.5dollarfootballapi.com/v1.

authentication

Authenticate every request with your API key in an Authorization header: Authorization: Bearer fb_live_your_key. You can also send it as X-API-Key. Get a key by creating a free account — no card required. Keys are shown once; store them securely and never embed them in public client-side code.

Authorization: Bearer fb_live_your_key

client libraries

Official clients for Python and Node.js cover every endpoint with automatic rate-limit retries, typed errors and a pagination iterator. Prefer raw HTTP? Every example in these docs is plain curl, so any language with an HTTP client works just as well.

pip install fivedollarfootball

Python on PyPI →

npm install fivedollarfootball

Node.js on npm →

rate limits

Each plan has a per-minute rate window — short parallel bursts are fine as long as the minute total holds, and there are no daily caps or monthly pools. Every response includes X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset for the current window. When you exceed the limit you get HTTP 429 with a Retry-After header — back off and retry.

errors

Errors return { "success": 0, "error": { ... } } with an HTTP status. The error object has a machine-readable type and code, a human message, an optional param, a doc_url, and a request_id to quote in support. We never return a silent 200 with empty data for a missing resource — you get a proper 404.

Error shape
curl https://api.5dollarfootballapi.comshape
  -H "Authorization: Bearer fb_live_your_key"
{
  "success": 0,
  "error": {
    "type": "invalid_request",
    "code": "fixture_not_found",
    "message": "No fixture with id 99999.",
    "param": "id",
    "doc_url": "https://5dollarfootballapi.com/docs/errors",
    "request_id": "req_a1b2c3d4e5f6"
  }
}

pagination

List endpoints accept page (default 1) and per_page (default 50, max 100), and return a pagination object: { page, per_page, count, has_more }. Keep requesting the next page while has_more is true. The underlying set can change between two page requests (a match kicks off or finishes); for the volatile live view, request status=live with a large per_page (up to 500) so a single page holds everything.

languages

Endpoints that return team, league or country names accept a lang parameter to localize them — 21 languages besides English. Any name without a translation falls back to English on that row, so responses are always complete. An unknown code returns a 400 error. Omit lang (or pass en) for English.

Code Language
en English (default)
bg Bulgarian
cs Czech
da Danish
de German
el Greek
es Spanish
et Estonian
fr French
hu Hungarian
it Italian
ja Japanese
nb Norwegian
nl Dutch
pl Polish
pt Portuguese
ro Romanian
ru Russian
sk Slovak
sv Swedish
zh-cn Chinese (Simplified)
zh-tw Chinese (Traditional)
GET /v1/leagues/39/fixtures?lang=ja
curl https://api.5dollarfootballapi.com/v1/leagues/39/fixtures?lang=ja
  -H "Authorization: Bearer fb_live_your_key"
{ "success": 1, "data": [ { "league": { "id": 39, "name": "プレミアリーグ" }, /* ... */ } ] }

league coverage

The Pro plan ($5/month) covers 137 competitions — 118 leagues (the top flight of 84 countries across Europe, the Americas, Asia and Africa, plus the 34 second divisions bet365 prices in full) and the continental club cups and national-team football — with full odds, corner and card data. The full list, with ids, is on the league coverage page. Domestic cups and the remaining second tiers are an Ultra feature, along with all 1,600+ leagues & cups.

View the full league list →

history depth

The data runs back to 2014 for the major competitions. How much of it a key can query follows the plan: Free returns the last 3 months of results, Pro ($5/month) the last 12 months of results and odds, and Ultra everything — complete seasons and the full odds tick history back to 2014. Live and upcoming data is identical on every plan.

bookmakers

Fixture lists — /v1/fixtures, the league and team fixture lists, and the odds include — always quote Bet365. The single-fixture endpoint /v1/fixtures/{id}/odds takes a bookmakers parameter: one or more slugs, comma-separated, default bet365 (GET /v1/bookmakers returns the same list as JSON). Bet365 comes with every paid plan; the other bookmakers require Ultra or above. What each bookmaker carries:

Bookmaker Slug 1X2 Asian handicap Goal line Corner line Card lines Half-time lines BTTS
Bet 365 bet365 Pre + Live Pre + Live Pre + Live Pre + Live Pre + Live Pre + Live Pre
Pinnacle pinnacle Pre Pre + Live Pre + Live Pre + Live
William Hill williamhill Pre Pre Pre + Live
Ladbrokes ladbrokes Pre Pre + Live
Vcbet vcbet Pre Pre + Live Pre + Live
1xBet 1xbet Pre Pre + Live Pre + Live
Bwin bwin Pre Pre + Live
Easybets easybets Pre Pre + Live Pre + Live
Interwetten interwetten Pre Pre + Live Pre + Live
Betfair betfair Pre
SNAI snai Pre
Macauslot macauslot Pre Pre + Live Pre + Live Pre
Betsson betsson Pre
Bet-at-home betathome Pre
18Bet 18bet Pre Pre + Live Pre + Live
10BET 10bet Pre Pre + Live
12bet 12bet Pre Pre + Live Pre + Live
Coral coral Pre
Crown crown Pre Pre + Live Pre + Live Pre + Live

Endpoint reference

Every endpoint is read-only and returns JSON. Each also has its own page — click through for a focused, linkable reference.

List fixtures

GET /v1/fixtures

The window view: fixtures and results for a time window of up to 24 hours (default: today UTC), or every in-play match with ?status=live. For a whole season or one team's matches, see /v1/leagues/{id}/fixtures and /v1/teams/{id}/fixtures. Add ?include=odds,events,stats to expand every row in place — one call per screen, not one call per match. How far back you can query follows your plan: 3 months on Free, 12 months on Pro, back to 2014 on Ultra.

Parameters

start_time optional Window start as a unix timestamp (seconds, UTC), inclusive. Defaults to 00:00 UTC today; if only end_time is sent, defaults to 24h before it.
end_time optional Window end as a unix timestamp (seconds, UTC), exclusive. Defaults to start_time + 24h. The window may span at most 24 hours — pick any day boundary in any timezone.
league optional Filter by league id.
status optional all | scheduled | live | finished. Defaults to all. "live" returns every in-play match right now, regardless of date.
include optional Comma list of odds | events | stats — expands each fixture with the Bet365 market lines (paid plans), the event timeline, and the in-play statistics, in the same shapes as the per-fixture endpoints. Caps per_page at 50.
esports optional true | false. Defaults to false (real football only); true returns esoccer (e-football) matches instead.
lang optional Localize team & league names (21 languages besides English, e.g. zh-cn, ja, es, de, pt). Missing translations fall back to English.
page, per_page optional Pagination (per_page max 100; 50 with include; 500 with status=live, so one page holds every live match).

Example

GET /v1/fixtures
curl https://api.5dollarfootballapi.com/v1/fixtures
  -H "Authorization: Bearer fb_live_your_key"
{
  "success": 1,
  "data": [
    {
      "id": 197590518,
      "league": { "id": 43659, "name": "USA USL Cup" },
      "teams": { "home": { "id": 51386, "name": "Birmingham Legion FC" }, "away": { "id": 58558, "name": "Tulsa" } },
      "kickoff_utc": "2026-07-12T00:00:00+00:00",
      "kickoff_ts": 1783814400,
      "status": "finished",
      "goals": { "home": 3, "away": 1 },
      "corners": { "home": 13, "away": 4 },
      "cards": { "home": { "yellow": 1, "red": 0 }, "away": { "yellow": 4, "red": 0 } },
      "odds": {
        "1x2": { "opening": { "home": 1.53, "draw": 3.75, "away": 5.0 }, "closing": { "home": 1.18, "draw": 5.5, "away": 15.0 }, "inplay": null },
        "asian_handicap": { "opening": -0.25, "closing": -0.5, "inplay": -1.0 },
        "goal_line": { "opening": 2.5, "closing": 2.75, "inplay": 3.0 },
        "corner_line": { "opening": 9.5, "closing": 10, "inplay": 10.5 },
        "corner_asian": { "opening": 0, "closing": -0.5, "inplay": null },
        "card_line": { "opening": 4.5, "closing": 5, "inplay": null },
        "card_asian": { "opening": 0, "closing": 0, "inplay": null },
        "asian_handicap_half": { "closing": -0.25, "inplay": null },
        "goal_line_half": { "closing": 1.25, "inplay": 1.5 },
        "corner_line_half": { "closing": 4.5, "inplay": 5 }
      },
      "statistics": {
        "attacks": { "home": 24, "away": 30 },
        "dangerous_attacks": { "home": 11, "away": 14 },
        "shots_on_target": { "home": 3, "away": 5 },
        "shots_off_target": { "home": 4, "away": 2 },
        "possession": { "home": 51, "away": 49 },
        "first_half": {
          "attacks": { "home": 15, "away": 18 },
          "dangerous_attacks": { "home": 6, "away": 8 },
          "shots_on_target": { "home": 1, "away": 2 },
          "shots_off_target": { "home": 2, "away": 0 },
          "possession": { "home": 50, "away": 50 }
        }
      },
      "events": [
        { "type": "goal", "minute": 20, "team": "away", "count": 1 },
        { "type": "corner", "minute": 23, "team": "home", "count": 1 },
        { "type": "yellow_card", "minute": 41, "team": "home", "count": 1 },
        { "type": "period_score", "minute": null, "team": null, "period": "first_half", "score": { "home": 0, "away": 1 } },
        { "type": "missed_penalty", "minute": 55, "team": "away" },
        { "type": "substitution", "minute": 63, "team": "away", "player_in": "R. Silva", "player_out": "J. Costa" },
        { "type": "red_card", "minute": 78, "team": "away" },
        { "type": "period_score", "minute": null, "team": null, "period": "second_half", "score": { "home": 3, "away": 1 } }
      ]
    }
  ],
  "pagination": { "page": 1, "per_page": 50, "count": 1, "has_more": true }
}

// odds / statistics / events appear only with ?include=odds,events,stats

Get a fixture

GET /v1/fixtures/{id}

A single fixture with goals, corners, cards and odds lines. Add ?include=events,stats to fold the event timeline and in-play statistics into the same call.

Parameters

id required Fixture id.
include optional Comma list of events | stats — adds the event timeline and in-play statistics, in the same shapes as the per-fixture endpoints.
lang optional Localize the team & league names (21 languages, English fallback).

Example

GET /v1/fixtures/{id}
curl https://api.5dollarfootballapi.com/v1/fixtures/{id}
  -H "Authorization: Bearer fb_live_your_key"
{
  "success": 1,
  "data": {
    "id": 197590518,
    "league": { "id": 43659, "name": "USA USL Cup" },
    "teams": { "home": { "id": 51386, "name": "Birmingham Legion FC" }, "away": { "id": 58558, "name": "Tulsa" } },
    "kickoff_utc": "2026-07-12T00:00:00+00:00",
    "kickoff_ts": 1783814400,
    "status": "finished",
    "round": 12,
    "league_season_id": 141207,
    "goals": { "home": 3, "away": 1, "half_home": 1, "half_away": 1 },
    "corners": { "home": 13, "away": 4, "half_home": 6, "half_away": 2 },
    "cards": { "home": { "yellow": 1, "red": 0 }, "away": { "yellow": 4, "red": 0 } },
    "odds": {
      "1x2": { "opening": { "home": 1.53, "draw": 3.75, "away": 5.0 }, "closing": { "home": 1.18, "draw": 5.5, "away": 15.0 }, "inplay": null },
      "asian_handicap": { "opening": -0.5, "closing": -0.75, "inplay": -1.0 },
      "goal_line": { "opening": 2.5, "closing": 2.75, "inplay": 3.0 },
      "corner_line": { "opening": 9.5, "closing": 10, "inplay": 10.5 },
      "corner_asian": { "opening": 0, "closing": -0.5, "inplay": null },
      "card_line": { "opening": 4.5, "closing": 5, "inplay": null },
      "card_asian": { "opening": 0, "closing": 0, "inplay": null },
      "asian_handicap_half": { "closing": -0.25, "inplay": null },
      "goal_line_half": { "closing": 1.25, "inplay": 1.5 },
      "corner_line_half": { "closing": 4.5, "inplay": 5 }
    },
    "statistics": {
      "attacks": { "home": 24, "away": 30 },
      "dangerous_attacks": { "home": 11, "away": 14 },
      "shots_on_target": { "home": 3, "away": 5 },
      "shots_off_target": { "home": 4, "away": 2 },
      "possession": { "home": 51, "away": 49 },
      "first_half": {
        "attacks": { "home": 15, "away": 18 },
        "dangerous_attacks": { "home": 6, "away": 8 },
        "shots_on_target": { "home": 1, "away": 2 },
        "shots_off_target": { "home": 2, "away": 0 },
        "possession": { "home": 50, "away": 50 }
      }
    },
    "events": [
      { "type": "goal", "minute": 20, "team": "away", "count": 1 },
      { "type": "corner", "minute": 23, "team": "home", "count": 1 },
      { "type": "yellow_card", "minute": 41, "team": "home", "count": 1 },
      { "type": "period_score", "minute": null, "team": null, "period": "first_half", "score": { "home": 1, "away": 1 } },
      { "type": "missed_penalty", "minute": 55, "team": "away" },
      { "type": "substitution", "minute": 63, "team": "away", "player_in": "R. Silva", "player_out": "J. Costa" },
      { "type": "red_card", "minute": 78, "team": "away" },
      { "type": "period_score", "minute": null, "team": null, "period": "second_half", "score": { "home": 3, "away": 1 } }
    ]
  }
}

// odds requires a paid plan; statistics / events appear with ?include=events,stats

Fixture odds

GET /v1/fixtures/{id}/odds

Full prices for every market, one entry per requested bookmaker — each of opening, closing and in-play carries the line and both prices. Bet365 (the default) serves eleven markets: 1X2 plus Asian handicap, goal, corner, corner-Asian and card lines — full-time and half-time — and both-teams-to-score. Add more books with ?bookmakers=bet365,pinnacle,… (GET /v1/bookmakers) — they carry 1X2, Asian handicap, goal line and corner line where recorded. Bookmakers beyond bet365 require the Ultra plan.

See what every bookmaker carries, per market →

Parameters

id required Fixture id.
bookmakers optional Comma list of bookmaker slugs, default bet365 — e.g. bet365,pinnacle,1xbet. One odds entry per bookmaker; slugs come from GET /v1/bookmakers. Non-bet365 slugs need the Ultra plan.
market optional 1x2 | asian | goalline | corner | corner_asian | cards | cards_asian | asian_half | goalline_half | corner_half | btts.

Example

GET /v1/fixtures/{id}/odds
curl https://api.5dollarfootballapi.com/v1/fixtures/{id}/odds
  -H "Authorization: Bearer fb_live_your_key"
{
  "success": 1,
  "data": {
    "fixture_id": 197590518,
    "bookmakers": [
      {
        "id": 281, "name": "Bet 365", "slug": "bet365",
        "odds": {
          "1x2": { "opening": { "home": 1.53, "draw": 3.75, "away": 5.0 }, "closing": { "home": 1.18, "draw": 5.5, "away": 15.0 }, "inplay": null },
          "asian_handicap": {
            "opening": { "line": -0.25, "home": 1.95, "away": 1.85 },
            "closing": { "line": -0.5,  "home": 2.02, "away": 1.78 },
            "inplay":  { "line": -1.0,  "home": 1.9,  "away": 1.9 }
          },
          "goal_line": {
            "opening": { "line": 2.5,  "over": 1.9,  "under": 1.9 },
            "closing": { "line": 2.75, "over": 1.85, "under": 1.95 },
            "inplay":  { "line": 3.0,  "over": 2.05, "under": 1.75 }
          },
          "corner_line": {
            "opening": { "line": 9.5,  "over": 1.85, "under": 1.85 },
            "closing": { "line": 10,   "over": 1.9,  "under": 1.8 },
            "inplay":  { "line": 10.5, "over": 2.0,  "under": 1.7 }
          },
          "corner_asian": { "opening": { "line": 0, "home": 1.875, "away": 1.875 }, "closing": null, "inplay": null },
          "card_line": { "opening": { "line": 4.5, "over": 1.95, "under": 1.75 }, "closing": { "line": 5, "over": 1.85, "under": 1.85 }, "inplay": null },
          "card_asian": { "opening": { "line": 0, "home": 1.9, "away": 1.8 }, "closing": null, "inplay": null },
          "asian_handicap_half": { "opening": { "line": -0.25, "home": 1.98, "away": 1.82 }, "closing": { "line": -0.25, "home": 2.05, "away": 1.75 }, "inplay": null },
          "goal_line_half": { "opening": { "line": 1.0, "over": 1.95, "under": 1.85 }, "closing": { "line": 1.25, "over": 2.0, "under": 1.8 }, "inplay": { "line": 1.5, "over": 2.1, "under": 1.7 } },
          "corner_line_half": { "opening": { "line": 4.5, "over": 1.85, "under": 1.85 }, "closing": { "line": 4.5, "over": 1.9, "under": 1.8 }, "inplay": { "line": 5, "over": 2.0, "under": 1.7 } },
          "btts": { "opening": { "yes": 1.8, "no": 1.95 }, "closing": { "yes": 1.72, "no": 2.05 }, "inplay": null }
        }
      }
    ]
  }
}

// ?bookmakers=bet365,pinnacle,1xbet returns one entry per book

List bookmakers

GET /v1/bookmakers

The bookmakers accepted by ?bookmakers= on /v1/fixtures/{id}/odds, in display order. Bet365 carries all ten markets and comes with every paid plan; the rest require Ultra — the coverage table on the docs index shows what each carries.

See the per-bookmaker coverage table →

Example

GET /v1/bookmakers
curl https://api.5dollarfootballapi.com/v1/bookmakers
  -H "Authorization: Bearer fb_live_your_key"
{
  "success": 1,
  "data": [
    { "id": 281, "name": "Bet 365", "slug": "bet365" },
    { "id": 177, "name": "Pinnacle", "slug": "pinnacle" },
    { "id": 115, "name": "William Hill", "slug": "williamhill" },
    { "id": 82,  "name": "Ladbrokes", "slug": "ladbrokes" },
    { "id": 1047, "name": "1xBet", "slug": "1xbet" }
  ]
}

// 19 bookmakers in total

Odds movement history

GET /v1/fixtures/{id}/odds/history

The full pre-match and in-play tick history for one market — every recorded price/line change with the score at that moment. Bet365 (the default) carries twelve markets: 1X2, Asian handicap, goal line and corner line (each full-time and half-time), plus corner Asian handicap, card line, card Asian handicap and both-teams-to-score. Any other bookmaker (?bookmaker=, one at a time) carries 1x2, asian, goalline and corner. Ultra plan and above.

Parameters

id required Fixture id.
bookmaker optional One bookmaker slug, default bet365 (see GET /v1/bookmakers). Non-bet365 books carry 1x2, asian, goalline and corner.
market required 1x2 | asian | goalline | corner | 1x2_half | asian_half | goalline_half | corner_half | corner_asian | cards | cards_asian | btts.
page, per_page optional Pagination (per_page default 100, max 500). Ticks are ordered oldest first.

Example

GET /v1/fixtures/{id}/odds/history
curl https://api.5dollarfootballapi.com/v1/fixtures/{id}/odds/history
  -H "Authorization: Bearer fb_live_your_key"
{
  "success": 1,
  "data": {
    "fixture_id": 197864561,
    "bookmaker": { "id": 281, "name": "Bet 365", "slug": "bet365" },
    "market": "asian",
    "ticks": [
      { "minute": null, "line": -1.5,  "home": 1.8,   "away": 2.0,   "score": { "home": null, "away": null }, "recorded_at": "2026-07-16T23:33:40+00:00" },
      { "minute": null, "line": -1.5,  "home": 1.875, "away": 1.925, "score": { "home": null, "away": null }, "recorded_at": "2026-07-17T09:12:04+00:00" },
      { "minute": null, "line": -1.75, "home": 1.8,   "away": 2.0,   "score": { "home": null, "away": null }, "recorded_at": "2026-07-17T14:40:51+00:00" },
      { "minute": null, "line": -1.75, "home": 1.825, "away": 1.975, "score": { "home": null, "away": null }, "recorded_at": "2026-07-17T18:55:19+00:00" },
      { "minute": 2,    "line": -1.75, "home": 1.85,  "away": 1.95,  "score": { "home": 0, "away": 0 },       "recorded_at": "2026-07-17T19:02:35+00:00" },
      { "minute": 14,   "line": -1.5,  "home": 1.9,   "away": 1.9,   "score": { "home": 0, "away": 0 },       "recorded_at": "2026-07-17T19:14:48+00:00" },
      { "minute": 23,   "line": -1.0,  "home": 1.875, "away": 1.925, "score": { "home": 1, "away": 0 },       "recorded_at": "2026-07-17T19:23:57+00:00" },
      { "minute": 38,   "line": -1.25, "home": 1.95,  "away": 1.85,  "score": { "home": 1, "away": 0 },       "recorded_at": "2026-07-17T19:38:20+00:00" },
      { "minute": 51,   "line": -0.75, "home": 1.9,   "away": 1.9,   "score": { "home": 2, "away": 0 },       "recorded_at": "2026-07-17T20:06:11+00:00" },
      { "minute": 64,   "line": -0.5,  "home": 1.85,  "away": 1.95,  "score": { "home": 2, "away": 1 },       "recorded_at": "2026-07-17T20:19:44+00:00" },
      { "minute": 79,   "line": -0.25, "home": 1.975, "away": 1.825, "score": { "home": 2, "away": 1 },       "recorded_at": "2026-07-17T20:34:29+00:00" }
    ]
  },
  "pagination": { "page": 1, "per_page": 100, "count": 11, "has_more": false }
}

Fixture events

GET /v1/fixtures/{id}/events

The chronological match timeline: goals, corners, yellow and red cards, substitutions, missed penalties, and half-time / full-time period scores — corners included, which most football APIs leave out.

Parameters

id required Fixture id.

Example

GET /v1/fixtures/{id}/events
curl https://api.5dollarfootballapi.com/v1/fixtures/{id}/events
  -H "Authorization: Bearer fb_live_your_key"
{
  "success": 1,
  "data": {
    "fixture_id": 197590518,
    "events": [
      { "type": "corner", "minute": 3, "team": "home", "count": 1 },
      { "type": "goal", "minute": 4, "team": "home", "count": 1 },
      { "type": "yellow_card", "minute": 27, "team": "away", "count": 1 },
      { "type": "period_score", "minute": null, "team": null, "period": "first_half", "score": { "home": 1, "away": 0 } },
      { "type": "missed_penalty", "minute": 49, "team": "away" },
      { "type": "substitution", "minute": 60, "team": "home", "player_in": "R. Lewis", "player_out": "J. Cole" },
      { "type": "red_card", "minute": 78, "team": "away" },
      { "type": "period_score", "minute": null, "team": null, "period": "second_half", "score": { "home": 2, "away": 1 } }
    ]
  }
}

Fixture statistics

GET /v1/fixtures/{id}/statistics

Live match statistics: attacks, shots and possession — with first-half splits.

Parameters

id required Fixture id.

Example

GET /v1/fixtures/{id}/statistics
curl https://api.5dollarfootballapi.com/v1/fixtures/{id}/statistics
  -H "Authorization: Bearer fb_live_your_key"
{
  "success": 1,
  "data": {
    "fixture_id": 197590518,
    "statistics": {
      "attacks": { "home": 112, "away": 88 },
      "dangerous_attacks": { "home": 54, "away": 39 },
      "shots_on_target": { "home": 6, "away": 3 },
      "shots_off_target": { "home": 7, "away": 5 },
      "possession": { "home": 58, "away": 42 },
      "first_half": {
        "attacks": { "home": 47, "away": 40 },
        "dangerous_attacks": { "home": 23, "away": 18 },
        "shots_on_target": { "home": 2, "away": 1 },
        "shots_off_target": { "home": 3, "away": 2 },
        "possession": { "home": 55, "away": 45 }
      }
    }
  }
}

Standings

GET /v1/standings

League tables by season, plus corner and card tables via ?type. Corner tables include first-half splits; card tables split yellows and reds.

Parameters

league required League id.
season optional Season, e.g. 2026. Defaults to current.
type optional total (default) | corner | card.
lang optional Localize team & league names (21 languages besides English, e.g. zh-cn, ja, es, de, pt). Missing translations fall back to English.

Example

GET /v1/standings
curl https://api.5dollarfootballapi.com/v1/standings
  -H "Authorization: Bearer fb_live_your_key"
{
  "success": 1,
  "data": {
    "league_id": 39,
    "league_season_id": 141207,
    "type": "corner",
    "round": 38,
    "table": [
      {
        "position": 1,
        "team": { "id": 2618, "name": "Arsenal" },
        "played": 38,
        "total_for": 251, "total_against": 148,
        "average_for": 6.6, "average_against": 3.9,
        "points": 86,
        "first_half": { "total_for": 118, "total_against": 71, "average_for": 3.1, "average_against": 1.9 }
      },
      {
        "position": 2,
        "team": { "id": 2611, "name": "Chelsea" },
        "played": 38,
        "total_for": 243, "total_against": 155,
        "average_for": 6.4, "average_against": 4.1,
        "points": 81,
        "first_half": { "total_for": 109, "total_against": 76, "average_for": 2.9, "average_against": 2.0 }
      }
    ]
  }
}

List countries

GET /v1/countries

The country master referenced by league and team country_id.

Parameters

search optional Match on country name.
lang optional Localize country names (21 languages besides English, e.g. zh-cn, zh-tw, ja, es, de, pt). Unrecognized non-country rows fall back to English.
page, per_page optional Pagination.

Example

GET /v1/countries
curl https://api.5dollarfootballapi.com/v1/countries
  -H "Authorization: Bearer fb_live_your_key"
{
  "success": 1,
  "data": [
    { "id": 14, "name": "England", "continent_id": 3 },
    { "id": 26, "name": "Spain", "continent_id": 3 },
    { "id": 7,  "name": "Brazil", "continent_id": 5 }
  ],
  "pagination": { "page": 1, "per_page": 50, "count": 3, "has_more": true }
}

List leagues

GET /v1/leagues

Competitions, filterable by popularity, country or search.

Parameters

popular optional Set to 1 for popular leagues only.
country optional Filter by country id.
search optional Match on league name.
esports optional true | false. Defaults to false (real football only); true returns the curated list of active esoccer (e-football) competitions instead.
lang optional Localize team & league names (21 languages besides English, e.g. zh-cn, ja, es, de, pt). Missing translations fall back to English.
page, per_page optional Pagination.

Example

GET /v1/leagues
curl https://api.5dollarfootballapi.com/v1/leagues
  -H "Authorization: Bearer fb_live_your_key"
{
  "success": 1,
  "data": [
    { "id": 39, "name": "Premier League", "short_name": "EPL", "country_id": 14, "is_popular": true, "has_standings": true },
    { "id": 61, "name": "La Liga", "short_name": "LL", "country_id": 26, "is_popular": true, "has_standings": true }
  ],
  "pagination": { "page": 1, "per_page": 50, "count": 2, "has_more": true }
}

Get a league

GET /v1/leagues/{id}

A single competition, with its seasons newest first — the valid ?season= values for /v1/leagues/{id}/fixtures and /v1/standings. Exactly one season is marked current.

Parameters

id required League id.
lang optional Localize the league name (21 languages, English fallback).

Example

GET /v1/leagues/{id}
curl https://api.5dollarfootballapi.com/v1/leagues/{id}
  -H "Authorization: Bearer fb_live_your_key"
{
  "success": 1,
  "data": {
    "id": 39,
    "name": "Premier League",
    "short_name": "EPL",
    "country_id": 14,
    "is_popular": true,
    "has_standings": true,
    "seasons": [
      { "season": "26/27", "current": true },
      { "season": "25/26", "current": false },
      { "season": "24/25", "current": false }
    ]
  }
}

League fixtures

GET /v1/leagues/{id}/fixtures

A full season of one league's fixtures and results — the bulk entry point for historical data and backtesting. Defaults to the newest season that has fixtures; pass ?season for a specific one. Supports the same include, status and lang options as /v1/fixtures.

Parameters

id required League id.
season optional A season as listed for the league, e.g. 2026 or 26/27. Defaults to the newest season that has fixtures.
start_time, end_time optional Narrow the season to a [start_time, end_time) kickoff window — unix seconds, UTC, start inclusive, end exclusive, no span limit. Handy for slicing historical data.
status optional all | scheduled | live | finished. Defaults to all.
include optional Comma list of odds | events | stats — same as /v1/fixtures. Caps per_page at 50.
lang optional Localize team & league names (21 languages, English fallback).
page, per_page optional Pagination (per_page max 100; 50 with include). Fixtures are ordered by kickoff, oldest first.

Example

GET /v1/leagues/{id}/fixtures
curl https://api.5dollarfootballapi.com/v1/leagues/{id}/fixtures
  -H "Authorization: Bearer fb_live_your_key"
{
  "success": 1,
  "data": [
    {
      "id": 197412300,
      "league": { "id": 39, "name": "Premier League" },
      "teams": { "home": { "id": 2618, "name": "Arsenal" }, "away": { "id": 2611, "name": "Chelsea" } },
      "kickoff_utc": "2026-08-15T16:30:00+00:00",
      "kickoff_ts": 1786811400,
      "status": "scheduled",
      "goals": { "home": null, "away": null },
      "corners": { "home": null, "away": null },
      "cards": { "home": { "yellow": null, "red": null }, "away": { "yellow": null, "red": null } }
    }
  ],
  "pagination": { "page": 1, "per_page": 50, "count": 1, "has_more": true }
}

Get a team

GET /v1/teams/{id}

A single team.

Parameters

id required Team id.
lang optional Localize the team name (21 languages, English fallback).

Example

GET /v1/teams/{id}
curl https://api.5dollarfootballapi.com/v1/teams/{id}
  -H "Authorization: Bearer fb_live_your_key"
{
  "success": 1,
  "data": {
    "id": 594,
    "name": "Pyunik Yerevan"
  }
}

Team fixtures

GET /v1/teams/{id}/fixtures

One team's matches, home and away, most recent first — recent form, head-to-head material and upcoming games in one list. Supports the same include, status and lang options as /v1/fixtures.

Parameters

id required Team id.
status optional all | scheduled | live | finished. Defaults to all; "scheduled" lists upcoming games, "finished" past results.
start_time, end_time optional Narrow to a [start_time, end_time) kickoff window — unix seconds, UTC, start inclusive, end exclusive, no span limit.
include optional Comma list of odds | events | stats — same as /v1/fixtures. Caps per_page at 50.
lang optional Localize team & league names (21 languages, English fallback).
page, per_page optional Pagination (per_page max 100; 50 with include). Matches are ordered by kickoff, newest first.

Example

GET /v1/teams/{id}/fixtures
curl https://api.5dollarfootballapi.com/v1/teams/{id}/fixtures
  -H "Authorization: Bearer fb_live_your_key"
{
  "success": 1,
  "data": [
    {
      "id": 197508211,
      "league": { "id": 39, "name": "Premier League" },
      "teams": { "home": { "id": 2618, "name": "Arsenal" }, "away": { "id": 2622, "name": "Everton" } },
      "kickoff_utc": "2026-08-08T14:00:00+00:00",
      "kickoff_ts": 1786197600,
      "status": "finished",
      "goals": { "home": 2, "away": 0 },
      "corners": { "home": 8, "away": 3 },
      "cards": { "home": { "yellow": 1, "red": 0 }, "away": { "yellow": 2, "red": 0 } }
    }
  ],
  "pagination": { "page": 1, "per_page": 50, "count": 1, "has_more": true }
}

Account status

GET /v1/status

Your plan, limits and today's usage.

Example

GET /v1/status
curl https://api.5dollarfootballapi.com/v1/status
  -H "Authorization: Bearer fb_live_your_key"
{
  "success": 1,
  "data": {
    "plan": "pro",
    "limits": { "rate_limit": 10, "rate_window_seconds": 60 },
    "usage": { "today": 124 }
  }
}

Ready to build?

Create a free account, grab your key, and make your first call.