How to Use
1. Start the Proxy Server
export F1_API_TOKEN="your_api_key_here"
node server.js
2. Add Widget to Your Page
<div id ="f1-standings" ></div >
<link rel ="stylesheet" href ="https://f1.apidata.tech/f1-widgets.css" >
<script src ="https://f1.apidata.tech/f1-widgets.js" ></script >
<script >
(async () => {
await F1Widgets.init ({ proxyUrl : 'https://f1.apidata.tech/api' });
F1Widgets.renderCalendar ('f1-standings' );
})();
</script >
Lazy Loading
Alle widgets ondersteunen lazy loading. Hiermee laadt de widget pas als deze bijna in beeld komt (300px van tevoren). Dit bespaart API calls voor bezoekers die niet scrollen.
F1Widgets.renderStandings ('sidebar-standings' , { lazy : true });
F1Widgets.renderCalendar ('sidebar-calendar' , { lazy : true });
F1Widgets.renderDriverStandings ('container-id' , {
lazy : true ,
driverLink : '/f1-coureurs/{slug}'
});
Available Widgets
renderDriverStandings
Driver championship standings with photos, flags, and points.
F1Widgets.renderDriverStandings ('container-id' );
F1Widgets.renderDriverStandings ('container-id' , { limit : 10 });
F1Widgets.renderDriverStandings ('container-id' , { seasonId : 26877 });
F1Widgets.renderDriverStandings ('container-id' , {
driverLink : '/f1-coureurs/{slug}'
});
renderConstructorStandings
Constructor championship standings with team logos and colors.
F1Widgets.renderConstructorStandings ('container-id' );
F1Widgets.renderConstructorStandings ('container-id' , { seasonId : 26877 });
F1Widgets.renderConstructorStandings ('container-id' , {
teamLink : '/f1-teams/{slug}'
});
renderCalendar
Race kalender met Nederlandse namen, klikbare links en uitklapbare top 3.
F1Widgets.renderCalendar ('container-id' );
F1Widgets.renderCalendar ('container-id' , { seasonId : 26877 });
F1Widgets.renderCalendar ('container-id' , { compact : true });
F1Widgets.renderCalendar ('container-id' , {
raceLink : '/f1-circuits/{slug}'
});
F1Widgets.renderCalendar ('container-id' , { dutch : false });
renderCountdown
Live countdown to the next race with session schedule. Toont Nederlandse GP namen.
F1Widgets.renderCountdown ('container-id' );
F1Widgets.renderCountdown ('container-id' , { seasonId : 26877 });
F1Widgets.renderCountdown ('container-id' , {
raceLink : '/f1-circuits/{slug}' ,
sessionLink : '/f1-sessies/{slug}'
});
F1Widgets.renderCountdown ('container-id' , {
raceLink : '/f1-circuits/{slug}' ,
sessionLinks : {
'Race' : '/f1-races/race-gp-australie-2026' ,
'Kwalificatie' : '/f1-kwalificatie/kwalificatie-gp-australie-2026' ,
'VT1' : '/f1-trainingen/vt1-gp-australie-2026'
}
});
renderRaceWeekend
Race weekend schedule with session times. Toont Nederlandse GP namen.
F1Widgets.renderRaceWeekend ('container-id' );
F1Widgets.renderRaceWeekend ('container-id' , { stageId : 77480033 });
F1Widgets.renderRaceWeekend ('container-id' , {
raceLink : '/f1-circuits/{slug}' ,
sessionLink : '/f1-sessies/{slug}'
});
F1Widgets.renderRaceWeekend ('container-id' , {
raceLink : '/f1-circuits/{slug}' ,
sessionLinks : { 'Race' : '/custom-url' , 'Kwalificatie' : '/andere-url' }
});
renderRacePage
Uitgebreide race pagina met circuit info, schema en stats. Toont Nederlandse GP namen.
F1Widgets.renderRacePage ('container-id' );
F1Widgets.renderRacePage ('container-id' , { stageId : 77480033 });
F1Widgets.renderRacePage ('container-id' , {
raceLink : '/f1-circuits/{slug}' ,
sessionLink : '/f1-sessies/{slug}'
});
F1Widgets.renderRacePage ('container-id' , {
raceLink : '/f1-circuits/{slug}' ,
sessionLinks : { 'Race' : '/custom-url' , 'Kwalificatie' : '/andere-url' }
});
renderRaceResults
Sessie resultaten met tabs voor VT1-3, Kwalificatie, Sprint en Race.
F1Widgets.renderRaceResults ('container-id' );
F1Widgets.renderRaceResults ('container-id' , { seasonId : 26877 });
F1Widgets.renderRaceResults ('container-id' , { stageId : 77480033 });
F1Widgets.renderRaceResults ('container-id' , { session : 'Qualification' });
Beschikbare sessienamen voor session:
Practice 1
Practice 2
Practice 3
Sprint Qualification
Sprint Race
Qualification
Race
renderStandings
Compact klassement met Coureurs/Teams tabs. Toont altijd het huidige seizoen.
F1Widgets.renderStandings ('container-id' );
F1Widgets.renderStandings ('container-id' , { limit : 5 });
F1Widgets.renderStandings ('container-id' , { limit : 10 });
F1Widgets.renderStandings ('container-id' , { compact : true , moreLink : '/f1-stand' });
renderDriverCards
Individual driver cards with stats.
F1Widgets.renderDriverCards ('container-id' );
F1Widgets.renderDriverCards ('container-id' , { limit : 6 });
F1Widgets.renderDriverCards ('container-id' , { seasonId : 26877 });
F1Widgets.renderDriverCards ('container-id' , { driverId : 171429 });
F1Widgets.renderDriverCards ('container-id' , { driverIds : [171429 , 171424 ] });
F1Widgets.renderDriverCards ('container-id' , {
driverId : 171429 ,
driverLink : '/f1-coureurs/{slug}'
});
renderTeamCards
Team cards with logos and standings.
F1Widgets.renderTeamCards ('container-id' );
F1Widgets.renderTeamCards ('container-id' , { seasonId : 26877 });
F1Widgets.renderTeamCards ('container-id' , { teamId : 214851 });
F1Widgets.renderTeamCards ('container-id' , { teamIds : [214851 , 214850 ] });
F1Widgets.renderTeamCards ('container-id' , {
teamId : 214851 ,
teamLink : '/f1-teams/{slug}'
});
renderDriversOverview
Clickable grid of all drivers grouped by team (constructor standings order).
F1Widgets.renderDriversOverview ('container-id' );
F1Widgets.renderDriversOverview ('container-id' , { seasonId : 26877 });
F1Widgets.renderDriversOverview ('container-id' , {
driverLink : '/f1-coureurs/{slug}'
});
renderTeamsOverview
Clickable grid of all teams with positions, points and drivers. Max 2 per rij, witte achtergrond.
F1Widgets.renderTeamsOverview ('container-id' );
F1Widgets.renderTeamsOverview ('container-id' , { seasonId : 26877 });
F1Widgets.renderTeamsOverview ('container-id' , {
teamLink : '/f1-teams/{slug}'
});
renderRacesOverview
Grid met alle races, circuit afbeeldingen en datums.
F1Widgets.renderRacesOverview ('container-id' );
F1Widgets.renderRacesOverview ('container-id' , { seasonId : 26877 });
F1Widgets.renderRacesOverview ('container-id' , { limit : 8 });
F1Widgets.renderRacesOverview ('container-id' , { raceId : 77480033 });
F1Widgets.renderRacesOverview ('container-id' , { raceIds : [77480033 , 77480034 ] });
F1Widgets.renderRacesOverview ('container-id' , {
raceLink : '/f1-races/{slug}'
});
renderCircuit
Circuit information with stats. Requires venueId.
F1Widgets.renderCircuit ('container-id' , { venueId : 343586 });
F1Widgets.renderCircuit ('container-id' , { venueId : 343587 });
renderLiveRace
Live race posities tijdens een race. Ververst automatisch. Toont banden, pitstops en gaps.
F1Widgets.renderLiveRace ('container-id' );
F1Widgets.renderLiveRace ('container-id' , { refreshInterval : 5000 });
F1Widgets.renderLiveRace ('container-id' , { demo : true });
ID Lookup
Zoek hier de IDs op die je nodig hebt voor de widgets.
Season IDs
2026 (huidig)
26733
2025
25273
2024
26877
2023
26876
2022
26875
2021
26874
Stage IDs (voor renderRaceWeekend)
2026
2025
2024
2023
Zoek Races
Venue IDs (voor renderCircuit)
Zoek