---
title: "List AI opt-out statuses"
method: GET
path: "/v3/ai_opt_out_statuses"
tags: ["AI Opt-Out Statuses"]
---

# List AI opt-out statuses

`GET /v3/ai_opt_out_statuses`

## Request

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

A candidate's decision to opt out of AI-assisted review (Talent Matching) for a specific job. Candidates opt out from the job post, confirming by emailed security code, and may do so before they ever apply — the decision is recorded against their email address and a job, not against a candidate record. Opt-out is per job: opting out of one job says nothing about any other job the same candidate applies to. A row appears only once the decision is confirmed and the candidate has an application on that job, and only the most recently confirmed decision per candidate and job is returned. Rows persist when a candidate opts back in, carrying `opted_out: false`, so a partner syncing on `updated_at` can observe the reversal — treat a candidate with no row at all as never having made a decision, not as having opted in. Behavioral notes: confirming an opt-out deletes any Talent Matching match scores already computed for that candidate on that job, except where a recruiter has manually overridden the match strength or the application has already been rejected or hired, and no further scores are computed. Because those applications then have no AI score, they remain in the job's "Needs manual review" queue for a recruiter to assess by hand rather than being filtered out of it. This endpoint never exposes match scores. Access requires the Talent Matching product; requests from organizations without it are rejected. Beyond the `harvest:ai_opt_out_statuses:list` scope, a user-scoped token must belong to a site admin or to a job admin whose level grants "Can view AI opt-out status" on the job, and is otherwise rejected rather than returned an empty list.

## 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
- `job_ids` integer[]
- `candidate_ids` integer[]
- `fields` string[]
- `opted_out` boolean

## Response `200`

Successful

- object[]
  - `id` integer
  - `created_at` string, date-time
  - `updated_at` string, date-time
  - `job_id` integer: Id of the job this decision applies to. Opt-out is recorded per job, not per candidate — a candidate who opts out of one job is unaffected on every other job.
  - `candidate_ids` integer[]: Ids of the candidates this decision currently applies to. Almost always exactly one. A decision is recorded against an email address rather than a candidate, so it lists more than one id when several candidate records share that email address and each has an application on this job.
  - `opted_out` boolean: `true` when the candidate has opted out of AI-assisted review for this job; `false` when they previously opted out and have since confirmed opting back in. Candidates who have never made a decision have no record here at all — absence is not the same as `false`.
  - `feature` string: The AI feature this decision covers. Currently always `talent_matching`. New values may be added, so filter on this field rather than assuming every record refers to Talent Matching.
  - `confirmed_at` string, date-time: Timestamp the candidate confirmed this decision by email, in ISO 8601. Only confirmed decisions appear in this list — an unverified submission is not yet in effect. Where a candidate has confirmed more than once for a job, only the most recent decision is returned.

---

[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)
