Discover/letour API
live

letour APIracecenter.letour.fr

Access live Tour de France rider positions, stage details, and general classification standings via the Race Center API. 3 endpoints, real-time GPS group data.

This API takes change requests — .
Endpoint health
verified 23h ago
get_live_positions
get_stage_info
get_general_classification
3/3 passing latest checkself-healing
Endpoints
3
Updated
28d ago

What is the letour API?

The Race Center API provides 3 endpoints for Tour de France data: live rider group positions with GPS coordinates and time gaps, per-stage route and timing details via get_stage_info, and overall general classification standings after each stage. All 21 stages of the current edition are covered, and position data updates every few seconds during active racing.

This call costs1 credit / call— charged only on success
Try it
Stage number (1-21). Omit to retrieve all stages.
api.parse.bot/scraper/0984e08b-bfe8-4fd6-b955-866c5133a406/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/0984e08b-bfe8-4fd6-b955-866c5133a406/get_stage_info?stage_number=10' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace racecenter-letour-fr-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: Tour de France Race Center SDK — bounded, re-runnable; every call capped."""
from parse_apis.racecenter_letour_fr_api import TourDeFrance, StageNotFound

client = TourDeFrance()

# List all stages in the current Tour edition
for stage in client.stages.list(limit=3):
    print(stage.stage_number, stage.departure_city, "→", stage.arrival_city, stage.length_km, "km")

# Get live positions for the current stage (stage 10)
current = client.stage(10)
for group in current.live_positions(limit=3):
    print(group.name, f"gap={group.gap_seconds}s", f"speed={group.speed_kmh}km/h")
    for rider in group.riders[:2]:
        print(f"  bib {rider.bib}: {rider.firstname} {rider.lastname} ({rider.nationality})")

# Get general classification after stage 9
try:
    gc = client.stage(9).classification()
    print(gc.classification_type, f"({len(gc.rankings)} riders)")
    for entry in gc.rankings[:3]:
        print(f"  #{entry.position} {entry.firstname} {entry.lastname} gap={entry.gap_seconds}s")
except StageNotFound as e:
    print(f"Stage not found: {e.stage_number}")

print("exercised: stages.list / stage.live_positions / stage.classification")
All endpoints · 3 totalmissing one? ·

Returns stage details for the current Tour de France edition. When stage_number is supplied, returns that single stage; when omitted, returns all 21 stages. Each stage includes route (departure/arrival cities), distance, scheduled times, type code, and cancellation status.

Input
ParamTypeDescription
stage_numberintegerStage number (1-21). Omit to retrieve all stages.
Response
{
  "type": "object",
  "fields": {
    "stages": "array of stage objects with route, timing, and type details"
  },
  "sample": {
    "stages": [
      {
        "date": "2026-07-14T00:00:00+02:00",
        "type": "HMG",
        "end_time": "17:14:00",
        "timezone": "Europe/Paris",
        "length_km": 166.6,
        "start_time": "13:15:00",
        "arrival_city": "Le Lioran",
        "is_cancelled": false,
        "stage_number": 10,
        "departure_city": "Aurillac"
      }
    ]
  }
}

About the letour API

Stage Information

get_stage_info returns route and logistics data for Tour de France stages. Supply a stage_number (1–21) to retrieve a single stage, or omit it to get all 21 stages at once. Each stage object includes departure and arrival cities, total distance, scheduled start and finish times, a type code (e.g. flat, mountain, time trial), and a cancellation status flag. This endpoint is useful for building stage schedules or pre-race display layers.

Live Rider Positions

get_live_positions accepts a required stage_number and returns the current state of the race as an array of rider groups. Each group carries GPS coordinates, current speed, distance remaining to the finish, time gap to the leader, jersey indicators (e.g. yellow, polka dot), and the list of riders within that group. The response also includes an ISO 8601 timestamp so clients can detect stale data. Outside of active racing the groups array is empty.

General Classification

get_general_classification returns the GC standings as they stand after a specified stage. Each entry in the rankings array includes the rider's position, cumulative race time, and gap to the overall leader, plus any bonuses or penalties applied. The classification_type field identifies the ranking category returned. Data is available once timing for the requested stage has been published, so it reflects both intermediate and final results.

Reliability & maintenanceVerified

The letour API is a managed, monitored endpoint for racecenter.letour.fr — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when racecenter.letour.fr changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official racecenter.letour.fr API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
23h ago
Latest check
3/3 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Display a live race tracker map by plotting GPS coordinates from get_live_positions rider groups.
  • Show time gaps between breakaway groups and the peloton during a stage using the gap field.
  • Build a stage-by-stage schedule page using departure/arrival cities and distances from get_stage_info.
  • Alert fans when the yellow jersey changes group using jersey indicator fields in live position data.
  • Render a GC leaderboard that updates after each stage finishes using get_general_classification.
  • Filter upcoming mountain stages by type code from get_stage_info to focus on climbing data.
  • Track cumulative time differences between top GC contenders across multiple stages.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does letour.fr offer an official public developer API?+
Letour.fr does not publish a documented public developer API. The Race Center at racecenter.letour.fr provides a race-viewing interface for fans, but no official API credentials or documentation are offered to third-party developers.
What does `get_live_positions` return when no stage is actively racing?+
When a stage is not in progress, the groups array in the response is empty. The timestamp field is still present, so you can check response freshness. Live group data including GPS coordinates, speed, and time gaps only populates during active stage racing.
Does the API cover classifications other than the general classification, such as the points or mountains jersey standings?+
Not currently. The API exposes the overall GC standings via get_general_classification, which returns a classification_type field, but dedicated endpoints for the points classification (green jersey) or mountains classification (polka dot jersey) are not included. You can fork this API on Parse and revise it to add endpoints targeting those specific classification types.
How current is the general classification data after a stage finishes?+
The get_general_classification endpoint notes that data is available once intermediate or final timing for the requested stage has been published. There may be a delay between a stage finishing and official timing being released, particularly if protests or time penalties are under review.
Does the API cover historical Tour de France editions, or only the current year?+
The API covers the current Tour de France edition. Historical stage results, past GC standings, or multi-year rider statistics are not exposed by any of the three endpoints. You can fork this API on Parse and revise it to point at archived edition data if that becomes available from the source.
Page content last updated . Spec covers 3 endpoints from racecenter.letour.fr.
Related APIs in SportsSee all →
cyclocross24.com API
Track cyclocross races and riders with access to current race calendars, detailed results, athlete profiles, and UCI rankings all in one place. Search for specific riders, monitor live standings, and stay updated on competitive rankings throughout the season.
procyclingstats.com API
Access comprehensive professional cycling data including race results, team rosters, and rider victory rankings to analyze performance and track statistics across the sport. Build cycling applications that deliver real-time insights into races, teams, and top-performing athletes.
f1.com API
Track driver and constructor standings, view detailed race results and schedules, and explore driver profiles and awards from across Formula 1 history. Stay updated with comprehensive F1 season data including current standings, past race outcomes, and upcoming event schedules.
pgatour.com API
Track PGA Tour tournaments with live leaderboards, player scorecards, and detailed shot-by-shot data, while monitoring player standings and the FedExCup race. Access complete tournament schedules and player statistics to stay updated on professional golf competitions.
formula1.com API
Get comprehensive Formula 1 data including race results, qualifying sessions, practice sessions, pit stops, and driver/team standings from 1950 to present. Track live race schedules, fastest laps, starting grids, and historical world champions to stay updated on all F1 season information.
attheraces.com API
Access comprehensive horse racing intelligence from At The Races, including detailed racecards, draw statistics, pace analysis, and form scan data to inform your betting decisions. Get all the performance metrics and positional data you need to analyze races and horses in one place.
ergast.com API
Access comprehensive Formula 1 historical data dating back to 1950, including race results, driver and constructor standings, qualifying times, lap records, and pit stop information. Track driver and constructor performance across seasons, explore circuit details, and analyze standings to dive deep into F1 history.
driverdb.com API
Access driver performance data, detailed career statistics, and race results across all major motorsports series. Retrieve championship standings, team information, and head-to-head driver comparisons, and browse comprehensive profiles, race calendars, and circuit details.