Co APIfootball.co.il ↗
Access Israeli football league standings, fixtures, team profiles, player stats, and match details via the football.co.il API. Covers Ligat Ha'Al and Liga Leumit.
What is the Co API?
The football.co.il API exposes 11 endpoints covering Israeli football league data including standings, fixtures, team profiles, squad rosters, and per-match statistics. The get_league_standings endpoint returns standings grouped by stage (RegularSeason, ChampionshipRound, RelegationRound) for Ligat Ha'Al (tournament ID 902) and Liga Leumit (719), while get_match_statistics delivers in-game team-level metrics such as expected goals, possession, and shots on target for individual matches.
curl -X GET 'https://api.parse.bot/scraper/f13aebab-be30-4f04-8f99-36aac5f132cc/get_league_standings?season=25%2F26&tournament_id=902' \ -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 football-co-il-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: Football.co.il SDK — Israeli league standings, teams, fixtures, and player stats."""
from parse_apis.football_co_il_api import FootballIL, Tournament, Season, ResourceNotFound
client = FootballIL()
# Browse league standings for the current season.
for standing in client.standings.list(tournament_id=Tournament.LIGAT_HAAL, limit=5):
print(standing.name, standing.position, standing.points, standing.goals_scored)
# List all teams and pick the first one.
team = client.teams.list(limit=1).first()
if team:
print(team.name, team.hebrew_name, team.color)
# Construct a team by ID and explore sub-resources.
maccabi = client.team(id=4536)
for player in maccabi.squad.list(limit=3):
print(player.name, player.position, player.shirt_number)
# Get season stats for the constructed team.
for stats in maccabi.statistics.list(season=Season._24_25, limit=1):
print(stats.goal, stats.assist, stats.ball_possession, stats.expected_goals)
# Get top scorers for the league.
for ps in client.playerseasons.top_scorers(tournament_id=Tournament.LIGAT_HAAL, limit=3):
print(ps.player_id, ps.goal, ps.assist, ps.expected_goals)
# Typed error handling: attempt to fetch squad for a non-existent team.
try:
bad_team = client.team(id=99999)
for p in bad_team.squad.list(limit=1):
print(p.name)
except ResourceNotFound as exc:
print(f"Team not found: {exc}")
print("exercised: standings.list / teams.list / team().squad.list / team().statistics.list / playerseasons.top_scorers / ResourceNotFound")
Get league standings for a specific tournament and season. Returns standings grouped by stage (RegularSeason, ChampionshipRound, RelegationRound). Each stage contains an array of team standings sorted by position.
| Param | Type | Description |
|---|---|---|
| season | string | Season identifier in YY/YY format (e.g., '25/26', '24/25'). |
| tournament_id | string | Tournament ID. '902' for Ligat Ha'Al (top division), '719' for Liga Leumit. |
{
"type": "object",
"fields": {
"RegularSeason": "array of team standings with id, position, points, wins, draws, losses, goalsScored, goalsReceived, gamesCount, name, hebrewName",
"RelegationRound": "array of team standings for the relegation playoff round",
"ChampionshipRound": "array of team standings for the championship playoff round"
},
"sample": {
"data": {
"RegularSeason": [
{
"id": 4554,
"name": "הפועל ב\"ש",
"wins": 18,
"draws": 5,
"losses": 3,
"points": 59,
"position": 1,
"arabicName": "هبوعيل بئر السبع",
"gamesCount": 26,
"hebrewName": "הפועל ב\"ש",
"goalsScored": 58,
"goalsReceived": 25,
"penaltyPoints": 0
}
]
},
"status": "success"
}
}About the Co API
League Standings and Fixtures
The get_league_standings endpoint accepts a season parameter in YY/YY format (e.g., 24/25) and a tournament_id to select Ligat Ha'Al (902) or Liga Leumit (719). The response groups standings into stage buckets — RegularSeason, ChampionshipRound, and RelegationRound — each containing team rows with fields like position, points, wins, draws, losses, goals scored, goals received, and games played. The get_fixtures_by_matchday endpoint returns a specific round's fixtures or, when matchday is omitted, the latest played matchday. Each fixture object includes homeTeamId, awayTeamId, homeScore, awayScore, status, stadiumId, and date, alongside a round_info object carrying the round name, tournament, and season.
Team and Player Data
get_all_teams returns every team in the league with multilingual names (name in English, hebrewName), color as a hex code, leagueId, stadiumId, and the coach's name — useful as a discovery step before querying team-specific endpoints. get_team_profile expands the stadiumId field into a full object with id, name, hebrewName, and arabicName. get_team_squad returns the roster for a given team, with each player record including id, name, hebrewName, teamId, and a clubs array representing career club history.
Match and Season Statistics
get_match_statistics returns team-level in-game stats for a single match keyed by composite ID. Fields include teamId, Goal, expectedGoals, passes, accuratePasses, ballPossession, AttemptonGoal, OnTarget, and OffTarget. Season-aggregate stats at the team level are available through get_team_statistics, which returns fields like Assist, Cross, Corner, and Yellow for a given team_id and season. For player-level season aggregates, get_player_stats_leaders and get_top_scorers both return Goal, Assist, appearances, expectedGoals, teamId, and playerId; these endpoints are reliably populated for Ligat Ha'Al only.
Historical Fixtures
get_team_fixtures returns every fixture for a team across all seasons as a map from game_id to a fixture object containing status, homeTeamId, awayTeamId, homeScore, awayScore, stadiumId, date, and season. Game IDs surfaced here or from get_fixtures_by_matchday can be passed to get_match_details to retrieve the full match record under the bamboo key, including round, stage, and season fields.
The Co API is a managed, monitored endpoint for football.co.il — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when football.co.il 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 football.co.il 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 live Ligat Ha'Al standings table that segments teams into championship and relegation rounds using
get_league_standingsstage data. - Power a match results tracker that loads the latest matchday fixtures automatically by calling
get_fixtures_by_matchdaywithout amatchdayargument. - Display a team's full schedule and historical results across seasons using the game map returned by
get_team_fixtures. - Render a squad page with Hebrew and English player names, career club history from
get_team_squad, and season goal/assist tallies fromget_player_stats_leaders. - Produce a post-match report by combining
get_match_detailsfor score and venue withget_match_statisticsfor possession, xG, and shots on target. - Aggregate season-level team performance metrics (passes, corners, yellow cards) from
get_team_statisticsto compare teams across a given season. - Build a top-scorers leaderboard using
get_top_scorerswith fields for goals, assists, expected goals, and appearances for each player.
| 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 football.co.il have an official developer API?+
How does `get_league_standings` break down the season stages?+
RegularSeason, ChampionshipRound, and RelegationRound. Each stage holds an array of team rows with position, points, wins, draws, losses, goals scored and received, and games played. Not every season will populate all three stages — early in a season only RegularSeason may be present.Are player statistics available for Liga Leumit (tournament_id 719)?+
get_player_stats_leaders and get_top_scorers are reliably populated for Ligat Ha'Al (tournament_id 902). Liga Leumit player stats may not be populated in the current data. Team-level standings and fixture data for Liga Leumit are available. You can fork this API on Parse and revise it to add a Liga Leumit player stats endpoint if the underlying data becomes available.Does the API return individual player match-by-match performance data (e.g., minutes played, ratings per game)?+
get_player_stats_leaders and squad rosters via get_team_squad, but per-match individual player performance lines are not exposed. You can fork this API on Parse and revise it to add the missing endpoint.How do I find valid team IDs and game IDs?+
get_all_teams returns every team with its integer id, which is used as the team_id parameter for get_team_profile, get_team_squad, get_team_fixtures, and get_team_statistics. Game IDs for get_match_details and get_match_statistics are surfaced in the fixture objects returned by get_fixtures_by_matchday and get_team_fixtures.