---
title: "Query demographics"
method: GET
path: "/v1/data/demographics"
tags: ["Demographics"]
---

# Query demographics

`GET /v1/data/demographics`

## Request

- Base URL: `https://api.mapulus.com`
- URL: `https://api.mapulus.com/v1/data/demographics`
- Auth: HTTP bearer

Unified demographics endpoint. Combine parameters to express what you want.

**Point lookup:** `?lat=-33.87&lng=151.21` (defaults to SA1, use `boundary_type` to change)

**Single boundary:** `?boundary_id=sa2:117011325`

**Multiple boundaries:** `?boundary_id=sa1:123,sa1:456` (add `&aggregate=true` to aggregate)

**Browse by type:** `?boundary_type=sa2` (paginated, supports filter/sort/contained_by)

**Segment query:** Add `sex`, `age_min`, `age_max` to any single-boundary query with a `topics` value.
Returns `segment_pct` (percentage of boundary population in the segment).

## Query parameters

- `lat` number, nullable: Latitude of the point.
- `lng` number, nullable: Longitude of the point.
- `boundary_id` string, nullable: Boundary ID(s), comma-separated (e.g. `sa2:117011325` or `sa1:123,sa1:456`). Max 100.
- `boundary_type` 'sa1' | 'sa2' | 'sa3' | 'sa4' | 'lga' | 'poa' | 'sal' | 'ced' | 'sed' | 'gccsa' | 'ste' | 'sua' | 'ucl' | 'ra' | 'sos' | 'sosr' | 'iloc' | 'iare' | 'ireg' | 'flood' | 'us_state' | 'us_county' | 'us_tract' | 'us_bg' | 'us_place' | 'us_cousub' | 'us_cd' | 'us_sldu' | 'us_sldl' | 'us_cbsa' | 'us_csa' | 'us_unsd' | 'us_elsd' | 'us_scsd' | 'us_aiannh' | 'us_region' | 'us_division' | 'us_zcta' | 'us_ua' | 'us_puma': Statistical and administrative boundary types (AU + US).
- `topics` string, nullable: Comma-separated topic IDs (e.g. `age,income`). Use `all` for everything. Default: `summary`.
- `fields` string, nullable: Comma-separated API field paths (e.g. `summary.population.persons,medians.age`). Overrides `topics`.
- `census_year` integer: Census year.
- `sex` 'male' | 'female' | 'persons': Sex filter: `male`, `female`, or `persons`.
- `age_min` integer, nullable: Minimum age (inclusive).
- `age_max` integer, nullable: Maximum age (inclusive).
- `aggregate` boolean: Aggregate results across multiple boundaries.
- `contained_by` string, nullable: Spatial filter: parent boundary_id (e.g. `lga:17200`).
- `filter` string, nullable: Filter expression: `field.op.value` (semicolon-separated).
- `sort` string, nullable: Sort: `field.direction` (e.g. `summary.population.persons.desc`).
- `limit` integer: Page size (browse mode).
- `offset` integer: Pagination offset.

## Response `200`

Demographic data (shape varies by query mode).

- unknown

## Other responses

- `422`: Validation Error

---

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