docs

World Cup Data Node

The World Cup Data node feeds our proprietary football intelligence into your agent: live scores, in-match events, lineups, elo priors, squad market values, our algorithmic edge signals, cross-venue mispricings, and news. It's the same curated raw-intel diet our own council consumes — data you can't get from any single venue.

World Cup Data
Edge Signals · live

Lenses

Pick a lens to choose which slice of intelligence to fetch:

LensReturns
Fixtures & Scores (fixtures)Upcoming and live matches with scores, status, and venue
Live Events (live_events)Goals, cards, and substitutions for in-play matches
Lineups (lineups)Formation, starting XI, and substitutes (~40min pre-kick)
Elo Ratings (elo)Our elo priors per team — rank and rating (tournament form is in the team_stats lens)
Squad Values (squad)Transfermarkt player and squad market values per team
Edge Signals (signals)Our algorithmic edges: fair value vs market, edge, Kelly
Mispricings (mispricings)Our cross-venue de-vig (Polymarket vs consensus vs elo-fair)
News (news)Football news and news-derived signals
Match Stats / xG (match_stats)Live per-team xG, shots, possession, and box score per match
Team Form (team_stats)Per-team tournament form: played, W/D/L, goal averages, clean sheets
Players (players)Per-player box score for a fixture, or the tournament top-scorers leaderboard when no fixture is given
Full Snapshot (full)Joined per-match snapshot of all of the above

Configuration

FieldDescription
LensWhich slice of World Cup intelligence to fetch.
MatchFilter to one fixture by team name or fixture id. Leave empty for all relevant fixtures.
StatusMatch state filter: Upcoming / Live / Finished / All. Hidden for the elo, squad and team_stats lenses (team-level, no per-match state).
LimitNumber of items to return. Default: 10. Max: 100.
DescriptionOptional note describing what this data fetch is for.

Output

Top-level shape: { lens, count, match, items[], missing[] }. Each item carries the fields for the requested lens, with all probabilities normalized to a 0–1 float. Any requested fixture or team that did not resolve is listed in output.missing — there is no silent fallback.

PathDescription
{worldcup_data.lens}The lens that was fetched
{worldcup_data.count}Number of items returned
{worldcup_data.match}The match filter that was applied (empty = all)
{worldcup_data.items}Array of normalized items for the lens
{worldcup_data.missing}Requested lookups that did not resolve

Match Stats / xG

The match_stats lens returns one row per team per match with live expected goals and the full box score. Filter by team name or fixture id; results are ordered by most recently captured.

FieldDescription
fixtureId, teamId, teamMatch and team identity
xgExpected goals for the team in that match
goalsPreventedGoals prevented (goalkeeping/defense over-performance)
shotsTotal, shotsOnGoal, shotsOffGoal, shotsBlockedShot volume breakdown
shotsInsidebox, shotsOutsideboxShot location split
possessionPct, passesTotal, passesAccurate, passesPctPossession and passing
corners, offsides, fouls, yellowCards, redCards, gkSavesSet pieces, discipline, saves
capturedAtWhen the row was scraped

Team Form

The team_stats lens returns one row per team with current tournament form, ordered as a leaderboard (most wins first). Filter by team name.

FieldDescription
teamId, teamTeam identity
played, wins, draws, lossesMatch record so far
goalsForAvg, goalsAgainstAvgGoals scored / conceded per match
cleanSheetsMatches without conceding
formRecent results string (e.g. WWDL)
capturedAtWhen the row was scraped

The same form data is also folded into each team in the full lens snapshot.

Players

The players lens has two modes, picked automatically by the match filter:

  • Pass a fixture id — returns the per-player box score for that match (best-rated first).
  • Pass a team name, or leave it empty — returns the tournament top-scorers leaderboard (goals, then assists, then rating).
FieldDescription
playerId, player, teamId, teamPlayer and team identity
position, shirtNumberRole and shirt (per-fixture mode)
apps, minutesAppearances and minutes played
goals, assists, goalContributionsScoring output
rating / avgRatingMatch rating (fixture mode) / tournament average
shotsTotal, shotsOn, passesKey, tacklesTotal, interceptions, duelsWonBox-score detail (per-fixture mode)
saves, goalsConceded, penScoredKeeper and penalty stats
yellowCards, redCardsDiscipline
lastSeen / capturedAtFreshness

The full lens is the showcase — one call returns a joined per-match snapshot:

{
  "lens": "full",
  "count": 1,
  "match": "Argentina",
  "items": [
    {
      "fixture": { "fixtureId": 1489383, "date": "2026-06-24T19:00:00Z", "round": "Group C", "venue": "Estadio Azteca" },
      "score": { "home": "Argentina", "away": "France", "homeScore": null, "awayScore": null },
      "state": "NS",
      "elo": { "home": { "rank": 1, "rating": 2143.2 }, "away": { "rank": 3, "rating": 2098.7 } },
      "squad": { "home": { "totalValueEur": 920000000, "marketRank": 4 }, "away": { "totalValueEur": 1100000000, "marketRank": 1 } },
      "form": { "home": { "played": 2, "wins": 2, "draws": 0, "losses": 0, "goalsForAvg": 2.5, "goalsAgainstAvg": 0.5, "cleanSheets": 1, "form": "WW" }, "away": { "played": 2, "wins": 1, "draws": 1, "losses": 0, "goalsForAvg": 1.5, "goalsAgainstAvg": 1.0, "cleanSheets": 0, "form": "WD" } },
      "xg": { "home": { "xg": 2.31, "shotsTotal": 17 }, "away": { "xg": 1.04, "shotsTotal": 9 } },
      "topSignal": { "signalKind": "elo_vs_market", "teamOrOutcome": "Argentina", "fairValue": 0.52, "marketPrice": 0.46, "edgePp": 6.0, "confidence": 78, "recommendedSide": "BUY_YES" },
      "mispricing": { "marketQuestion": "Argentina vs France — winner", "polymarketYes": 0.46, "oddsConsensusImplied": 0.49, "eloFairValue": 0.52, "spreadPp": 6.0 },
      "news": [{ "title": "Messi passed fit for France clash", "url": "https://...", "pubDate": "2026-06-23T16:24:00Z" }]
    }
  ],
  "missing": []
}

Cost

Single-lens fetches cost 2 credits. The full lens fans out several joined reads per match, so it costs 5 credits and caps limit at 25.

What this node does NOT include

By design, this node exposes only our raw, derived intelligence — not venue order books or our own AI's opinions:

  • No sportsbook / odds consensus — out of scope.
  • No Polymarket or Kalshi market prices — use the dedicated Polymarket and Kalshi nodes for venue feeds.
  • No council / agent consensus — that's Nick's own output, so feeding it back into an agent would be circular.