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(`Season: ${results.seasonName}`); console.log(`Track: ${results.track.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( seriesId: number, seasonYear: number, seasonQuarter: number, weekNum?: number) { const results = await iracing.results.searchSeries({ seriesId, seasonYear, seasonQuarter, raceWeekNum: weekNum, officialOnly: true });
return { rows: results.data.chunkInfo.rows, chunkFiles: results.data.chunkInfo.chunkFileNames, baseDownloadUrl: results.data.chunkInfo.baseDownloadUrl, };}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