Predicd APIpredicd.com ↗
Access football match predictions, fixtures, standings, and live scores from predicd.com across multiple leagues via 5 structured endpoints.
What is the Predicd API?
The Predicd.com API provides access to football data across 5 endpoints, covering match predictions, fixtures, league standings, and live match status. The get_match_prediction endpoint returns per-match win probabilities, expected goals, form ratings, head-to-head records, and league position data for both home and away sides. League IDs are discovered through list_leagues and used consistently across all other endpoints.
curl -X GET 'https://api.parse.bot/scraper/3c7a7801-4e9d-4b58-942c-df0bfc16b676/get_league_fixtures?matchday=1&league_id=4429' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace predicd-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Predicd Football Predictions SDK — bounded, re-runnable."""
from parse_apis.predicd_football_predictions_api import Predicd, MatchNotFound
client = Predicd()
# List available leagues (capped)
for league in client.leagues.list(limit=5):
print(league.name, league.id)
# Construct a league by ID and get its fixtures for matchday 1
bundesliga = client.league(id="4331")
fixture = bundesliga.fixtures(matchday="1", limit=1).first()
# Drill into the fixture's detailed prediction
if fixture:
print(fixture.home_team, "vs", fixture.away_team, "—", fixture.predicted_score)
pred = fixture.prediction()
win_prob = pred.stats.get("win_probability")
if win_prob:
print("Win probability:", win_prob.home, win_prob.away)
# Get standings for the same league
for standing in bundesliga.standings(limit=3):
print(standing.pos, standing.team, standing.pts)
# Typed error handling on a bad match ID
try:
client.predictions.get(match_id="9999999")
except MatchNotFound as exc:
print(f"Match not found: {exc.match_id}")
# Check live matches
for live in client.livematches.list(limit=5):
print(live.home_team, "vs", live.away_team, live.status)
print("exercised: leagues.list / league.fixtures / fixture.prediction / league.standings / predictions.get / livematches.list")
Get fixtures and predictions for a specific league and optionally a matchday. Returns match details including predicted scores, actual scores, and betting odds. Predictions use a font-obfuscation scheme decoded server-side. Without a matchday filter, returns all matchdays for the league's current season.
| Param | Type | Description |
|---|---|---|
| matchday | string | Filter by matchday/round number (e.g. '1', '2', '34'). Omitting returns all matchdays. |
| league_id | string | League ID from list_leagues endpoint (e.g. '4328' for Premier League, '4331' for 1. Bundesliga). |
{
"type": "object",
"fields": {
"matches": "array of match objects with match_id, matchday, date_time, home_team, home_team_id, away_team, away_team_id, predicted_score, actual_score, and odds",
"league_id": "string, the league ID queried"
},
"sample": {
"data": {
"matches": [
{
"odds": {
"away": 10.25,
"draw": 7.14,
"home": 1.24
},
"match_id": "2276638",
"matchday": "1",
"away_team": "RB Leipzig",
"date_time": "2025-08-22T18:30:00Z",
"home_team": "FC Bayern Munich",
"actual_score": "6-0",
"away_team_id": "134695",
"home_team_id": "133664",
"predicted_score": "3-1"
}
],
"league_id": "4331"
},
"status": "success"
}
}About the Predicd API
Fixtures and Predictions
The get_league_fixtures endpoint accepts a league_id (sourced from list_leagues) and an optional matchday parameter to narrow results to a specific round. Each match object in the response includes match_id, date_time, home_team, away_team, predicted_score, actual_score, and odds. Omitting matchday returns all matchdays for the league in a single response.
Per-Match Detail
get_match_prediction takes a match_id from fixture results and returns a stats object keyed by stat type — win_probability, expected_goals, form, h2h, and league_position — with separate home and away values for each. It also returns match_info with team names, and a predicted_score string in X-Y format (or null when unavailable). The probabilities field is reserved for future expansion.
Standings
get_league_standings returns the current standings table for a given league_id. Each entry in the standings array includes pos, team, played, wins, draws, losses, goals, diff, and pts. This is suitable for tracking real-time table position across supported competitions.
Live Matches and League Discovery
get_live_matches requires no parameters and returns an array of in-progress matches with match_id, team names, predicted_score, and status. When no matches are live, the array is empty. list_leagues returns all supported leagues with their id, name, and url — these IDs are the entry point for all league-scoped queries.
The Predicd API is a managed, monitored endpoint for predicd.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when predicd.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 predicd.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?+
- Display predicted and actual scores side-by-side for a matchday using
get_league_fixtureswith a specificmatchdayfilter. - Build a match preview widget showing win probabilities and expected goals from
get_match_prediction. - Track live football scores and predictions during a match window using
get_live_matches. - Render a league table with position, points, goal difference, and record from
get_league_standings. - Aggregate head-to-head records and form data from
get_match_predictionto feed a betting analysis tool. - Enumerate all covered competitions and their IDs via
list_leaguesto populate a league selection UI. - Monitor predicted vs. actual score accuracy across a season by pairing
get_league_fixturesresults over multiple matchdays.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does predicd.com offer an official developer API?+
What does `get_match_prediction` return beyond a score prediction?+
stats object with five keyed stat types — win_probability, expected_goals, form, h2h, and league_position — each containing separate home and away values. The predicted_score field gives a single X-Y string or null. The probabilities field is present in the response but reserved for future use and does not currently carry data.Can I filter fixtures by team name instead of league and matchday?+
get_league_fixtures filters only by league_id and optional matchday; there is no team-name or team-ID filter. You can fork this API on Parse and revise it to add a team-scoped filtering endpoint.Does the API cover cup competitions and international tournaments, or only domestic leagues?+
list_leagues endpoint exposes every supported competition with its id, name, and url, so querying it directly shows the full current scope. Competitions not listed there are not available. You can fork the API on Parse and revise it to extend coverage if predicd.com adds new competitions.