Race Results
Race Results
Section titled “Race Results”Examples for working with race results and session data.
Fetching Session Results
Section titled “Fetching Session Results”Get Results by Session ID
Section titled “Get Results by Session ID”import { IRacingDataClient } from 'iracing-data-client';
const iracing = new IRacingDataClient({ auth: { type: 'password-limited', clientId: process.env.IRACING_CLIENT_ID!, clientSecret: process.env.IRACING_CLIENT_SECRET!, username: process.env.IRACING_USERNAME!, password: process.env.IRACING_PASSWORD!, },});
async function getSessionResults(subsessionId: number) { const results = await iracing.results.get({ subsessionId });
console.log(`Session: ${results.sessionName}`); console.log(`Track: ${results.trackName}`); console.log(`Series: ${results.seriesName}`);
// Process each session (practice, qualify, race) results.sessionResults.forEach(session => { console.log(`\n${session.simsessionTypeName}:`);
session.results.forEach(result => { console.log(` P${result.finishPosition}: ${result.displayName}`); console.log(` Laps: ${result.lapsComplete}`); console.log(` Incidents: ${result.incidents}`); }); });
return results;}Search Series Results
Section titled “Search Series Results”async function searchSeriesResults(seasonId: number, weekNum?: number) { const results = await iracing.results.searchSeries({ seasonId, raceWeekNum: weekNum, official: true });
return results.map(session => ({ sessionId: session.subsessionId, startTime: session.startTime, trackName: session.trackName, strengthOfField: session.strengthOfField, winnerName: session.winnerName, winnerTime: session.winnerLapsComplete }));}Analyzing Lap Data
Section titled “Analyzing Lap Data”Get Lap Times
Section titled “Get Lap Times”async function getLapData(subsessionId: number, custId?: number) { const lapData = await iracing.results.lapData({ subsessionId, simsessionNumber: 0, // 0 = Race session custId // Optional: filter by driver });
// Analyze lap times const laps = lapData.lapData; const fastestLap = Math.min(...laps.map(l => l.lapTime)); const averageLap = laps.reduce((sum, l) => sum + l.lapTime, 0) / laps.length;
console.log(`Total laps: ${laps.length}`); console.log(`Fastest lap: ${(fastestLap / 10000).toFixed(3)}s`); console.log(`Average lap: ${(averageLap / 10000).toFixed(3)}s`);
return { laps, fastestLap, averageLap };}See Also
Section titled “See Also”- Results Service - Full API reference for results
- Season Standings - Championship standings examples
- Member Data - Member profile examples