---
title: "Read a complete package analytics report"
method: GET
path: "/api/analytics/packages/{kind}/{ident}"
tags: ["Analytics"]
---

# Read a complete package analytics report

`GET /api/analytics/packages/{kind}/{ident}`

## Request

- Base URL: `https://sbox.watch`
- URL: `https://sbox.watch/api/analytics/packages/{kind}/{ident}`
- Auth: none declared

Returns bounded player and rating histories, range summaries, hourly activity, rankings, usage, momentum, achievements, and available insight data.

## Path parameters

- `kind` 'game' | 'library' | 'map', required
- `ident` string, required

## Response `200`

Complete package analytics report.

- PackageAnalyticsReport
  - `generation` union, required
    - string
    - number
  - `generatedAt` string, date-time, required
  - `contentNotice` string, required
  - `canonicalUrl` string, uri, required
  - `markdownUrl` string, uri, required
  - `apiUrl` string, uri, required
  - `type` 'package', required
  - `package` DirectoryPackage, required
    - `ident` string, required
    - `title` string, required
    - `org` string
    - `orgIdent` string
    - `packageIdent` string
    - `sboxIdent` string
    - `url` string
    - `thumb` string
    - `orgThumb` string
    - `summary` string
    - `versionChanges` string
    - `kind` 'game' | 'library' | 'map', required
    - `weeklyPlaytimeBaselineAt` string, date-time, nullable
    - `score` number, nullable
    - `playersNow` number, nullable
    - `playersPeak24h` number, nullable
    - `favorites` number, nullable
    - `upvotes` number, nullable
    - `downvotes` number, nullable
    - `fileSize` number, nullable
    - `totalUsers` number, nullable
    - `totalSessions` number, nullable
    - `totalSeconds` number, nullable
    - `weeklyPlaytimeSeconds` number, nullable
    - `versionFileCount` number, nullable
    - `rank` number, nullable
    - `created` string, date-time, nullable
    - `updated` string, date-time, nullable
    - `supportsVr` boolean
    - `supportsController` boolean
    - `serverStats` object, nullable
      - `available` boolean
      - `serversRunning` number
      - `playersOnline` number
    - `tags` string[]
    - `jams` GameJam[]
      - `ident` string, required
      - `title` string, required
      - `url` string, uri, required
      - `deadline` string, date-time, nullable
    - `change24h` Momentum
      - `favorites` number
      - `upvotes` number
      - `total` number
    - `usage24h` object
      - `users` number, nullable
      - `previousUsers` number, nullable
    - `updateMarkers` PackageUpdate[]
      - `createdAt` string, date-time, nullable
      - `title` string
      - `version` string, nullable
      - `summary` string
      - `changeCount` integer
    - `trophies` object[]
      - `ident` string
      - `title` string
      - `label` string
      - `url` string
  - `kind` 'game' | 'library' | 'map', required
  - `analytics` PackageAnalytics, required
    - `playerHistory` PlayerHistory, required
      - `activeRange` string, required
      - `metric` string
      - `ranges` object[], required
        - `id` string, required
        - `label` string, required
      - `series` object, required
    - `ranges` object, required
      - `all` RangeStats
        - `samples` integer, required
        - `activeSamples` integer
        - `activePercent` number
        - `trackedHours` number
        - `playerHours` number
        - `averagePlayers` number, required
        - `peak` number, required
        - `peakAt` string, date-time, nullable
        - `partialCoverage` boolean
      - `day` RangeStats
        - `samples` integer, required
        - `activeSamples` integer
        - `activePercent` number
        - `trackedHours` number
        - `playerHours` number
        - `averagePlayers` number, required
        - `peak` number, required
        - `peakAt` string, date-time, nullable
        - `partialCoverage` boolean
      - `week` RangeStats
        - `samples` integer, required
        - `activeSamples` integer
        - `activePercent` number
        - `trackedHours` number
        - `playerHours` number
        - `averagePlayers` number, required
        - `peak` number, required
        - `peakAt` string, date-time, nullable
        - `partialCoverage` boolean
      - `prevDay` RangeStats
        - `samples` integer, required
        - `activeSamples` integer
        - `activePercent` number
        - `trackedHours` number
        - `playerHours` number
        - `averagePlayers` number, required
        - `peak` number, required
        - `peakAt` string, date-time, nullable
        - `partialCoverage` boolean
      - `prevWeek` RangeStats
        - `samples` integer, required
        - `activeSamples` integer
        - `activePercent` number
        - `trackedHours` number
        - `playerHours` number
        - `averagePlayers` number, required
        - `peak` number, required
        - `peakAt` string, date-time, nullable
        - `partialCoverage` boolean
    - `hourly` HourlyActivity[], required
      - `hour` integer, required
      - `samples` number, required
      - `total` number, required
      - `average` number, required
      - `pct` number, required
    - `kind` string
    - `packagePath` string
    - `serverStats` object, nullable
      - `available` boolean
      - `serversRunning` number
      - `playersOnline` number
    - `updateImpact` object, nullable
      - `updatedAt` string, date-time, nullable
      - `before` RangeStats
        - `samples` integer, required
        - `activeSamples` integer
        - `activePercent` number
        - `trackedHours` number
        - `playerHours` number
        - `averagePlayers` number, required
        - `peak` number, required
        - `peakAt` string, date-time, nullable
        - `partialCoverage` boolean
      - `after` RangeStats
        - `samples` integer, required
        - `activeSamples` integer
        - `activePercent` number
        - `trackedHours` number
        - `playerHours` number
        - `averagePlayers` number, required
        - `peak` number, required
        - `peakAt` string, date-time, nullable
        - `partialCoverage` boolean
      - `delta` number
      - `ratio` number, nullable
    - `rank` object
      - `playerHours` number, nullable
      - `playerHoursRank` number, nullable
      - `currentRank` number, nullable
      - `total` number, nullable
    - `usage` object
      - `users` number, nullable
      - `sessions` number, nullable
      - `seconds` number, nullable
      - `averageSessionSeconds` number, nullable
      - `sessionsPerUser` number, nullable
      - `newPlayers24h` number, nullable
      - `previousNewPlayers24h` number, nullable
    - `momentum` Momentum
      - `favorites` number
      - `upvotes` number
      - `total` number
    - `ratingHistory` RatingHistory
      - `activeRange` string, required
      - `metric` string
      - `ranges` object[], required
        - `id` string, required
        - `label` string, required
      - `series` object, required
  - `behavior` PackageBehavior
    - `latest` BehaviorSnapshot
      - `capturedAt` string, date-time, nullable
      - `packageUpdated` string, date-time, nullable
      - `achievements` Achievement[]
        - `name` string
        - `title` string
        - `description` string
        - `icon` string
        - `sourceStat` string
        - `unlockMode` number, nullable
        - `showProgress` boolean
        - `max` number, nullable
        - `score` number, nullable
        - `globalUnlocks` number, nullable
        - `globalFraction` number, nullable
      - `stats` BehaviorStat[]
        - `name` string
        - `title` string
        - `description` string
        - `unit` string
        - `valueString` string
        - `value` number, nullable
        - `players` number, nullable
        - `max` number, nullable
        - `avg` number, nullable
        - `min` number, nullable
        - `sum` number, nullable
    - `previous24h` BehaviorSnapshot
      - `capturedAt` string, date-time, nullable
      - `packageUpdated` string, date-time, nullable
      - `achievements` Achievement[]
        - `name` string
        - `title` string
        - `description` string
        - `icon` string
        - `sourceStat` string
        - `unlockMode` number, nullable
        - `showProgress` boolean
        - `max` number, nullable
        - `score` number, nullable
        - `globalUnlocks` number, nullable
        - `globalFraction` number, nullable
      - `stats` BehaviorStat[]
        - `name` string
        - `title` string
        - `description` string
        - `unit` string
        - `valueString` string
        - `value` number, nullable
        - `players` number, nullable
        - `max` number, nullable
        - `avg` number, nullable
        - `min` number, nullable
        - `sum` number, nullable
  - `insights` PackageInsights
    - `days` InsightDay[]
      - `date` string, date, required
      - `time` integer, required
      - `players` number, nullable, required
      - `averageSessionMinutes` number, nullable
      - `newPlayers` number, nullable
      - `returningPlayers` number, nullable
      - `sessionStatistic` 'average' | 'median' | 'mixed': Statistic supplied by sbox.game for averageSessionMinutes. Median values use the existing field for compatibility.
      - `complete` boolean, required
    - `sessionStatistic` 'average' | 'median' | 'mixed'
    - `hasPlayerSplit` boolean
    - `hasSessionLength` boolean
    - `latestPartial` boolean
    - `capturedAt` string, date-time, nullable
    - `summary` object
      - `activeToday` number, nullable
      - `activeWeek` number, nullable
      - `activeMonth` number, nullable
      - `playersAllTime` number, nullable
      - `sessionsToday` number, nullable
      - `sessionsWeek` number, nullable
      - `sessionsAllTime` number, nullable

## Other responses

- `400`: The path or query parameters are invalid.
- `404`: The requested entity was not found in the current public data.

---

[API](https://skmtc.dev/sbox/apis/s-box-watch-public-data-api.md) · [All operations](https://skmtc.dev/sbox/apis/s-box-watch-public-data-api/llms.txt) · [OpenAPI document](https://skmtc.dev/sbox/apis/s-box-watch-public-data-api/revisions/18f0b935bb5f?raw)
