---
title: "Get custom fields"
method: GET
path: "/custom-field/project/{projectId}"
tags: ["Custom Fields"]
---

# Get custom fields

`GET /custom-field/project/{projectId}`

## Request

- Base URL: `https://cloud.kaneo.app/api`
- URL: `https://cloud.kaneo.app/api/custom-field/project/{projectId}`
- Auth: HTTP bearer

Get all custom field definitions for a project.

## Path parameters

- `projectId` string, required

## Response `200`

List of custom field definitions

- CustomFieldDefinition[]
  - `id` string, required
  - `projectId` string, required
  - `name` string, required
  - `type` string, required
  - `required` boolean, required
  - `defaultValue` string, nullable, required
  - `options` unknown
  - `hiddenOptions` string[], required: Options no longer offered for new selections. Tasks that already use them keep them.
  - `position` number, required
  - `createdAt` string, date-time, required
  - `updatedAt` string, date-time, required

## Other responses

- `401`: Missing or invalid credentials
- `403`: No access to the project, or missing read permission
- `404`: Project not found
- `429`: The API key exceeded its rate limit or usage quota. Wait the number of seconds in Retry-After before retrying. The X-RateLimit headers are sent only when the rate limit was hit.

## Changes

- **2026-10-26** `84eec352f21c`: 1 info
  - added the required property `items/hiddenOptions` to the response with the `200` status
- **2026-10-26** `cf382d653cdc`: 1 breaking
  - removed the required property `items/hiddenOptions` from the response with the `200` status
- **2026-10-26** `82973bd64be8`: 1 info
  - added the required property `items/hiddenOptions` to the response with the `200` status
- **2026-10-09** `c9984766c765`: 2 info
  - added the non-success response with the status `404`
  - removed the non-success response with the status `400`
- **2026-10-08** `c7b8a842601b`: 3 breaking, 4 info
  - removed the media type `text/plain` for the response with the status `400`
  - removed the media type `text/plain` for the response with the status `403`
  - removed the media type `text/plain` for the response with the status `429`
  - added the media type `application/json` for the response with the status `400`
  - …3 more

[Operation history](https://skmtc.dev/usekaneo/apis/kaneo-api/changes/custom-field/project/:projectId/get.md)

---

[API](https://skmtc.dev/usekaneo/apis/kaneo-api.md) - [All operations](https://skmtc.dev/usekaneo/apis/kaneo-api/llms.txt) - [OpenAPI document](https://skmtc.dev/usekaneo/apis/kaneo-api/revisions/93f78789100c?raw)
