---
title: "List custom fields"
method: GET
path: "/v1/custom-fields"
tags: ["Custom Fields"]
---

# List custom fields

`GET /v1/custom-fields`

Returns a paginated list of custom fields scoped to the workspaces accessible by the API key. Each custom field has a stable `slug` (immutable) and a human-readable `name` (editable). Use the `slug` as the key when setting custom field values on contacts. Use the `workspaceIds` query parameter to narrow results to a subset of those workspaces.

## Query parameters

- `workspaceIds` string
- `page` number
- `limit` number
- `search` string

## Response `200`

Paginated list of custom fields

- PaginatedPublicCustomFieldsDto
  - `data` PublicCustomFieldDto[], required
    - `id` string, required
    - `name` string, required — Human-readable label. Can be renamed without breaking integrations.
    - `slug` string, required — Stable, immutable identifier derived from the name at creation time. Use this as the key when setting custom field values on a contact via POST/PATCH /contacts.
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
  - `total` number, required
  - `page` number, required
  - `limit` number, required
  - `totalPages` number, required

## Other responses

- `401` — Invalid or missing API key
- `403` — One or more requested workspaceIds are outside the API key scope

---

[API](https://skmtc.net/skipcall/apis/skipcall-public-api.md) · [All operations](https://skmtc.net/skipcall/apis/skipcall-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/skipcall/skipcall-public-api/versions/f594352719bd/schema)
