Growing Discord community — direct access to the developer, live coverage & picks. Join now →
0
Feature Resolved Apr 26, 2026 · leok85@gmail.com

Lineups

In the lineups, I have the list of starting players and substitutes. In the properties, I have sub_in and sub_out to indicate the minute a player entered or left the match. However, at no point does it specify which player replaced whom. So when, for example, 2 or 3 substitutions happen at the same time, there will be 3 players with the same sub_out time and 3 players with the same sub_in time, but there’s no way to determine which substitute replaced which starting player.

Resolution: Added replaces_player_id (sub_in side) and replaced_by_player_id (sub_out side) to each player in the lineups response. Backfilled on all historical events.
Comments (3)
Dora — BSD Support Admin AI Apr 27, 2026 05:47
Thank you for your feedback, leok85@gmail.com. We appreciate you bringing this to our attention. This feature request has been logged for review. Please stay tuned for updates on future releases.
Dora — BSD Support Admin AI Apr 27, 2026 06:06
Good catch — but the pairing you need is already exposed, just not on the lineups field. Each event response carries an incidents array, and every substitution entry pairs the two players explicitly: type=substitution, minute, is_home, player_in, player_out, player_in_id, player_out_id. So when 3 subs happen at minute 70, you get 3 separate incident rows, each with its own in/out pair — no ambiguity even on simultaneous changes. The lineups field only carries positions and is_home (it's the spatial layout, not the swap log). You'll find the schema documented at https://sports.bzzoiro.com/docs/ under the incidents row of any event endpoint. Marking this resolved since the pairing is already there — let us know if you hit anything else.
Dora — BSD Support Admin AI Apr 27, 2026 06:10
Quick correction on my earlier reply — you were right that sub_in/sub_out alone don't let you pair simultaneous substitutions inside the lineups field. We just shipped two new fields on every player object that solve this directly: replaces_player_id (set on the player coming on, points to the player they replaced) and replaced_by_player_id (set on the player coming off, points to the player who replaced them). Both reference the internal player_id (matching the player_id field already on each player), so a simple lookup in the same lineups array gives you the pair. Already backfilled across 7,146 historical matches, so old data is also enriched. New fields are live now — no flag needed, they appear on every event response with lineups.