---
title: "Growth Stats"
method: GET
path: "/v1/ops/growth-stats"
tags: ["ops"]
---

# Growth Stats

`GET /v1/ops/growth-stats`

## Request

- Base URL: `https://api.mundane.market` (the document declares no server; this is the origin it was published from)
- URL: `https://api.mundane.market/v1/ops/growth-stats`
- Auth: none declared

Aggregates for the content generator. Counts only, never rows.

The generator runs in GitHub Actions (see
docs/plans/automated-content-growth-pipeline.md). Giving CI a production
database credential so a marketing script can count things would put the
whole marketplace one leaked secret away from a stranger, to save writing
this endpoint. So it reads through the API with the ops token instead, and
returns nothing that describes a person: no identifiers, no handles, no
emails, no coordinates, no task titles.

`signups_by_source` is the point of the whole exercise. Until 0046 there
was nowhere to record which post produced a signup, so the first organic
worker's origin was unknowable. NULL is reported as "untagged" rather than
dropped -- most organic arrivals will never carry a tag, and hiding them
would make every campaign look better than it is.

## Query parameters

- `days` integer

## Headers

- `x-ops-token` string, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

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