Football (soccer) from every league the source carries: xG, xA and xGOT split by half, about 100 metrics per player, missing players, goals and cards with minute and scorer, lineups with formation, and odds from up to 20 bookmakers per country. A week back, a week ahead. No login, no browser.
Pricing
from $0.60 / 1,000 match with score and competitions
New fields and options; nothing is removed, and the one renamed input field still accepts its old name. Every new option is off by default.
includeMomentum: momentum, the source's Match Momentum graph minute by minute, and the Momentum view. Not billed.
includeTableContext: tableContext, both teams in the competition's table on the day of the run. Not billed.
excludeWomen and excludeYouth drop women's and youth, junior and reserve competitions.
With includeLiveOdds and includeOddsMarkets, matches in play get odds.live.markets: in-play totals and both teams to score, billed as match-odds-markets once per record; suspended prices are left out.
startTimeKnown next to startTime: false for archive records the source keeps without a start time. Those have startTime null and startDate set to the day of the match, and dateFrom and dateTo compare that day.
TV listings come from the source's channel list by country: channelId, bookmakerId and countryHint on each item, url null for the source's partner links. match-broadcasts is charged only when at least one TV channel is listed.
In-play prices: each bookmaker's first in-play price and whether the price is now above or below it (openingHome, homeDirection and the rest), and how many bookmakers hold each price above or below their first one (homeUpBookmakers and the rest).
In monitor mode the three odds events are billed by their own part of odds, and the free parts (momentum, table context, bookmaker streams) no longer make a match changed.
With includeLive or the Live now filter, status, period and clock follow the live feed: a match that ended after the daily list was read comes as finished.
A run close to its timeout stops starting new work, finishes the records on their way and ends on its own, so notOutputMatchIds in RUN_SUMMARY holds only matches that were not charged.
The input field monitorKey is renamed monitorName. The old name is still accepted wherever it was (runs, saved tasks, schedules, Standby queries): the same value keeps the same monitor memory, and when both are set monitorName is used.
Monitor mode after the update: a match the monitor remembers from 1.0 is output once more, and billed for the base event, when its record changed shape: TV listings from the new source (with includeBroadcasts, also match-broadcasts). It happens once per match; matches whose records did not change are not output again.
1.0 — first public version
The record and every view are described in the README (Output fields, Getting a spreadsheet) and in the dataset schema. Changes of the output since the 0.1 test builds:
Flat columns at the start of every record: startDate, startTime and timezone (the run's time zone), homeTeam, awayTeam, homeScore, awayScore; scrapedAt is the moment the record was output.
periodScores instead of setScores; creditedScore instead of setsWon (the credited result after a shoot-out); tennis and baseball fields and the always empty live.currentPoints and live.serving are no longer output.
Odds: impliedHome, impliedDraw, impliedAway instead of the impliedProbability object; best price per outcome with its bookmaker, average opening prices and bookmakersCount; bookmaker rows homePrice, drawPrice, awayPrice instead of home, draw, away; price list rows price instead of odds; movement.homeDirection instead of movement.direction; numeric handicap lines; American prices with oddsFormat.
Statistics rows homeText and awayText instead of home and away, with isHeadline; head-to-head rows homeName and awayName instead of home and away.
Events with minuteNumber, addedTime and shootoutOrder; lineups with confirmed, numeric rating and numberInt; live.clockStale.
Monitor mode: monitorChangedFieldsText, and odds.previous with odds.changePct.
unavailableParts can name odds (also when one of several oddsCountries did not answer) and the box score, with unavailablePartsText next to it; RUN_SUMMARY can have status: "timing-out" and, with onlyWithOdds, scanned.
Head-to-head rows: meetingId, meetingTournament, meetingHomeScore, meetingAwayScore, meetingWinner and meetingStatus instead of matchId, tournament, homeScore, awayScore, winner and status, which the Head-to-head view mixed up with the match itself.
Numbers next to text: live.minuteNumber and live.addedTime, substitutedAtMinuteNumber and cameOnAtMinuteNumber in lineups, numberInt in box-score lines; American prices also on the in-play averages.
From here on a field that is removed, or renamed without its old name still working, or a default that changes, comes with a new major version. To stay on one build, pass its build number (such as 1.0.3, shown in the run's details) as build when you start a run through the API.