---
title: "DANE Labour Market"
method: POST
path: "/co/dane/labour-market/v1"
tags: ["Colombia", "DANE"]
---

# DANE Labour Market

`POST /co/dane/labour-market/v1`

## Request

- Base URL: `https://api.croma.run`
- URL: `https://api.croma.run/co/dane/labour-market/v1`
- Auth: HTTP bearer

Colombia's labour-market series from DANE's household survey (GEIH): unemployment (TD), employment (TO), participation (TGP) and underemployment (TS) rates and the populations behind them, monthly for the nation (total and cabeceras) since 2001 and for the 13 main cities, as rolling quarters for 23 cities and metropolitan areas since 2007, and as rolling years for 32 cities since 2021. Filter by DIVIPOLA code, territory level, indicator, period type, domain and date range. Newest first. Served by Croma (`as_of` says how current the data is).

**Dataset endpoint**: answers from the whole source in milliseconds and carries `as_of`.

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `territory_code` string: Optional DIVIPOLA code: 2 digits for a department (`44`), 5 for a municipality (`44001`).
  - `territory_level` '' | 'national' | 'region' | 'department' | 'metropolitan_area' | 'city' | 'city_aggregate': Optional kind of territory: `national`, `region`, `department`, `metropolitan_area`, `city` or `city_aggregate` (a group of cities, e.g. the 13 main cities).
  - `indicator_code` '' | 'unemployment_rate' | 'employment_rate' | 'participation_rate' | 'underemployment_rate' | 'working_age_share' | 'unemployment_underemployment_rate' | 'unemployment_potential_labour_force_rate' | 'labour_underutilization_rate' | 'population' | 'working_age_population' | 'labour_force' | 'employed' | 'unemployed' | 'outside_labour_force' | 'underemployed' | 'potential_labour_force': Optional indicator, e.g. `unemployment_rate` (TD), `employment_rate` (TO), `participation_rate` (TGP). Empty returns every indicator.
  - `period_type` '' | 'monthly' | 'rolling_quarter' | 'rolling_year': Optional period type: `monthly`, `rolling_quarter` (three months ending in `period`) or `rolling_year` (twelve months ending in `period`).
  - `domain` '' | 'total' | 'urban' | 'rural': Optional domain: `total`, `urban` (cabeceras) or `rural` (centros poblados y rural disperso).
  - `from_date` string, date: Optional date filter in yyyy-mm-dd format.
  - `to_date` string, date: Optional date filter in yyyy-mm-dd format.
  - `page` integer: 1-based page number for paginated results.
  - `per_page` integer: Results per page (1-500).

## Response `200`

Successful response

- DaneLabourMarketResponse
  - `data` DaneLabourMarketData, required
    - `as_of` string, nullable, required: How current the data in this response is.
    - `territory_code` string, nullable, required
    - `territory_level` string, nullable, required
    - `indicator_code` string, nullable, required
    - `period_type` string, nullable, required
    - `domain` string, nullable, required
    - `from_date` string, nullable, required
    - `to_date` string, nullable, required
    - `total` number, required: Matches, counted up to 1000.
    - `total_is_exact` boolean, required: False when more than 1000 match.
    - `page` number, required
    - `per_page` number, required
    - `total_pages` number, required
    - `count` number, required
    - `results` object[], required
      - `series_id` string, required: The observation: period type, territory, domain, indicator and period, e.g. "monthly:nacional:total:unemployment_rate:2026-08".
      - `territory_code` string, nullable, required: DIVIPOLA code: 2 digits for a department, 5 for a municipality. A metropolitan area carries its core municipality's code. Null for the national total, regions and groups of cities.
      - `territory_name` string, required: The territory as DANE names it, e.g. "Bogotá D.C.", "Medellín A.M.", "La Guajira", "Caribe".
      - `territory_level` 'national' | 'region' | 'department' | 'metropolitan_area' | 'city' | 'city_aggregate', required: `national`, `region`, `department`, `metropolitan_area`, `city` or `city_aggregate`.
      - `domain` 'total' | 'urban' | 'rural', required: `total`, `urban` (cabeceras) or `rural` (centros poblados y rural disperso).
      - `indicator_code` string, required: The indicator, e.g. `unemployment_rate` (TD), `employment_rate` (TO), `participation_rate` (TGP), `population`.
      - `indicator` string, required: The indicator as DANE names it, e.g. "Tasa de Desocupación (TD)".
      - `unit` 'percent' | 'thousands_of_people', required: `percent` for rates and shares, `thousands_of_people` for populations.
      - `period_type` 'monthly' | 'rolling_quarter' | 'rolling_year', required: `monthly`, `rolling_quarter` (the three months ending in `period`) or `rolling_year` (the twelve months ending in `period`).
      - `period` string, required: `yyyy-mm`: the month, or the last month of the rolling window.
      - `period_start` string, required: `yyyy-mm-01` of `period`: what `from_date` and `to_date` filter on.
      - `year` number, required: The year of `period`.
      - `value` number, required: The value as DANE published it.
      - `release` string, required: `yyyy-mm`: the monthly release this value was read from.
      - `document_url` string, nullable, required: The DANE workbook this value comes from, exactly as DANE published it, always available at this link.
      - `source_document_url` string, nullable, required: The same workbook's link at DANE.

## Other responses

- `400`: Invalid request body
- `401`: Missing or invalid API key
- `429`: Rate limit exceeded
- `500`: Internal error
- `502`: Upstream source returned an error

---

[API](https://skmtc.dev/usecroma/apis/croma-marketplace-api.md) · [All operations](https://skmtc.dev/usecroma/apis/croma-marketplace-api/llms.txt) · [OpenAPI document](https://skmtc.dev/usecroma/apis/croma-marketplace-api/revisions/74c745980c60?raw)
