Set up once and never touched again. The addresses follow whichever game is marked ON AIR, so there is nothing to edit on game day.
rows, alongside the game’s details, so vMix has nothing to
bind to. The JSON format is there for other software. In vMix, always
&format=xml.
One address per graphic, already built for you with your school’s key in it. Do not type one by hand.
&format=xml.https://www.statchat.co/api/feed?view=rushing&format=xml&key=20ceaabf28a1…
key is your school’s, and anyone holding it can read your
live scoreboard. Email to the crew on the Broadcast
setup page is the safest way to hand them over.onAir="false" and no rows. That is the most common reason a
graphic looks broken.SC Rushing, SC Score./feed/player.Every feed is wrapped in <feed> and each record gets its own
element. The element name changes with the view, which is why one XPath does
not work for all of them.
| View | XPath | Rows you get |
|---|---|---|
score | /feed/game | One |
drive | /feed/drive | One — the drive in progress |
lastplay | /feed/play | One |
teamstats | /feed/team | Two, one per team |
rushing | /feed/player | One per player, most yards first |
passing | /feed/player | One per player, most yards first |
receiving | /feed/player | One per player, most yards first |
defense | /feed/player | One per player, most tackles first |
kicking | /feed/player | One per player who attempted a kick |
kickoffs | /feed/player | One per player who kicked off |
punting | /feed/player | One per player who punted |
starters | /feed/starter | One per position on the lineup card |
Adding &scope=season to a leader feed does not change its
XPath — it is the same view over a wider range, so the element name is
the same.
The starters feed serves one unit at a time, chosen with
&unit=: offense, defense or
special. All three use /feed/starter.
Add &team=opp for the opponent's lineup instead of yours.
The XPath does not change — it is the same view over the other team,
and the team attribute on each row names whose lineup it is.
Leaving the parameter off returns your own starters, exactly as it always
has, so an address already saved in vMix needs no edit.
A real rushing feed. Each attribute on <player> becomes a
column you can bind to.
<?xml version="1.0" encoding="UTF-8"?>
<feed view="rushing" onAir="true" game="Neville vs Ruston"
gameDate="2026-08-28" status="in_progress"
updated="2026-08-31T02:14:07.921Z">
<player player="D. Ancelet" team="Neville" att="18" yds="142"
long="38" td="2" fum="0" />
<player player="T. Guidry" team="Neville" att="9" yds="63"
long="21" td="0" fum="0" />
</feed>
onAir and updated are on the
wrapper, not on the rows. With the XPath set to
/feed/player your columns are the player’s, so you cannot
also bind onAir from that same source. A graphic that greys itself
out when nothing is on air needs a second data source on the same
address with the XPath /feed.vMix binds one title field at a time, so this is done once per piece of text on the graphic.
player,
yds, td. Left on Auto it
matches on the column name, so a title field actually named
yds finds it by itself.{0} YDS renders
142 YDS.For any field left on Selected, the row comes from the Data Sources Manager: click a row and every title bound to that source updates at once.
DataSourceNextRow, DataSourcePreviousRow and
DataSourceSelectRow.Column names as they appear in vMix. Nothing is named after a switcher — the feed describes football, and each suite maps it its own way.
| View | Columns |
|---|---|
score | homeTeam homeScore awayTeam awayScore quarter quarterNumber quarterOrdinal overtimeRound down downOrdinal distance downAndDistance ballOn possession homeHasBall awayHasBall homeTimeouts awayTimeouts |
drive | team plays yards startedAt |
lastplay | text quarter team |
teamstats | team score rushYards passYards totalYards rushAtt passComp passAtt totalPlays firstDowns thirdDownConv thirdDownAtt thirdDownPct fourthDownConv fourthDownAtt explosive sacks interceptions fumbleRec turnovers possessions timeOfPossession timeouts penaltyCount penaltyYards penalties |
rushing | player team att yds long td fum |
passing | player team att comp yds long td intThrown sacked |
receiving | player team rec tgt yds long td fum |
defense | player team tackles tfl sacks int fumRec |
kicking | player team fgMade fgAtt fgLong fgBlocked patMade patAtt patBlocked |
kickoffs | player team kickoffs touchbacks |
punting | player team punts puntYds puntsWithYards puntLong blocked |
| wrapper | view onAir game gameDate status resolvedBy updated
— only with the XPath set to /feed |
In the order worth checking.
onAir="false"? Nobody has marked
a game ON AIR, or somebody took it off./feed/player against a
score feed, or the other way round.&format=json will connect and produce nothing usable.© 2026 StatChat. All rights reserved. Unauthorized copying, modification or distribution of this software or its documentation is prohibited.