A monorepo of TypeScript packages for working with the iRacing /data API and telemetry services. Packages cover generated clients, validation schemas, event emitters, telemetry consumers, and helper CLIs.
- @iracing-data/api-schema – Zod schemas for
/dataendpoints. - @iracing-data/api-schema-to-openapi – Generate OpenAPI docs from the schemas.
- @iracing-data/api-client-fetch – Fetch-based API client.
- @iracing-data/api-client-axios – Axios-based API client.
- @iracing-data/api-router – Better Call router bundling generated routes.
- @iracing-data/oauth-schema – OAuth request/response Zod schemas.
- @iracing-data/oauth-schema-to-openapi – OpenAPI generation from OAuth schemas.
- @iracing-data/oauth-client – OAuth client implementation.
- @iracing-data/telemetry-types – Generated telemetry TypeScript types.
- @iracing-data/telemetry-client-grpc-node – Node gRPC telemetry client.
- @iracing-data/telemetry-client-grpc-web – Browser gRPC-Web telemetry client.
- @iracing-data/telemetry-client-ws – WebSocket telemetry client.
- @iracing-data/telemetry-client-http – Axios HTTP telemetry client.
- @iracing-data/session-state-events
- @iracing-data/track-location-events
- @iracing-data/car-track-location-events
- @iracing-data/pit-lane-events
- @iracing-data/session-flag-events
- @iracing-data/car-session-flag-events
- @iracing-data/pace-flag-events
- @iracing-data/pace-order-events
- @iracing-data/player-pit-stop-events
- @iracing-data/driver-swap-events
- @iracing-data/helpers/sync-car-assets
- @iracing-data/helpers/sync-track-assets
- @iracing-data/helpers/sync-telemetry-json-schema
- @iracing-data/helpers/iracing-json-schema-to-typescript
- race-events – Example CLI that logs race events from telemetry.
- @iracing-data/sync-car-assets-cli – Download car assets via CLI.
- @iracing-data/sync-track-assets-cli – Download track assets via CLI.
- iracing-data-api-client – Generated Rust client for the iRacing
/dataAPI. Usecargo get-member --access-token "$IRACING_ACCESS_TOKEN" --customer-ids 378767 --include-licensesto run the member lookup example.
This repo uses pnpm for dependency management:
pnpm installUse pnpm --filter <package> to run scripts for a specific workspace package or app. See each linked README for package-specific instructions.
Published packages live under the @iracing-data scope on npm. Releases are automated via GitHub Actions and driven by a git tag. See docs/RELEASING.md for step-by-step instructions.