---
title: "Windowed growth series (per-bucket + cumulative curves)"
method: GET
path: "/stats/growth"
tags: ["Stats"]
---

# Windowed growth series (per-bucket + cumulative curves)

`GET /stats/growth`

## Request

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

Admin-only bucketed growth series (sites, verified users, pageviews — per-bucket and cumulative) over the requested window + bucket width. The user curves count verified users only. The heavier half of the old snapshot, split out so the Overview tab need not pay for it. 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`

- APIStatsGrowth
  - `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.
  - `windowDays` number, required: Window the growth series covers, in days.
  - `from` string, required: Start of the growth window (ISO 8601).
  - `to` string, required: End of the growth window (ISO 8601).
  - `generatedAt` string, required: When this series 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)
