---
title: "candidate.listProjects"
method: POST
path: "/candidate.listProjects"
tags: ["Candidate"]
---

# candidate.listProjects

`POST /candidate.listProjects`

Lists the projects a candidate has been added to.

**Requires the [`candidatesRead`](authentication#permissions-candidatelistprojects) permission.**

## Request body

- CandidateListProjectsRequest
  - `candidateId` string, uuid, required — The id of the candidate to fetch projects for
  - `cursor` string, nullable — Opaque cursor indicating which page of results to fetch
  - `limit` number, nullable — The maximum number of items to return. The maximum and default value is 100.

## Response `200`

Responses from the candidate.listProjects endpoint

- union
  - CandidateListProjectsSuccessResponse
    - `success` true, required
    - `results` Project[], required
      - `id` string, uuid, required — The unique identifier for the project
      - `createdAt` string, date-time, required — The date and time when the project was created
      - `title` string, required — The project's title
      - `isArchived` boolean, required — Whether the project is archived
      - `authorId` string, uuid, required — The unique identifier for the user who created the project
      - `description` string, nullable — The project's description
      - `confidential` boolean, required — Whether the project is confidential
      - `customFieldEntries` ProjectCustomField[], nullable — All custom field values associated with the project
        - `id` string, uuid, required — The unique identifier for the custom field
        - `isPrivate` boolean, required — Whether the custom field is private
        - `title` string, required — The custom field's title
        - `value` union, required — The custom field value
          - boolean — A boolean custom field value
          - object
            - `value` number, required — The currency amount
            - `currencyCode` string, required — The ISO currency code
          - string, date-time — A date or date-time custom field value
          - string — A text or select custom field value
          - string[] — A multi-select custom field value
          - number — A number custom field value
          - object
            - `type` 'number-range', required — The custom field range type
            - `minValue` number, required — The minimum value for the range
            - `maxValue` number, required — The maximum value for the range
          - object
            - `type` 'compensation-range', required — The custom field range type
            - `minValue` number, required — The minimum compensation value
            - `maxValue` number, required — The maximum compensation value
            - `currencyCode` string, required — The ISO currency code
            - `interval` string, required — The compensation interval
        - `valueLabel` union — The label of the custom field value, if the value is not already human-readable
          - string
          - string[]
    - `nextCursor` string — Cursor for the next page of results, if available
    - `moreDataAvailable` boolean — Whether more data is available beyond this page
    - `syncToken` string — Sync token to use for future incremental syncs. Only present on the last page.
  - ErrorResponse
    - `success` false, required
    - `errors` ErrorDetail[], required
      - `message` string, required
      - `parameter` string

---

[API](https://skmtc.net/ashbyhq/apis/ashby-api.md) · [All operations](https://skmtc.net/ashbyhq/apis/ashby-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/ashbyhq/ashby-api/revisions/778b919dc743/schema)
