---
title: "UN DESA indicators catalog"
method: GET
path: "/api/v1/un-population/indicators"
tags: ["Statistical Agencies"]
---

# UN DESA indicators catalog

`GET /api/v1/un-population/indicators`

86 indicators from the UN DESA Population Division: World Population Prospects 2024 (historical and projections to 2100) plus World Urbanization Prospects 2025. Each entry carries the stable indicator id, shortName, units, and dimension flags (dimAge, dimSex, dimVariant, dimCategory). Use the `id` field as the stable key for data lookups; `shortName` can collide across historical revisions.

## Response `200`

UN DESA Population Division indicator catalog (86 indicators).

- EnvelopeUNPopIndicatorsPayload
  - `data` UNPopIndicatorsPayload, required
    - `indicators` UNPopIndicator[], required — 86 UN DESA indicators (WPP 2024 + WUP 2025 + related sources).
      - `id` integer, required — UN DESA indicator identifier. Stable key for data lookups (e.g. 49=Total population, 19=TFR, 61=Life expectancy).
      - `name` string, required — Full indicator name as published by UN DESA.
      - `shortName` string, nullable — Short identifier used in WPP/WUP documentation (e.g. TPopulation, TFR5, E0).
      - `description` string, nullable — Upstream description of what the indicator measures.
      - `topicId` integer, nullable — UN DESA topic grouping identifier.
      - `topicName` string, nullable — UN DESA topic name (Population, Fertility, Mortality, Migration, Family Planning, etc).
      - `sourceId` integer, nullable — Upstream source / revision identifier (links to /sources).
      - `sourceName` string, nullable — Name of the upstream dataset (e.g. World Population Prospects).
      - `sourceYear` integer, nullable — Source revision year (e.g. 2024 for WPP 2024).
      - `sourceStartYear` integer, nullable — First year of data coverage.
      - `sourceEndYear` integer, nullable — Last year of data coverage (projections included).
      - `variableType` string, nullable — absolute (counts) or relative (rates / ratios).
      - `valueType` string, nullable — Value type: number, percent, years.
      - `unitShortLabel` string, nullable — Short unit label (persons, years, per 1000, etc).
      - `unitLongLabel` string, nullable — Long unit description.
      - `defaultVariantId` integer, nullable — Default projection variant id (4 = Medium).
      - `defaultSexId` integer, nullable — Default sex dimension id (3 = Both sexes).
      - `dimAge` boolean, nullable — True when the indicator is broken down by age.
      - `dimSex` boolean, nullable — True when the indicator is broken down by sex.
      - `dimVariant` boolean, nullable — True when projection variants apply (required for projections).
      - `dimCategory` boolean, nullable — True when a category dimension applies (family planning / marital status).
    - `total` integer, required — Total number of indicators returned.
  - `meta` SugraMeta, required — Metadata attached to every /api/v1/* response envelope.
    - `endpoint` string, required — Requested endpoint path.
    - `data_time` string, required — ISO 8601 UTC timestamp of the source data, not of the request.
    - `response_time` string, required — ISO 8601 UTC timestamp when this response was produced.
    - `provider` string, required — API name and version.
    - `source` string, nullable — Identifier of the primary upstream source used for this response.
    - `attribution` string, nullable — Human-readable attribution mandated by an upstream source (e.g. a securities regulator or self-regulatory organization). Present only on responses whose source requires the owner and source to be clearly identified. Do not remove or alter it when using the response.
    - `fallback_used` boolean, nullable — True when the primary source failed and a fallback produced the data.
    - `fallback_chain` string[], nullable — Ordered list of sources attempted, in the order they were tried.
    - `cached` boolean, nullable — True when this response was served from the internal cache.
    - `stale` boolean, nullable — True when the cached response was returned after the upstream rate-limited or errored. Clients can use this to detect degraded data.

## Other responses

- `401` — Missing or invalid `x-api-key` header.
- `429` — Daily rate limit exceeded. Check `X-RateLimit-Reset` for the next window.
- `503` — Upstream source is temporarily unavailable. Retry after a short delay.

---

[API](https://skmtc.net/sugra/apis/sugra-api.md) · [All operations](https://skmtc.net/sugra/apis/sugra-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/sugra/sugra-api/versions/dcf7427e6897/schema)
