26 open-source packages · R · Python · Node.js · 8 leagues in the warehouse · 120M+ rows of play-by-play · EPA · win probability · ratings models · free and open since 2021

Tidy rows with parsed true

Tidy rows with parsed true

Skip the nested ESPN JSON — get flat, snake_cased row objects from any endpoint.

Every wrapper returns the raw ESPN payload by default. Pass { parsed: true } to run it through a registered parser and get a tidy array of flat, snake_cased row objects — the JavaScript analog of a tidy data frame.

parsed.mjs

import sdv from "sportsdataverse";
 
const raw  = await sdv.nba.espnNbaScoreboard({});                // raw ESPN JSON
const rows = await sdv.nba.espnNbaScoreboard({ parsed: true });  // tidy row objects
 
// The summary endpoint is a dispatcher — omit `section` for all
// sub-frames, or request just one:
const box = await sdv.nba.espnNbaSummary({
  event_id: 401584793,
  parsed: true,
  section: "boxscore_player",
});

Tidy rows drop straight into console.table, a DataFrame library, or a database insert — no flattening code of your own.

Full docs: js.sportsdataverse.org