Growing Discord community — direct access to the developer, live coverage & picks. Join the Discord Join now →
Matches Leagues Predictions The Edge Money News Stats Coverage
Docs / Football API free

Managers, referees & venues#

Managers#

GET /api/v2/managers/
Param Type Description
name string Name search
team_id int Current club
league_id int Managers active in a league
nationality_code string ISO code
tactical_profile string Style classification filter
team_style string Team-style classification filter
min_matches int Minimum matches managed
limit / offset int Pagination
GET /api/v2/managers/{id}/          # profile: preferred formation, style, record
GET /api/v2/managers/{id}/career/   # clubs managed, spells, win rates
GET /api/v2/managers/{id}/matches/  # match log — date_from/to, league_id, team_id, status
GET /api/v2/managers/{id}/social/   # curated media
curl -H "Authorization: Token YOUR_API_KEY" \
     "https://sports.bzzoiro.com/api/v2/managers/?league_id=85&min_matches=50"

Every manager also has a profile page at /managers/, which renders exactly what these endpoints return and nothing else.

Career#

GET /api/v2/managers/{id}/career/     # cached 30 min
Param Type Description
window int Matches either side of the appointment (default 10, max 38). 0 skips it

One entry per spell, newest first, carrying the record at that club — matches, wins, draws, losses, points, ppm, goals_for, goals_against, goal_diff — plus home and away blocks in the same shape.

ppm is null, never 0.0, when there are no matches to judge. Zero means he took no points; null means we have nothing to say about him.

A manager with two spells at the same club gets two entries, and matches are assigned by date rather than by badge, so the 2004 spell does not inherit the 2013 one's results.

appointment_effect#

The part that makes the rest readable. A manager on 1.8 points per match is having a good season or a bad one depending entirely on what the club was doing before he walked in, and that is not in his own record.

"appointment_effect": {
  "window": 10,
  "before": { "matches": 10, "points": 11, "ppm": 1.1 },
  "after":  { "matches": 10, "points": 21, "ppm": 2.1 },
  "ppm_change": 1.0
}

before is the club's record in the matches immediately preceding the appointment, under whoever was in charge. after is the same club over the same number of matches from the appointment onwards, and it stops at the end of the tenure — matches after his last day belong to his successor, and counting them would turn a sacking into an improvement of his.

It is null when the tenure has no start date, or when one of the two sides has no matches at all. A promoted club has no "before", and inventing a 0.0 there would publish that its manager improved everything.

Referees#

GET /api/v2/referees/
Param Type Description
name string Name search
country_code string ISO code
league_id int Referees active in a league
min_matches int Minimum matches officiated
limit / offset int Pagination
GET /api/v2/referees/{id}/          # profile + per-match aggregates (cards, fouls, penalties)
GET /api/v2/referees/{id}/matches/  # match log — date_from/to, league_id, season_id, status

Referee aggregates (yellow/red cards per match) are the data behind cards-market research. Note that cards markets are not currently quoted in the odds feed — total_red_cards still answers, with historical rows only — so today these aggregates are a research input rather than something to price against. See Markets in the feed.

Venues#

GET /api/v2/venues/
Param Type Description
name string Name search
country_code string ISO code
city string City filter
min_capacity int Minimum capacity
team_id int Home venue of a team
limit / offset int Pagination
GET /api/v2/venues/{id}/                # capacity, city, coordinates, home team
GET /api/v2/venues/{id}/competitions/   # competitions hosted at this venue

Venue photos: /img/venue/{id}/ — see Working with images.

View this page as Markdown · Found a mistake? Tell us