API Documentation
Everything you need to call the 5DollarFootballAPI. Base URL https://api.5dollarfootballapi.com/v1.
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_keyclient 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 fivedollarfootballnpm install fivedollarfootballrate 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.
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) |
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
Live match statistics: attacks, shots and possession — with first-half splits.
Parameters
| id | required | Fixture id. |
Example
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
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
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
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
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
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
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
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
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
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
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
A single team.
Parameters
| id | required | Team id. |
| lang | optional | Localize the team name (21 languages, English fallback). |
Example
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
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
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
Your plan, limits and today's usage.
Example
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.