Quickstart notes
Find one team's prices with a jq filter
The board returns a whole sport. One jq select narrows it to your team's row, with the exact-name habits that keep the filter honest.
The board returns a whole sport and you only care about one team tonight. You do not need a script for that. The curl and jq quickstart already gets the board as JSON; one more jq filter keeps only your team's row, checked 2026-10-31.
The filter is one select
The board's events array carries home and away names per event. A jq select keeps the rows matching your team on either side:
curl -s -H "$H" "$URL?sport_id=1" | jq -r '.events[]
| select(.home | test("Lazio"; "i"))
| [.home, .away,
.periods.num_0.money_line.home,
.periods.num_0.money_line.draw,
.periods.num_0.money_line.away]
| @tsv'
The pattern is a case-insensitive test against the home name. To catch the team playing away too, add the same test on .away: select((.home | test("Lazio"; "i")) or (.away | test("Lazio"; "i"))). The columns are the quickstart's own: full-match money line from period num_0, home, draw, away.
Names are messier than they look
The string you type has to match the string the feed sends. "Inter" matches "Inter" and also "Inter Miami". Short names collide; city names travel. Two habits keep the filter honest. Anchor where you can: test("^Inter$"; "i") matches the exact name and nothing longer. And when the exact string is uncertain, fetch the unfiltered list once and read the team's name off it, then filter on that exact string next time.
This is also why the name is a display key, not a join key. Filtering one board by name is fine. Matching rows across days belongs to identifiers, not spellings.
Watch it change with the cursor
The same quickstart's loop applies: the response carries a last cursor, and sending it back as since returns only what changed. For a single team, that means a small watch loop that fetches every few minutes and prints when the row comes back different, a poor man's alert on one fixture.
Mind the cadence against the free key's budget: 20 calls a minute and 100 a day, as the quickstart states, checked 2026-10-31. A loop every 15 minutes fits inside a day with room to spare, and a 429 answers with a Retry-After header that tells you exactly how long to wait.
When to graduate from the terminal
The jq filter answers "where is my team's price right now" beautifully. When the question becomes "tell me when it moves", the terminal loop is the wrong home for it: that is what the drop stream and the relay guides on this site are for. The terminal earns you the question; the stream answers it all night.
One select, one exact name, one slow loop. The whole sport board narrows to the row you actually wanted.