machina-sports/sports-skills

fastf1

Formula 1 data — race schedules, results, lap timing, driver and team info.

ソースを見る
リポジトリの原文

見出し、例、コード、表、リンク、参照画像を含む原文を表示しています。

FastF1 — Formula 1 Data

Before writing queries, consult references/api-reference.md for endpoints, ID conventions, and data shapes.

Quick Start

Prefer the CLI — it avoids Python import path issues:

bash
sports-skills f1 get_race_schedule --year=2025
sports-skills f1 get_race_results --year=2025 --event=Monza

Python SDK (alternative):

python
from sports_skills import f1

schedule = f1.get_race_schedule(year=2025)
results = f1.get_race_results(year=2025, event="Monza")

CRITICAL: Before Any Query

CRITICAL: Before calling any data endpoint, verify:

  • Year is derived from the system prompt's currentDate — never hardcoded.
  • In January or February, use year = current_year - 1 (pre-season; the new F1 season has not started yet).

Choosing the Year

Derive the current year from the system prompt's date (e.g., currentDate: 2026-02-16 → current year is 2026).

  • If the user specifies a year, use it as-is.
  • If the user says "latest", "recent", "last season", or doesn't specify: The F1 season runs roughly March–December. If the current month is January or February, use year = current_year - 1. From March onward, use the current year.

Workflows

Race Weekend Analysis

  1. get_race_schedule --year=<year> — find the event name and date
  2. get_race_results --year=<year> --event=<name> — final classification (positions, times, points)
  3. get_lap_data --year=<year> --event=<name> --session_type=R — lap-by-lap pace analysis
  4. get_tire_analysis --year=<year> --event=<name> — strategy breakdown (compounds, stint lengths, degradation)

Driver/Team Comparison

  1. get_championship_standings --year=<year> — championship context (points, wins, podiums)
  2. get_team_comparison --year=<year> --team1=<t1> --team2=<t2> OR get_driver_comparison --year=<year> --driver1=<d1> --driver2=<d2>
  3. get_season_stats --year=<year> — aggregate performance (fastest laps, top speeds)

Season Overview

  1. get_race_schedule --year=<year> — full calendar with dates and circuits
  2. get_championship_standings --year=<year> — driver and constructor standings
  3. get_season_stats --year=<year> — season-wide fastest laps, top speeds, points leaders
  4. get_driver_info --year=<year> — current grid (driver numbers, teams, nationalities)

Commands

CommandDescription
get_race_scheduleFull season calendar with dates and circuits
get_race_resultsFinal race classification (positions, times, points)
get_session_dataRaw session info (Q, FP1, FP2, FP3, R)
get_driver_infoDriver details from the grid
get_team_infoTeam info with driver lineup
get_lap_dataLap-by-lap timing with sectors and tire data
get_pit_stopsPit stops with pit-lane time (not stationary time) and team averages
get_speed_dataSpeed trap and intermediate speed data
get_championship_standingsDriver and constructor championship standings (--round=N for standings after round N)
get_season_statsAggregate season performance
get_team_comparisonTeam head-to-head: qualifying, race pace, sectors
get_driver_comparisonDriver head-to-head: qualifying H2H, race H2H, pace delta
get_tire_analysisTire strategy, stint lengths, degradation rates

See references/api-reference.md for full parameter lists and return shapes.

Examples

Example 1: F1 calendar User says: "Show me the F1 calendar" Actions:

  1. Derive year from currentDate
  2. Call get_race_schedule(year=<derived_year>)

Result: Full calendar with event names, dates, and circuits

Example 2: Driver race performance User says: "How did Verstappen do at Monza?" Actions:

  1. Derive year from currentDate (or from context)
  2. Call get_race_results(year=<year>, event="Monza") for final classification
  3. Call get_lap_data(year=<year>, event="Monza", session_type="R", driver="VER") for lap times

Result: Finishing position, gap to leader, fastest lap, and tire strategy

Example 3: Latest results queried in pre-season User says: "What were the latest F1 results?" (asked in February 2026) Actions:

  1. Current month is February → season not yet started → use year = 2025
  2. Call get_race_schedule(year=2025) to find the last event of that season
  3. Call get_race_results(year=2025, event=<last_event>) for the final race results

Result: Results of the final 2025 race

Commands that DO NOT exist — never call these

  • ~~get_qualifying~~ / ~~get_practice~~ — does not exist. Use get_session_data with session_type="Q" for qualifying or session_type="FP1"/"FP2"/"FP3" for practice.
  • ~~get_standings~~ — does not exist. Use get_championship_standings instead.
  • ~~get_results~~ — does not exist. Use get_race_results instead.
  • ~~get_calendar~~ — does not exist. Use get_race_schedule instead.

If a command is not listed in the Commands table above, it does not exist.

Troubleshooting

Error: Event name not found Cause: Event name spelling does not match FastF1's internal naming Solution: Call get_race_schedule(year=<year>) first to get the exact event names, then retry with the correct name

Error: Session data is empty Cause: The session has not happened yet Solution: FastF1 only returns data for completed sessions. Check get_race_schedule for when the session is scheduled

Error: get_race_results returns no fastest_lap_time Cause: FastF1 has no lap data for that race (fastest_lap_time is computed from the laps) Solution: Use get_lap_data(session_type="R") and find the minimum lap_time across all drivers

Error: Querying the current year in January or February returns no data Cause: The new F1 season has not started yet Solution: Use year = current_year - 1 for any pre-March query; do not query the current year before March

同じリポジトリから

関連する Skills

すべての Skills
machina-sports
コミュニティ

cfb-data

College Football (CFB) data via ESPN public endpoints and the NCAA's official endpoints — scores, standings, rosters, schedules, game summaries, play-by-play, rankings, injuries, futures, team/player stats, and news for FBS, plus official FCS scoreboards, NCAA game detail with drive context, and the schools index. Zero config, no API keys. Use when: user asks about college football scores, standings, rankings, team rosters, schedules, game results, play-by-play, injuries, betting futures, team/p

導入数
2
GitHub Stars
243
更新日
10月5日
machina-sports
コミュニティ

cricket-data

Cricket data via ESPN public endpoints and Cricsheet open data — live-ish series scoreboards, standings, match summaries and news (ESPN), plus historical ball-by-ball, player stats, and player registry (Cricsheet, ODC-BY 1.0). Zero config, no API keys. Use when: user asks about cricket scores, IPL/BBL/PSL/international series, points tables, match details, cricket news, ball-by-ball history, or player career stats. Don't use when: user asks about other sports — use football-data (soccer), nfl-da

導入数
2
GitHub Stars
243
更新日
10月5日
machina-sports
コミュニティ

nfl-data

NFL data via ESPN public endpoints plus an nflverse backend for schedules, weekly rosters, play-by-play, and normalized player/team stat tables. Zero config, no API keys. Use when: user asks about NFL scores, standings, team rosters, schedules, game stats, box scores, play-by-play, injuries, transactions, betting futures, depth charts, team/player statistics, NFL news, or which players are trending in fantasy adds/drops. Don't use when: user asks about football/soccer (use football-data), colleg

導入数
2
GitHub Stars
242
更新日
10月5日
machina-sports
コミュニティ

football-data

Football (soccer) data across the world's major leagues — standings, schedules, match stats, xG, transfers, player profiles, head-to-head history, team strength (Elo), and match forecasts. Zero config, no API keys. Covers Premier League, La Liga, Bundesliga, Serie A, Ligue 1, MLS, Champions League, World Cup, Championship, Eredivisie, Primeira Liga, Serie A Brazil, Russian Premier League, Scottish/Belgian/Turkish top flights, European Championship, and more (call getcompetitions for the live lis

導入数
2
GitHub Stars
229
更新日
9月12日