> ## Documentation Index
> Fetch the complete documentation index at: https://mintlify.com/theOehrly/Fast-F1/llms.txt
> Use this file to discover all available pages before exploring further.

# FastF1 Documentation

> Python package for accessing and analyzing Formula 1 results, schedules, timing data and telemetry

<div className="relative overflow-hidden bg-gradient-to-br from-[#e35229] via-[#c44621] to-[#a03b1c] dark:from-[#e35229] dark:via-[#c44621] dark:to-[#a03b1c] py-20">
  <div className="absolute inset-0 bg-black/20" />

  <div className="relative max-w-7xl mx-auto px-6 lg:px-8">
    <div className="lg:grid lg:grid-cols-12 lg:gap-8 items-center">
      <div className="lg:col-span-7">
        <h1 className="text-4xl sm:text-5xl lg:text-6xl font-bold text-white mb-6">
          FastF1 Documentation
        </h1>

        <p className="text-lg sm:text-xl text-white/90 mb-8 max-w-2xl">
          Access and analyze Formula 1 timing data, telemetry, and race results with a powerful Python package built for data scientists and motorsport enthusiasts.
        </p>

        <div className="flex flex-wrap gap-4">
          <a href="/quickstart" className="inline-flex items-center px-6 py-3 rounded-lg bg-white text-[#e35229] font-semibold hover:bg-gray-100 transition-colors">
            Get Started
          </a>

          <a href="/api/session" className="inline-flex items-center px-6 py-3 rounded-lg border-2 border-white/30 bg-white/10 text-white font-semibold hover:bg-white/20 transition-colors">
            API Reference
          </a>
        </div>
      </div>

      <div className="hidden lg:block lg:col-span-5">
        <div className="relative">
          <div className="absolute inset-0 bg-white/10 rounded-2xl blur-3xl" />

          <div className="relative bg-[#1a1d27] dark:bg-[#1a1d27] rounded-xl p-6 border border-white/20">
            <div className="text-xs text-gray-400 mb-2">Python</div>

            <pre className="text-sm text-gray-100">
              <code>
                {`import fastf1

                                # Load a session
                                session = fastf1.get_session(2024, 'Monaco', 'R')
                                session.load()

                                # Get fastest lap telemetry
                                fastest = session.laps.pick_fastest()
                                telemetry = fastest.get_telemetry()

                                # Access speed and position data
                                print(telemetry[['Speed', 'X', 'Y']])`}
              </code>
            </pre>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>

<div className="mt-16 mb-16 max-w-5xl mx-auto px-6">
  <div className="text-center mb-12">
    <h2 className="text-3xl font-bold text-gray-900 dark:text-white mb-4">Quick Start</h2>
    <p className="text-lg text-gray-600 dark:text-gray-400">Get up and running with FastF1 in minutes</p>
  </div>

  <Steps>
    <Step title="Install FastF1">
      Install the package using pip or conda:

      <CodeGroup>
        ```bash pip theme={null}
        pip install fastf1
        ```

        ```bash conda theme={null}
        conda install -c conda-forge fastf1
        ```
      </CodeGroup>

      FastF1 requires Python 3.10 or higher and includes all necessary dependencies including pandas, matplotlib, and numpy.
    </Step>

    <Step title="Enable caching">
      Configure caching to improve performance and avoid repeated API requests:

      ```python theme={null}
      import fastf1

      # Enable cache in a local directory
      fastf1.Cache.enable_cache('path/to/cache')
      ```

      <Note>Caching is highly recommended as session data can be 50-100MB. The cache stores data locally to speed up subsequent loads.</Note>
    </Step>

    <Step title="Load a session">
      Load session data using year, event name, and session identifier:

      ```python theme={null}
      # Load the 2024 Monaco Grand Prix race
      session = fastf1.get_session(2024, 'Monaco', 'R')
      session.load()

      # Access lap data
      laps = session.laps
      print(f"Total laps: {len(laps)}")
      ```

      Session identifiers: `'FP1'`, `'FP2'`, `'FP3'`, `'Q'` (Qualifying), `'S'` (Sprint), `'R'` (Race)
    </Step>

    <Step title="Analyze telemetry data">
      Extract and analyze detailed telemetry from any lap:

      ```python theme={null}
      # Get fastest lap from a specific driver
      verstappen_laps = laps.pick_driver('VER')
      fastest_lap = verstappen_laps.pick_fastest()

      # Get telemetry data
      telemetry = fastest_lap.get_telemetry()

      # Access speed, throttle, brake, and GPS data
      print(telemetry[['Speed', 'Throttle', 'Brake', 'X', 'Y']])
      ```

      Telemetry includes speed, RPM, gear, throttle, brake, DRS, and GPS position data at high resolution.
    </Step>
  </Steps>
</div>

<div className="mt-16 mb-16 max-w-5xl mx-auto px-6">
  <div className="text-center mb-12">
    <h2 className="text-3xl font-bold text-gray-900 dark:text-white mb-4">Explore by Topic</h2>
    <p className="text-lg text-gray-600 dark:text-gray-400">Find what you need to build powerful F1 data analysis tools</p>
  </div>

  <CardGroup cols={3}>
    <Card title="Sessions & Events" icon="calendar" href="/core-concepts/sessions-and-events">
      Learn how to access race weekends, sessions, and event schedules
    </Card>

    <Card title="Telemetry Data" icon="gauge-high" href="/core-concepts/telemetry">
      Work with high-resolution telemetry including speed, throttle, and GPS data
    </Card>

    <Card title="Lap Timing" icon="stopwatch" href="/core-concepts/lap-timing">
      Analyze lap times, sectors, and driver performance metrics
    </Card>

    <Card title="Data Visualization" icon="chart-line" href="/guides/visualization">
      Create stunning visualizations with matplotlib integration
    </Card>

    <Card title="Ergast API" icon="database" href="/guides/ergast-api">
      Access historical F1 data through the jolpica-f1 API
    </Card>

    <Card title="Caching" icon="server" href="/core-concepts/caching">
      Optimize performance with intelligent caching strategies
    </Card>
  </CardGroup>
</div>

<div className="mt-16 mb-16 max-w-5xl mx-auto px-6">
  <div className="text-center mb-12">
    <h2 className="text-3xl font-bold text-gray-900 dark:text-white mb-4">Key Features</h2>
    <p className="text-lg text-gray-600 dark:text-gray-400">Everything you need for Formula 1 data analysis</p>
  </div>

  <div className="grid grid-cols-1 md:grid-cols-2 gap-6">
    <div className="group block rounded-2xl border border-gray-200 dark:border-[#27272a] hover:border-[#e35229] dark:hover:border-[#e35229] bg-white dark:bg-[#1a1d27] p-6 transition-colors no-underline">
      <div className="flex items-start gap-4">
        <div className="flex-shrink-0 w-12 h-12 rounded-lg bg-[#e35229]/10 dark:bg-[#e35229]/20 flex items-center justify-center">
          <svg className="w-6 h-6 text-[#e35229]" fill="none" stroke="currentColor" viewBox="0 0 24 24">
            <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M13 10V3L4 14h7v7l9-11h-7z" />
          </svg>
        </div>

        <div>
          <h3 className="text-lg font-semibold text-gray-900 dark:text-gray-100 mb-2">Real-time & Historical Data</h3>

          <p className="text-sm text-gray-600 dark:text-gray-400">
            Access live timing data during race weekends and complete historical data from 2018 onwards through multiple data sources
          </p>
        </div>
      </div>
    </div>

    <div className="group block rounded-2xl border border-gray-200 dark:border-[#27272a] hover:border-[#e35229] dark:hover:border-[#e35229] bg-white dark:bg-[#1a1d27] p-6 transition-colors no-underline">
      <div className="flex items-start gap-4">
        <div className="flex-shrink-0 w-12 h-12 rounded-lg bg-[#109654]/10 dark:bg-[#109654]/20 flex items-center justify-center">
          <svg className="w-6 h-6 text-[#109654]" fill="none" stroke="currentColor" viewBox="0 0 24 24">
            <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z" />
          </svg>
        </div>

        <div>
          <h3 className="text-lg font-semibold text-gray-900 dark:text-gray-100 mb-2">Pandas DataFrames</h3>

          <p className="text-sm text-gray-600 dark:text-gray-400">
            All data is provided as extended Pandas DataFrames with F1-specific methods for easy manipulation and analysis
          </p>
        </div>
      </div>
    </div>

    <div className="group block rounded-2xl border border-gray-200 dark:border-[#27272a] hover:border-[#e35229] dark:hover:border-[#e35229] bg-white dark:bg-[#1a1d27] p-6 transition-colors no-underline">
      <div className="flex items-start gap-4">
        <div className="flex-shrink-0 w-12 h-12 rounded-lg bg-[#e35229]/10 dark:bg-[#e35229]/20 flex items-center justify-center">
          <svg className="w-6 h-6 text-[#e35229]" fill="none" stroke="currentColor" viewBox="0 0 24 24">
            <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M7 12l3-3 3 3 4-4M8 21l4-4 4 4M3 4h18M4 4h16v12a1 1 0 01-1 1H5a1 1 0 01-1-1V4z" />
          </svg>
        </div>

        <div>
          <h3 className="text-lg font-semibold text-gray-900 dark:text-gray-100 mb-2">Matplotlib Integration</h3>

          <p className="text-sm text-gray-600 dark:text-gray-400">
            Built-in plotting utilities with team colors, driver styling, and tire compound colors for publication-ready visualizations
          </p>
        </div>
      </div>
    </div>

    <div className="group block rounded-2xl border border-gray-200 dark:border-[#27272a] hover:border-[#e35229] dark:hover:border-[#e35229] bg-white dark:bg-[#1a1d27] p-6 transition-colors no-underline">
      <div className="flex items-start gap-4">
        <div className="flex-shrink-0 w-12 h-12 rounded-lg bg-[#109654]/10 dark:bg-[#109654]/20 flex items-center justify-center">
          <svg className="w-6 h-6 text-[#109654]" fill="none" stroke="currentColor" viewBox="0 0 24 24">
            <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4" />
          </svg>
        </div>

        <div>
          <h3 className="text-lg font-semibold text-gray-900 dark:text-gray-100 mb-2">Intelligent Caching</h3>

          <p className="text-sm text-gray-600 dark:text-gray-400">
            Automatic caching of API requests reduces load times and enables offline analysis of previously loaded data
          </p>
        </div>
      </div>
    </div>
  </div>
</div>

<div className="mt-16 mb-16 max-w-5xl mx-auto px-6">
  <div className="text-center mb-12">
    <h2 className="text-3xl font-bold text-gray-900 dark:text-white mb-4">Example Use Cases</h2>
    <p className="text-lg text-gray-600 dark:text-gray-400">See what you can build with FastF1</p>
  </div>

  <div className="grid grid-cols-1 md:grid-cols-2 gap-6">
    <a href="/examples/telemetry-analysis" className="group block rounded-2xl border border-gray-200 dark:border-[#27272a] hover:border-[#e35229] dark:hover:border-[#e35229] overflow-hidden no-underline">
      <div className="h-48 bg-gradient-to-br from-[#e35229] to-[#c44621] flex items-center justify-center">
        <svg className="w-20 h-20 text-white/40" fill="none" stroke="currentColor" viewBox="0 0 24 24">
          <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={1.5} d="M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z" />
        </svg>
      </div>

      <div className="p-6 bg-white dark:bg-[#1a1d27]">
        <h3 className="text-base font-semibold text-gray-900 dark:text-gray-100 mb-2">Telemetry Analysis</h3>

        <p className="text-sm text-gray-600 dark:text-gray-400 mb-4">
          Compare driver telemetry, analyze corner speeds, and visualize racing lines with GPS data
        </p>

        <div className="flex items-center text-sm text-[#e35229] group-hover:text-[#c44621] dark:group-hover:text-[#e35229]">
          View example

          <svg className="w-4 h-4 ml-1" fill="none" stroke="currentColor" viewBox="0 0 24 24">
            <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M9 5l7 7-7 7" />
          </svg>
        </div>
      </div>
    </a>

    <a href="/examples/lap-time-comparison" className="group block rounded-2xl border border-gray-200 dark:border-[#27272a] hover:border-[#e35229] dark:hover:border-[#e35229] overflow-hidden no-underline">
      <div className="h-48 bg-gradient-to-br from-[#109654] to-[#0d7a43] flex items-center justify-center">
        <svg className="w-20 h-20 text-white/40" fill="none" stroke="currentColor" viewBox="0 0 24 24">
          <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={1.5} d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z" />
        </svg>
      </div>

      <div className="p-6 bg-white dark:bg-[#1a1d27]">
        <h3 className="text-base font-semibold text-gray-900 dark:text-gray-100 mb-2">Lap Time Analysis</h3>

        <p className="text-sm text-gray-600 dark:text-gray-400 mb-4">
          Track lap time evolution, compare qualifying sessions, and analyze sector performance
        </p>

        <div className="flex items-center text-sm text-[#e35229] group-hover:text-[#c44621] dark:group-hover:text-[#e35229]">
          View example

          <svg className="w-4 h-4 ml-1" fill="none" stroke="currentColor" viewBox="0 0 24 24">
            <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M9 5l7 7-7 7" />
          </svg>
        </div>
      </div>
    </a>

    <a href="/examples/race-strategy" className="group block rounded-2xl border border-gray-200 dark:border-[#27272a] hover:border-[#e35229] dark:hover:border-[#e35229] overflow-hidden no-underline">
      <div className="h-48 bg-gradient-to-br from-[#748294] to-[#5a6573] flex items-center justify-center">
        <svg className="w-20 h-20 text-white/40" fill="none" stroke="currentColor" viewBox="0 0 24 24">
          <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={1.5} d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2" />
        </svg>
      </div>

      <div className="p-6 bg-white dark:bg-[#1a1d27]">
        <h3 className="text-base font-semibold text-gray-900 dark:text-gray-100 mb-2">Race Strategy</h3>

        <p className="text-sm text-gray-600 dark:text-gray-400 mb-4">
          Visualize tire strategies, pit stop timing, and track position changes throughout races
        </p>

        <div className="flex items-center text-sm text-[#e35229] group-hover:text-[#c44621] dark:group-hover:text-[#e35229]">
          View example

          <svg className="w-4 h-4 ml-1" fill="none" stroke="currentColor" viewBox="0 0 24 24">
            <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M9 5l7 7-7 7" />
          </svg>
        </div>
      </div>
    </a>

    <a href="/examples/driver-standings" className="group block rounded-2xl border border-gray-200 dark:border-[#27272a] hover:border-[#e35229] dark:hover:border-[#e35229] overflow-hidden no-underline">
      <div className="h-48 bg-gradient-to-br from-[#e35229] via-[#109654] to-[#748294] flex items-center justify-center">
        <svg className="w-20 h-20 text-white/40" fill="none" stroke="currentColor" viewBox="0 0 24 24">
          <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={1.5} d="M16 8v8m-4-5v5m-4-2v2m-2 4h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z" />
        </svg>
      </div>

      <div className="p-6 bg-white dark:bg-[#1a1d27]">
        <h3 className="text-base font-semibold text-gray-900 dark:text-gray-100 mb-2">Championship Analysis</h3>

        <p className="text-sm text-gray-600 dark:text-gray-400 mb-4">
          Track driver and constructor standings, analyze season trends, and create championship visualizations
        </p>

        <div className="flex items-center text-sm text-[#e35229] group-hover:text-[#c44621] dark:group-hover:text-[#e35229]">
          View example

          <svg className="w-4 h-4 ml-1" fill="none" stroke="currentColor" viewBox="0 0 24 24">
            <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M9 5l7 7-7 7" />
          </svg>
        </div>
      </div>
    </a>
  </div>
</div>

<div className="mt-16 mb-16 max-w-5xl mx-auto px-6">
  <div className="rounded-2xl border border-gray-200 dark:border-[#27272a] bg-gradient-to-br from-white to-gray-50 dark:from-[#1a1d27] dark:to-[#242838] p-12 text-center">
    <h2 className="text-3xl font-bold text-gray-900 dark:text-white mb-4">Ready to get started?</h2>

    <p className="text-lg text-gray-600 dark:text-gray-400 mb-8 max-w-2xl mx-auto">
      Install FastF1 and start analyzing Formula 1 data in minutes. Join thousands of data scientists and F1 enthusiasts using FastF1 for race analysis.
    </p>

    <div className="flex flex-wrap gap-4 justify-center">
      <a href="/quickstart" className="inline-flex items-center px-6 py-3 rounded-lg bg-[#e35229] text-white font-semibold hover:bg-[#c44621] transition-colors">
        Get Started
      </a>

      <a href="https://github.com/theOehrly/Fast-F1" className="inline-flex items-center px-6 py-3 rounded-lg border-2 border-gray-300 dark:border-[#27272a] bg-white dark:bg-[#1a1d27] text-gray-900 dark:text-white font-semibold hover:border-[#e35229] dark:hover:border-[#e35229] transition-colors">
        View on GitHub
      </a>
    </div>
  </div>
</div>
