Skip to content

Services Overview

The iRacing Data Client SDK organizes its functionality into 15 service classes, each providing access to specific areas of the iRacing Data API. This page provides a complete overview of all available services and their capabilities.

Each service follows a consistent pattern:

const iracing = new IRacingDataClient(options);
// Access services as properties
const memberInfo = await iracing.member.info();
const carData = await iracing.car.get();
const trackAssets = await iracing.track.assets();

Car Service

iracing.car

Vehicle information and assets

  • assets() - Car images and paint schemes
  • get() - Complete car database

View Documentation →

Car Class Service

iracing.carclass

Car classification data

  • get() - All car classes and groupings

View Documentation →

Constants Service

iracing.constants

System constants and lookups

  • categories() - Competition categories
  • divisions() - License divisions
  • eventTypes() - Session event types

View Documentation →

Driver Stats Service

iracing.driverStatsByCategory

Category-specific driver statistics

  • oval() - Oval racing stats
  • road() - Road racing stats
  • dirtOval() - Dirt oval stats
  • dirtRoad() - Dirt road stats
  • sportsCar() - Sports car stats
  • formulaCar() - Formula car stats

View Documentation →

Hosted Service

iracing.hosted

Hosted and private sessions

  • combinedSessions() - All session types
  • sessions() - Hosted sessions only

View Documentation →

League Service

iracing.league

League management and data

  • directory() - Search leagues
  • get() - League details
  • membership() - Member status
  • roster() - League members
  • seasons() - League seasons
  • seasonStandings() - Points standings
  • seasonSessions() - Race sessions
  • getPointsSystems() - Scoring systems
  • custLeagueSessions() - Customer’s league sessions

View Documentation →

Lookup Service

iracing.lookup

Reference data lookups

  • countries() - Country list
  • drivers() - Driver search
  • flairs() - Profile flairs
  • get() - General lookups
  • licenses() - License levels

View Documentation →

Member Service

iracing.member

Member profiles and data

  • info() - Current member info
  • get() - Member by ID
  • profile() - Public profile
  • awards() - Achievement awards
  • awardInstances() - Earned awards
  • chartData() - Performance charts
  • participationCredits() - Credit balance

View Documentation →

Results Service

iracing.results

Race results and data

  • get() - Session results
  • searchSeries() - Series results search
  • searchHosted() - Hosted results search
  • seasonResults() - Full season results
  • eventLog() - Race events
  • lapData() - Lap-by-lap data
  • lapChartData() - Lap charts

View Documentation →

Season Service

iracing.season

Season scheduling and info

  • list() - All seasons
  • raceGuide() - Upcoming races
  • spectatorSubsessionids() - Spectator sessions
  • spectatorSubsessionidsDetail() - Spectator details

View Documentation →

Series Service

iracing.series

Series information

  • get() - All series
  • assets() - Series images
  • pastSeasons() - Historical seasons
  • seasons() - Current seasons
  • seasonList() - Season list
  • seasonSchedule() - Race schedule
  • statsSeries() - Series statistics

View Documentation →

Stats Service

iracing.stats

Statistics and standings

  • memberBests() - Personal records
  • memberCareer() - Career stats
  • memberDivision() - Division stats
  • memberRecap() - Season recap
  • memberRecentRaces() - Recent results
  • memberSummary() - Quick summary
  • memberYearly() - Annual stats
  • seasonDriverStandings() - Driver points
  • seasonTeamStandings() - Team points
  • seasonSupersessionStandings() - Supersession standings
  • seasonTtStandings() - Time trial standings
  • seasonTtResults() - Time trial results
  • seasonQualifyResults() - Qualifying results
  • worldRecords() - Track records

View Documentation →

Team Service

iracing.team

Team management

  • get() - Team information
  • membership() - Team members

View Documentation →

Time Attack Service

iracing.timeAttack

Time attack competitions

  • memberSeasonResults() - Season results

View Documentation →

Track Service

iracing.track

Track information

  • assets() - Track maps and images
  • get() - Track database

View Documentation →

Services can be grouped by their primary function:

Services that provide static content and asset information:

  • Car Service - Vehicle specifications and images
  • Track Service - Circuit layouts and track maps
  • Series Service - Series logos and branding
  • Constants Service - System lookups and references

Many methods require no parameters:

// Get all cars
const cars = await iracing.car.get();
// Get member info for authenticated user
const info = await iracing.member.info();
// Get all track assets
const tracks = await iracing.track.assets();

Some methods require specific parameters:

// Get specific members by ID
const members = await iracing.member.get({
custIds: [123456, 789012]
});
// Search for league
const leagues = await iracing.league.directory({
search: 'League Name',
active: true
});
// Get season standings
const standings = await iracing.stats.seasonDriverStandings({
seasonId: 3456,
carClassId: 789
});

Many methods support optional filtering:

// Basic call
const results = await iracing.results.searchSeries({
seasonId: 3456
});
// With optional filters
const filteredResults = await iracing.results.searchSeries({
seasonId: 3456,
raceWeekNum: 5,
official: true,
eventType: 5
});

All service methods return fully typed responses:

// TypeScript knows the exact shape
const cars = await iracing.car.get();
// cars is typed as CarGetResponse[]
cars.forEach(car => {
console.log(car.carName); // ✅ TypeScript knows this exists
console.log(car.carWeight); // ✅ Valid property
console.log(car.wrongProp); // ❌ TypeScript error
});

All services use consistent error handling:

try {
const data = await iracing.member.info();
} catch (error) {
if (error instanceof IRacingError) {
// Handle specific error types
if (error.isMaintenanceMode) {
console.log('Service is in maintenance');
} else if (error.isRateLimited) {
console.log('Rate limit exceeded');
} else if (error.isUnauthorized) {
console.log('Authentication required');
}
}
}

Cache Data

Response caching is coming in a future release. For now, see the Caching guide for strategies you can implement yourself.

Batch Requests

When fetching multiple members or results, use batch parameters to reduce API calls.

Respect Rate Limits

Avoid rapid successive calls. The API has rate limiting to prevent abuse.

Filter Early

Use available parameters to filter data at the API level rather than client-side.

ServiceMethodsPrimary Use
car2Vehicle data and assets
carclass1Car classifications
constants3System constants
driverStatsByCategory6Category statistics
hosted2Hosted sessions
league9League management
lookup5Reference lookups
member7Member profiles
results7Race results
season4Season schedules
series7Series information
stats15Performance statistics
team2Team management
timeAttack1Time trials
track2Track information