---
title: "List rejection reasons"
method: GET
path: "/v3/rejection_reasons"
tags: ["Rejection Reasons"]
---

# List rejection reasons

`GET /v3/rejection_reasons`

Rejection reasons are the organization-defined dictionary of outcomes recorded when an application is rejected (e.g. `Not a cultural fit`, `Lacking skill(s)/qualification(s)`, `Wasn't interested`, `Didn't like offer`, `Spam`). Each rejected `application` references one of these through its `rejection_details.rejection_reason`; this endpoint is the source of truth for the picklist itself. Reasons are grouped under a `type` of `We rejected them`, `They rejected us`, `None specified`, or `Security concern` — use the type to distinguish the organization declining the candidate from the candidate withdrawing, and to identify trust/fraud outcomes in reporting. Customized per organization under Configure > Custom Options > Rejection Reasons, so the available set varies between Greenhouse accounts; pass `include_defaults=true` to also return the standard reasons that ship with every account. Reasons of type `Security concern` are only returned when the `enable_reject_as_security_concern` product flag is on. Distinct from `rejection_details`, which carries the per-application rejection instance attached to a rejected application, and from `close_reasons`, which apply to openings rather than applications.

## 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[]
- `include_defaults` boolean

## Response `200`

Successful

- object[]
  - `id` integer
  - `created_at` string, date-time
  - `updated_at` string, date-time
  - `name` string — Display label shown to recruiters when rejecting a candidate (e.g. `Not a cultural fit`, `Lacking skill(s)/qualification(s)`, `Wasn't interested`, `Didn't like offer`, `Spam`). Unique within the organization. Free-text, since each organization customizes its own list under Configure > Custom Options > Rejection Reasons. Reason categorization (hire/non-hire, we vs. they rejected) is conveyed by the nested `type` rather than by the name.
  - `type` object — The rejection reason type this reason rolls up to — the categorization Greenhouse uses to interpret outcomes in reporting. Reasons grouped under `We rejected them` mean the organization declined the candidate, `They rejected us` mean the candidate withdrew or declined an offer, `Security concern` flags fraud or other trust signals, and `None specified` is the catch-all. The `Security concern` type is only returned when the `enable_reject_as_security_concern` product flag is on for the organization.
    - `id` integer — Id of the rejection reason type. Stable across all rejection reasons in the organization that share the same categorization.
    - `key` string — Stable machine-readable identifier for the reason type. One of `WE_REJECTED_THEM`, `THEY_REJECTED_US`, `NONE_SPECIFIED`, or `SECURITY_CONCERN`. Prefer matching on `key` over `name` since it is not subject to localization.
    - `name` string — Display name of the rejection reason type used in Greenhouse reporting. One of `We rejected them`, `They rejected us`, `None specified`, or `Security concern`.

---

[API](https://skmtc.dev/greenhouse/apis/auth-api.md) · [All operations](https://skmtc.dev/greenhouse/apis/auth-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/greenhouse/auth-api/revisions/9517a2e54640/schema)
