SportiveWorldSportiveWorld
← Professional & Media

API & data

Our own rankings and indices served by key, and NBA rankings as CSV by agreement. Every response declares its licence, its quota and its source. There is no self-service sign-up: each key is granted one by one.

What you can get

5 datasets by key. Each one wraps the same calculation the website already serves: a single source of truth.

  1. NBA power rankings

    GET/api/v1/power-rankings

    Parameters · ?year=

    All 30 teams ranked by our own model (margin, form, win %, run), with the reason behind each place and the move against the previous snapshot.

    Coverage · NBA · one season per call (year = starting year; 2025 = 2025-26) · computed on our regular-season box scores.

    Freshness · Recomputed from the ingested box scores (in season: daily); the response is cached for 1 hour and declares last_game.

    Call · /api/v1/power-rankings?year=2025

  2. League exchange rate

    GET/api/v1/cambio

    Parameters · ?de= ?a=

    What a player's production is worth when switching competitions: factor, sample and range per stat (points, rebounds, assists, minutes), from players who actually made that move.

    Coverage · NBA · Liga Endesa · EuroLiga · EuroCup · NCAA · G League · only moves made by at least 12 players are published (15 games and 8 minutes per game in each season).

    Freshness · Factors recomputed in batch over completed seasons (not real time); the response is cached for 1 hour.

    Call · /api/v1/cambio?de=acb&a=nba

  3. Player on/off

    GET/api/v1/onoff

    Parameters · ?id=

    The team's net rating with the player on the floor and without him, with the minutes on each side, computed from the real lineups of his latest season with data.

    Coverage · NBA · one player per call (id = the SportiveWorld player id, the one in his profile) · regular season.

    Freshness · Computed on every call from the ingested lineups; no cache.

    Call · /api/v1/onoff?id=<id-de-jugador>

  4. WNBA leaders

    GET/api/v1/wnba-leaders

    Parameters · ?season=

    A season's leaders in points, rebounds and assists per game (with games played and team) and, separately, the Spanish players.

    Coverage · WNBA · one season per call (season = year) · over the played games in our box scores.

    Freshness · Box scores ingested by our cron during the season; the response is cached for 1 hour.

    Call · /api/v1/wnba-leaders?season=2026

  5. G League leaders

    GET/api/v1/gleague-leaders

    Parameters · ?season=

    A NBA G League season's leaders in points, rebounds and assists per game and, separately, the Spanish players.

    Coverage · NBA G League · one season per call (season = year) · over the played games in our box scores.

    Freshness · Box scores ingested by our cron during the season; the response is cached for 1 hour.

    Call · /api/v1/gleague-leaders?season=2025

CSV export

4 sets of historical NBA rankings (all-time scorers, most points in a game, best scoring averages, most threes in a season) as CSV. They do not download on their own: they are enabled by agreement or professional licence, account by account. The page says what is inside.

See the exportable sets

Real example

This is how you ask and how it answers. The envelope is always the same: dataset, source, licence, quota used and the data.

Request

curl -H "Authorization: Bearer TU_CLAVE" \
  https://www.sportiveworld.com/api/v1/power-rankings?year=2025

Response

{
  "dataset": "power-rankings",
  "source": "SportiveWorld",
  "license": "Datos de SportiveWorld. Uso bajo licencia; cita la fuente. Rankings e índices son cálculo propio.",
  "quota": { "used": 1, "limit": 1000, "plan": "media" },
  "data": {
    "season": { "year": 2025, "label": "2025-26", "live": false, "compared_to": "2024-25", "last_game": "2026-04-12" },
    "method": "closed",
    "teams": [
      { "rank": 1, "prev_rank": 1, "move": 0, "abbr": "OKC", "name": "Thunder", "conference": "West",
        "wins": 64, "losses": 18, "win_pct": 0.78, "mov": 11.2, "net": 11.1, "off": 117.6, "def": 106.5,
        "score": 1.762, "why": [{ "k": "pr_mov", "v": "+11.2" }, { "k": "pr_def", "v": "1" }] },
      "… 29 equipos más"
    ]
  }
}

Trimmed response; the "data" body is what production served on 2026-09-19. Live data is obtained with the key.

Authentication

The key travels in one of these three ways. Without a valid key no data is served: when in doubt, the API closes.

  • Header Authorization: Bearer YOUR_KEY
  • Header X-Api-Key: YOUR_KEY
  • Parameter ?key=YOUR_KEY
  • 200Data + quota (used, limit, plan) and X-RateLimit-Limit / X-RateLimit-Remaining headers.
  • 401Missing key. The response says where to request one.
  • 403Invalid or revoked key.
  • 404Unknown dataset; the response lists the existing ones.
  • 429Daily limit reached; come back tomorrow or ask for more.
  • 502The data origin did not answer: no half data is served.

The catalogue (GET /api/v1) is public and does not spend the key.

Entitlement

  • Every key has an owner, a plan and a daily limit, set when it is granted. There are no plans purchased on the website: there is no self-service sign-up.
  • One key serves every dataset in the catalogue. It can be revoked; a revoked key gets 403.
  • The licence travels in every response: use under licence, cite the source, and rankings and indices are our own calculation.
  • Volume, custom crosses and a club's own data are agreed in writing; they are not a plan.

Limits

  • Daily quota per key: 1,000 successful calls a day by default (UTC day); set per key and expandable.
  • Every successful call consumes one unit of the quota and returns the remaining quota in the header and in the envelope.
  • Denied calls carrying a key (403, 429) are logged with their code: there is telemetry of attempts, not only of hits.
  • Data responses are not cached server-side (no-store); the public catalogue is (1 hour).

What is not covered

We say it before you ask.

  • No self-service sign-up and no public trial key: every key is granted by hand.
  • No raw play-by-play, tracking, Scout or the Broadcast feed through this API.
  • No live data: the datasets are computed on ingested box scores and carry their declared cache.
  • No competition beyond the ones declared per dataset (NBA, WNBA, G League and the six leagues of the exchange rate).
  • CSV export does not open with any app plan: only by agreement, account by account.

How to get access

Write to us and we answer by email, no call required. Tell us:

  • who you are (media, club, agency, developer);
  • which datasets you want and the approximate volume;
  • what for (publication, internal analysis, integration).

Requesting commits you to nothing. If you are after Broadcast, Studio or Scout, the door is the Professional & Media page.