---
title: "Aggregate platform statistics (deprecated — use overview + growth)"
method: GET
path: "/stats"
tags: ["Stats"]
deprecated: true
---

# Aggregate platform statistics (deprecated — use overview + growth)

`GET /stats`

## Request

- Base URL: `https://api.nippy.host`
- URL: `https://api.nippy.host/stats`
- Auth: `bearer` (a scheme the document does not define)

> **Deprecated.**

Admin-only snapshot of platform-wide counts plus windowed traffic and growth series. Superseded by the lighter `GET /stats/overview` (snapshot + deltas) and `GET /stats/growth` (series only), which the dashboard now loads independently per tab; retained for backward compatibility. Returns only aggregate figures. Served from a short server-side cache.

## Query parameters

- `from` string
- `to` string
- `interval` '1m' | '5m' | '15m' | '1h' | '3h' | '6h' | '1d' | '1w'
- `tzOffset` number

## Response `200`

- APIPlatformStats
  - `accounts` APIAccountsStats, required
    - `total` number, required: All accounts (personal + organization).
    - `personal` number, required: Auto-provisioned personal accounts.
    - `organization` number, required: Explicitly created team/organization accounts.
  - `users` APIUsersStats, required
    - `total` number, required: All registered users.
    - `verified` number, required: Users who have verified their email address.
    - `unverified` number, required: Users who have not verified their email address yet. The remainder of `total` after `verified` — a signup that never came back to its inbox.
  - `sites` APISitesStats, required
    - `total` number, required: Sites in any non-pending lifecycle status (mid-upload sites excluded).
    - `live` number, required: Sites currently servable to the public.
    - `inactive` number, required: Sites toggled off by their owner.
    - `suspended` number, required: Sites suspended (billing or abuse).
    - `awaitingVerification` number, required: Sites finished uploading but blocked on email verification.
  - `customDomains` APICustomDomainsStats, required
    - `total` number, required: All connected custom-domain rows.
    - `active` number, required: Custom domains with an active certificate serving public traffic.
  - `plans` APIPlansStats, required
    - `free` number, required: Accounts on the free tier.
    - `basic` number, required: Accounts on the basic tier.
    - `pro` number, required: Accounts on the pro tier.
    - `max` number, required: Accounts on the max tier.
  - `content` APIContentStats, required
    - `totalPublishes` number, required: Total successful publishes (finalized upload batches) ever.
    - `filesHosted` number, required: Files currently hosted: summed over each site’s most recent finalized version.
    - `bytesStored` number, required: Bytes currently stored: summed file sizes of each site’s most recent finalized version.
  - `traffic` APITrafficStats, required
    - `pageviews` number, required: Sample-corrected pageviews across all sites over the selected window.
    - `bytesServed` number, required: Sample-corrected bytes served across all sites over the selected window.
  - `growth` APIGrowthStats, required
    - `interval` '1m' | '5m' | '15m' | '1h' | '3h' | '6h' | '1d' | '1w', required: Bucket width of the series below (spacing between points), echoing the resolved interval after clamping the request to the window.
    - `buckets` string[], required: ISO 8601 start instant of each series bucket, oldest first. Same length as every series array below; use as the chart x-axis labels.
    - `sites` number[], required: Sites created per bucket, oldest first.
    - `sitesCumulative` number[], required: Running total of non-pending sites at the end of each bucket, oldest first — anchored to the count that already existed before the window, so it reads as a true cumulative curve. Powers the growth hockey-stick.
    - `verifiedUsers` number[], required: Verified users created per bucket, oldest first. Bucketed on signup date and filtered to users who hold a verified email now, so a bucket reads as "signups from this bucket that became real accounts". There is no verification timestamp to bucket on instead.
    - `verifiedUsersCumulative` number[], required: Running total of verified users at the end of each bucket, oldest first — anchored to all-time verified users before the window. Cumulative curve.
    - `pageviews` number[], required: Sample-corrected pageviews across all sites per bucket, oldest first.
    - `pageviewsCumulative` number[], required: Running total of pageviews at the end of each bucket, oldest first — anchored to all-time pageviews before the window. Cumulative traffic curve.
  - `deltas` APIDeltasStats, required
    - `windowDays` number, required: Length of each delta window, in days (the trailing period).
    - `accounts` APIStatDelta, required
      - `current` number, required: Count in the most recent delta window.
      - `previous` number, required: Count in the window immediately before the current one.
    - `verifiedUsers` APIStatDelta, required
      - `current` number, required: Count in the most recent delta window.
      - `previous` number, required: Count in the window immediately before the current one.
    - `sites` APIStatDelta, required
      - `current` number, required: Count in the most recent delta window.
      - `previous` number, required: Count in the window immediately before the current one.
    - `customDomains` APIStatDelta, required
      - `current` number, required: Count in the most recent delta window.
      - `previous` number, required: Count in the window immediately before the current one.
    - `pageviews` APIStatDelta, required
      - `current` number, required: Count in the most recent delta window.
      - `previous` number, required: Count in the window immediately before the current one.
  - `windowDays` number, required: Window the traffic and growth figures cover, in days (the resolved span from `from` to `to`, rounded to whole days).
  - `from` string, required: Start of the windowed traffic/growth figures (ISO 8601).
  - `to` string, required: End of the windowed traffic/growth figures (ISO 8601).
  - `generatedAt` string, required: When this snapshot was computed (ISO 8601).

## Other responses

- `403`: Admin access required

---

[API](https://skmtc.dev/nippy/apis/nippy-backend-api.md) · [All operations](https://skmtc.dev/nippy/apis/nippy-backend-api/llms.txt) · [OpenAPI document](https://skmtc.dev/nippy/apis/nippy-backend-api/revisions/7ab23f040a55?raw)
