---
title: "List custom field definitions"
method: GET
path: "/custom-fields"
tags: ["Reference Data"]
---

# List custom field definitions

`GET /custom-fields`

Returns custom field definitions for contacts, companies, deals, quotations, or tasks. Use the key values as cf_* fields on create/update.

## Query parameters

- `entity` 'contacts' | 'companies' | 'deals' | 'quotations' | 'tasks' | 'projects', required
- `pipelineId` string

## Response `200`

OK

- object
  - `data` CustomFieldDefinition[], required
    - `key` string, required — API key — use as top-level cf_* on create/update
    - `label` string, required — Field label in Heffl
    - `dataType` string, required — Field data type
    - `required` boolean, required
    - `values` string[], required — Allowed option values
    - `pipelineId` string, nullable — Deal pipeline ID when scoped to one pipeline

## Other responses

- `400` — Validation error or bad request
- `401` — Missing or invalid API key
- `403` — Insufficient permission
- `404` — Resource not found
- `429` — Rate limit exceeded

---

[API](https://skmtc.net/heffl/apis/heffl-api-v2-beta.md) · [All operations](https://skmtc.net/heffl/apis/heffl-api-v2-beta/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/heffl/heffl-api-v2-beta/versions/27006cfef4d8/schema)
