Refused goals after VAR consultation
In the goals section in the stats, it would perhaps be good to add the goals refused after consulting the VAR (and the reason in parentheses)
Comments
3
Bzzoiro · Admin
Sep 17, 2026 06:13
Hi,
Good idea, and not something I can do from where the data sits today.
A disallowed goal is a VAR decision in the match incidents, not an entry in the goals statistics, and the reason - offside, foul, handball - is not always published with it. Adding it to the stats block would mean deriving it per match and being wrong some of the time about why, which is worse than not having it.
What is already there: GET /api/v2/events/{id}/incidents/ carries VAR decisions alongside goals and cards, so a disallowed goal is visible there today if you read the incident list rather than the goals counter. That endpoint now documents its response properly, which it did not when you wrote.
Staying open as the request for the stats-side version.
Bzzoiro
Sep 17, 2026 15:55
Yes I talked about stats but I should talk about incidents (like goals, yellow cards, red cards and substitutions). It is what I wanted to mean. I just took the wrong term with stats
Sep 20, 2026 04:06
Hi,
Thanks for the correction - it changes the answer completely, and the good news is you already have this.
Disallowed goals are in the incidents feed today. GET /api/v2/events/{id}/incidents/ returns items with type "varDecision", and each one carries a decision field. The one you want is goalNotAwarded:
{"type": "varDecision", "minute": 64, "player": "A. Rodriguez",
"player_id": 867406, "is_home": false, "decision": "goalNotAwarded",
"confirmed": false, "added_time": null}
So filtering the incident list for type == "varDecision" and decision == "goalNotAwarded" gives you the chalked-off goals, in order, with the minute, the player and the side - alongside the goals, cards and substitutions you already read.
The full set of decision values, which were not documented anywhere until now: goalNotAwarded, goalAwarded, penaltyAwarded, penaltyNotAwarded, cardUpgrade, redCardGiven, mistakenIdentity, review. There is also a confirmed flag - true when the on-field decision stood, false when the review overturned it, which is about one in eight.
The one part I cannot give you is the reason in parentheses. Offside, foul, handball - that is not published with the decision, so I would be guessing, and a wrong reason next to a real disallowed goal is worse than no reason.
Two things I fixed off the back of this. The incidents endpoint now documents all eight decision values and the confirmed flag, so the next person does not have to ask. And it previously listed a "penaltyShootout" incident type that does not exist - there are exactly six types (goal, card, substitution, period, injuryTime, varDecision) and the spec says so now.
Bzzoiro
Log in to comment.