Map Sportradar basketball statlines into @buzzr/dfs-engine without bending the engine to a vendor format. You bring the Sportradar fetch (auth, rate limits, caching); this package converts Sportradar's snake_case numeric statline shape (three_points_made, scheduled, …) into the engine's canonical PlayerGameLogEntryShape and registers it all as a typed StatProvider.
This package does no network I/O itself. The loader you provide is the only code that touches Sportradar.
npm install @buzzr/dfs-provider-sportradar @buzzr/dfs-engine
import { createDfsEngine } from '@buzzr/dfs-engine';
import { createSportradarStatProvider } from '@buzzr/dfs-provider-sportradar';
const sportradar = createSportradarStatProvider({
getGameLog: async ({ playerId, gameDate }) => {
// Your fetch. Return Sportradar-shaped statlines as-is:
return fetchSportradarBoxscore(playerId, gameDate);
// [{ scheduled, minutes, points, rebounds, assists, three_points_made, ... }]
},
});
const engine = createDfsEngine({ statProviders: [sportradar] });
const result = await engine.settleEntry(entry, { statProviderId: 'sportradar' });
Rows are converted with sportradarRowToGameLog before they reach the engine, and the engine still validates them at the provider boundary — malformed data surfaces as invalid_provider_data instead of a silent mis-grade.
| Export | Purpose |
|---|---|
createSportradarStatProvider() |
Build a StatProvider (id 'sportradar' by default) from your statline loader |
sportradarRowToGameLog() |
Convert one SportradarBasketballStatLine into a PlayerGameLogEntryShape |
SportradarBasketballStatLine |
Type: Sportradar's basketball statline shape (snake_case, numeric fields) |
SportradarStatProviderOptions |
Type: { id?, getGameLog } options bag |
SportradarGameLogLoaderInput |
Type: unpacked leg context handed to your loader (player, game, entry, leg) |
| You want to… | Reach for |
|---|---|
| Feed Sportradar stats into the engine | this package |
| Feed ESPN-shaped stats into the engine | @buzzr/dfs-provider-espn |
| A deterministic provider for tests | @buzzr/dfs-testkit |
| A custom provider for any other data source | defineStatProvider in @buzzr/dfs-engine |
Node.js >= 22 is supported. Import the supported API from @buzzr/dfs-provider-sportradar.
Deep src/* and dist/* imports are unsupported. This package adapts a
consumer-owned loader; it does not include a Sportradar client, credentials, or
network transport.
Report vulnerabilities privately through SECURITY.md. The versioning and support policy defines the supported runtime and SemVer contract.