---
title: "Census"
method: GET
path: "/api/census"
---

# Census

`GET /api/census`

## Request

- Base URL: `https://data.humanarchive.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://data.humanarchive.ai/api/census`
- Auth: none declared

Everything the Overview, Diversity and Environment views need, in one round trip.

One endpoint rather than six because these are all group-bys over the same filtered set, and
six calls would let the page render a total from one filter state beside a distribution from
another — a mismatch nobody would notice and no chart would flag.

⚠ FROM THE LEDGER (ha-architecture#309, 2026-09-30): `app/census_ledger.py` asks the mart for
every reporting number, after parity with the tracker was proven at one instant. The TRACKER
census below is KEPT, and answers only when asked for by name (`?source=tracker`, the side-by-
side the nightly parity and a person use) or when a filter is one the ledger cannot express
(a date range, an offload batch). `meta.plane` and `meta.fallback` say which, and why.

## Query parameters

- `source` string
- `l1_environment_id` string
- `l2_venue_id` string
- `l3_scene_id` string
- `location_id` string
- `session_uid` string
- `batch_id` string
- `device` string
- `age_range` string
- `gender` string
- `handedness` string
- `skill_group` string
- `date_from` string
- `date_to` string

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/humanarchive/apis/data-humanarchive-ai.md) - [All operations](https://skmtc.dev/humanarchive/apis/data-humanarchive-ai/llms.txt) - [OpenAPI document](https://skmtc.dev/humanarchive/apis/data-humanarchive-ai/revisions/d746c2f4eb21?raw)
