---
title: "List demographic question sets"
method: GET
path: "/v3/demographic_question_sets"
tags: ["Demographic Question Sets"]
---

# List demographic question sets

`GET /v3/demographic_question_sets`

## Request

- Base URL: `https://harvest.greenhouse.io`
- URL: `https://harvest.greenhouse.io/v3/demographic_question_sets`
- Auth: one of:
  - OAuth 2
    - Authorization code: `https://auth.greenhouse.io/authorize`
    - Client credentials
    - Token URL: `https://auth.greenhouse.io/token` scopes: `harvest:demographic_question_sets:list`
  - HTTP bearer

Demographic question sets are named groupings of `demographic_questions` an organization attaches to a job post or candidate survey to collect self-reported applicant demographic data (e.g. for DE&I reporting). A set is either custom (defined by the organization) or linked to a Greenhouse-supplied standard set; in both cases its child questions live under `/v3/demographic_questions?demographic_question_set_id={id}`. Inactive (soft-removed) and disabled sets are returned by default so historical applicant submissions stay readable — use `active` and `enabled` to narrow to live sets only.

## Query parameters

- `cursor` string
- `per_page` integer
- `ids` integer[]
- `created_at` object
  - `gte` string, date-time
  - `lte` string, date-time
  - `gt` string, date-time
  - `lt` string, date-time
- `updated_at` object
  - `gte` string, date-time
  - `lte` string, date-time
  - `gt` string, date-time
  - `lt` string, date-time
- `fields` string[]
- `active` boolean
- `enabled` boolean

## Response `200`

Successful

- object[]
  - `id` integer
  - `created_at` string, date-time
  - `updated_at` string, date-time
  - `title` string: Name of the demographic question set, unique within the organization among active sets. Used as the section header for the grouping when the set is attached to a job post or candidate survey.
  - `description` string, nullable: External-facing copy shown to applicants above the questions on a job post or candidate survey, explaining why the organization is collecting this data. Required once any question in the set is marked `required`; otherwise optional.
  - `active` boolean: `true` for sets currently in use; `false` after the set has been soft-removed (which also marks its `demographic_questions` inactive). Inactive sets are returned by default — pass `active=true` to filter to live sets only. Past applications continue to reference inactive sets so historical demographic responses stay readable.
  - `enabled` boolean, nullable: Whether the set is available for selection on new job posts and candidate surveys. `true` and `null` both mean enabled (legacy rows predate the column and are treated as enabled); pass `enabled=false` to filter to sets the organization has explicitly disabled.

---

[API](https://skmtc.dev/greenhouse/apis/harvest-api.md) - [All operations](https://skmtc.dev/greenhouse/apis/harvest-api/llms.txt) - [OpenAPI document](https://skmtc.dev/greenhouse/apis/harvest-api/revisions/822822e3f771?raw)
