Forebet APIforebet.com ↗
Access Forebet football predictions via API: 1X2 probabilities, correct score forecasts, average goals, weather, and betting coefficients for matches worldwide.
What is the Forebet API?
The Forebet API exposes football match prediction data through 1 endpoint, get_predictions, returning over a dozen fields per match including 1X2 probability percentages, predicted outcome, correct score, average goals, weather conditions, and betting coefficients. Coverage spans leagues worldwide, and results can be scoped by time period using the period input parameter.
curl -X GET 'https://api.parse.bot/scraper/eecad7bc-d24a-4a6a-9064-526c4449f98e/get_predictions?period=today' \ -H 'X-API-Key: $PARSE_API_KEY'
Returns Forebet football match predictions for the specified time period, one record per match, with every returned match fully enriched from its detail page. Each record carries home/away teams, kickoff time (match_date, dd/mm/yyyy HH:MM as displayed by the site), country and league, 1X2 probability percentages, the predicted outcome, correct score prediction, average goals, weather, betting coefficient, team form (recent W/D/L sequences), head-to-head history, all prediction markets (1X2, Over/Under 2.5, Half Time, HT/FT, BTTS, Double Chance, Asian Handicap) with probabilities, predictions and bookmaker odds, and per-team goal statistics over the team's recent matches (home_stats/away_stats: matches_played, BTTS yes/no %, clean sheets and clean_sheet_pct, scored-a-goal %, goals scored/conceded and averages). clean_sheet_pct is calculated as clean_sheets / matches_played; every other statistic is the site's published value. Because one detail page is fetched per match, the endpoint is paginated: offset (default 0) and limit (default 15, maximum 20; larger values are clamped) select a slice of the period's full match list, total_matches gives the size of that list, total is the number of records in this response, and has_more tells whether a further slice exists; call again with offset + limit to continue. The site orders the list by kickoff time and may reorder it between calls, so paging is a snapshot walk, not a stable cursor. h2h is an empty array and probability fields are null when the site publishes no such data for a match (for example cup ties with no prior meetings or matches without a Forebet prediction); detail_fetched is false and detail_failures counts matches whose detail page could not be loaded, in which case the enriched fields for that match are empty. An offset beyond the list returns an empty predictions array with has_more false. Invalid period, offset or limit values are rejected as a stale_input error.
| Param | Type | Description |
|---|---|---|
| limit | integer | Maximum number of matches to return and enrich in this call; values above 20 are clamped to 20, values below 1 are rejected. Each match costs one additional detail-page fetch, so larger pages take proportionally longer. |
| offset | integer | Zero-based position in the period's full match list at which this page starts. Use the previous response's offset + limit to fetch the next page. |
| period | string | Time period for predictions. |
{
"type": "object",
"fields": {
"limit": "integer — effective page size after clamping to the maximum of 20",
"total": "integer — number of predictions returned in this response (page size actually filled)",
"offset": "integer — zero-based start position of this page in the full list",
"period": "string — the requested time period",
"has_more": "boolean — true when offset + total is smaller than total_matches, i.e. another page exists",
"predictions": "array of prediction objects: match_id, teams, match_date (kickoff, dd/mm/yyyy HH:MM), country, league, league_tag, probability_home/draw/away (integer % or null), prediction (1/X/2), correct_score_prediction, average_goals, weather, coefficient (American odds string), match_url, detail_fetched (boolean), home_form/away_form (arrays of W/D/L), h2h (array of past meetings with date, home_team, away_team, score, ht_score), markets (object keyed 1x2, over_under_25, half_time, ht_ft, btts, double_chance, asian_handicap, each with probabilities, prediction and odds), home_stats/away_stats (object: matches_played, btts_yes_pct, btts_no_pct, btts_yes_count, clean_sheets, clean_sheet_pct, scored_a_goal_pct, failed_to_score_pct, scored_a_goal_count, goals_scored, goals_conceded, goals_scored_avg, goals_conceded_avg; null when the detail page carries no statistics)",
"total_matches": "integer — number of matches in the period's full list on the site",
"detail_failures": "integer — number of matches in this page whose detail page could not be loaded (their enriched fields are empty)"
},
"sample": {
"data": {
"limit": 15,
"total": 15,
"offset": 0,
"period": "today",
"has_more": true,
"predictions": [
{
"h2h": [],
"league": "State Cup",
"country": "Israel",
"markets": {
"1x2": {
"odds": {
"away_odds": "+150",
"draw_odds": "+240",
"home_odds": "+138",
"predicted_odds": "+150"
},
"prediction": "2",
"probability_away": 36,
"probability_draw": 30,
"probability_home": 34
},
"btts": {
"odds": {
"no_odds": "-200",
"yes_odds": "+140",
"predicted_odds": "+140"
},
"prediction": "No",
"probability_no": 53,
"probability_yes": 47
},
"ht_ft": {
"odds": {
"predicted_odds": "+550"
},
"prediction": "X",
"probability": 14
},
"half_time": {
"odds": {
"predicted_odds": "+130"
},
"prediction": "X",
"probability_away": 34,
"probability_draw": 39,
"probability_home": 27
},
"double_chance": {
"odds": {
"predicted_odds": "-303"
},
"prediction": "21",
"probability": 70
},
"over_under_25": {
"odds": {
"over_odds": "-161",
"under_odds": "+125",
"predicted_odds": "+125"
},
"prediction": "Under",
"probability_over": 41,
"probability_under": 59
},
"asian_handicap": {
"odds": {
"predicted_odds": "+100"
},
"prediction": "Away 0",
"probability": 36
}
},
"weather": null,
"match_id": "2548733",
"away_form": [
"W",
"W",
"W"
],
"away_team": "Hapoel Shefa-'Amr",
"home_form": [
"W",
"D",
"L"
],
"home_team": "Hapoel Kaukab",
"match_url": "https://www.forebet.com/en/football/matches/hapoel-kaukab-hapoel-shefa-amr-2548733",
"away_stats": {
"btts_no_pct": 17,
"btts_yes_pct": 83,
"clean_sheets": 1,
"goals_scored": 21,
"btts_yes_count": 5,
"goals_conceded": 6,
"matches_played": 6,
"clean_sheet_pct": 17,
"goals_scored_avg": 3.5,
"scored_a_goal_pct": 100,
"goals_conceded_avg": 1,
"failed_to_score_pct": 0,
"scored_a_goal_count": 6
},
"home_stats": {
"btts_no_pct": 33,
"btts_yes_pct": 67,
"clean_sheets": 1,
"goals_scored": 7,
"btts_yes_count": 4,
"goals_conceded": 20,
"matches_played": 6,
"clean_sheet_pct": 17,
"goals_scored_avg": 1.17,
"scored_a_goal_pct": 67,
"goals_conceded_avg": 3.33,
"failed_to_score_pct": 33,
"scored_a_goal_count": 4
},
"league_tag": "IlC",
"match_date": "10/09/2026 19:00",
"prediction": "2",
"coefficient": "+150",
"average_goals": 2.05,
"detail_fetched": true,
"probability_away": 36,
"probability_draw": 30,
"probability_home": 34,
"correct_score_prediction": "0 - 1"
},
{
"h2h": [
{
"date": "04/09/2026",
"score": "2 - 2",
"ht_score": "0 - 0",
"away_team": "Tigre Res.",
"home_team": "Atlético Tucumán Res."
}
],
"league": "Reserve League",
"country": "Argentina",
"markets": {
"1x2": {
"odds": {
"away_odds": "+150",
"draw_odds": "+200",
"home_odds": "+155",
"predicted_odds": "+150"
},
"prediction": "2",
"probability_away": 42,
"probability_draw": 27,
"probability_home": 31
},
"btts": {
"odds": {
"no_odds": "-128",
"yes_odds": "-116",
"predicted_odds": "-116"
},
"prediction": "No",
"probability_no": 63,
"probability_yes": 37
},
"ht_ft": {
"odds": {
"predicted_odds": "+700"
},
"prediction": "X",
"probability": 21
},
"half_time": {
"odds": {
"predicted_odds": "+135"
},
"prediction": "X",
"probability_away": 23,
"probability_draw": 49,
"probability_home": 28
},
"double_chance": {
"odds": {
"predicted_odds": "-455"
},
"prediction": "21",
"probability": 73
},
"over_under_25": {
"odds": {
"over_odds": "+100",
"under_odds": "-125",
"predicted_odds": "-125"
},
"prediction": "Under",
"probability_over": 38,
"probability_under": 62
},
"asian_handicap": {
"odds": {
"predicted_odds": "-115"
},
"prediction": "Away -0.5",
"probability": 42
}
},
"weather": "66°F",
"match_id": "2548418",
"away_form": [
"W",
"L",
"D"
],
"away_team": "Atlético Tucumán Res.",
"home_form": [
"D",
"L",
"D"
],
"home_team": "Tigre Res.",
"match_url": "https://www.forebet.com/en/football/matches/tigre-res-atlético-tucumán-res-2548418",
"away_stats": {
"btts_no_pct": 46,
"btts_yes_pct": 54,
"clean_sheets": 5,
"goals_scored": 31,
"btts_yes_count": 14,
"goals_conceded": 37,
"matches_played": 26,
"clean_sheet_pct": 19,
"goals_scored_avg": 1.19,
"scored_a_goal_pct": 62,
"goals_conceded_avg": 1.42,
"failed_to_score_pct": 38,
"scored_a_goal_count": 16
},
"home_stats": {
"btts_no_pct": 48,
"btts_yes_pct": 52,
"clean_sheets": 4,
"goals_scored": 24,
"btts_yes_count": 13,
"goals_conceded": 36,
"matches_played": 25,
"clean_sheet_pct": 16,
"goals_scored_avg": 0.96,
"scored_a_goal_pct": 64,
"goals_conceded_avg": 1.44,
"failed_to_score_pct": 36,
"scored_a_goal_count": 16
},
"league_tag": "ArR",
"match_date": "10/09/2026 20:00",
"prediction": "2",
"coefficient": "+150",
"average_goals": 1.88,
"detail_fetched": true,
"probability_away": 42,
"probability_draw": 27,
"probability_home": 31,
"correct_score_prediction": "0 - 1"
}
],
"total_matches": 44,
"detail_failures": 0
},
"status": "success"
}
}About the Forebet API
What the API Returns
The get_predictions endpoint returns an array of prediction objects for football matches in the requested time window. Each object includes the home and away team names, percentage probabilities for a home win (1), draw (X), or away win (2), the model's predicted outcome, a correct score prediction, an average goals figure, current weather conditions at match venue, and the associated betting coefficient. The response also surfaces a total field indicating how many predictions are in the result set and a period field echoing the requested timeframe.
The period Parameter
The single optional input, period, controls which time window of fixtures is returned. Omitting it returns the default set of predictions. Passing a specific period value lets you scope results to today's matches, tomorrow's, or other supported windows. This makes the endpoint suitable for both real-time dashboards that need current-day fixtures and pipelines that pre-fetch next-day data.
Data Coverage and Scope
Predictions cover matches from leagues across multiple continents, reflecting Forebet's broad multi-league model. Each prediction bundles statistical context (probabilities, average goals) with environmental context (weather) and market context (betting coefficient) in a single response object, so callers do not need to merge data from separate sources to get a complete match forecast picture.
The Forebet API is a managed, monitored endpoint for forebet.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when forebet.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official forebet.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a daily football betting dashboard that displays 1X2 probabilities and coefficients side by side for all fixtures.
- Aggregate correct score predictions across leagues to identify high-confidence forecasts for a specific period.
- Correlate weather conditions with prediction outcomes to analyze how environmental factors affect model confidence.
- Automate alerts when the predicted outcome probability exceeds a threshold for upcoming matches.
- Feed average goals data into a fantasy football lineup optimizer to prioritize attacking players in high-scoring fixtures.
- Compare Forebet predicted scores against actual results over time to evaluate model accuracy by league.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Forebet have an official developer API?+
What does the `get_predictions` endpoint return for each match?+
total count and the period string that was requested.Are historical predictions or past match results available?+
period parameter. Historical prediction records and past match results are not currently exposed. You can fork the API on Parse and revise it to add an endpoint targeting historical data.Can I filter predictions by league, country, or team?+
get_predictions endpoint accepts a period parameter for time-based scoping but does not currently support filtering by league, country, or team name. The full prediction set for the period is returned. You can fork the API on Parse and revise it to add filtering logic over the returned array.