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

# List custom fields

`GET /public/v2/custom-fields/`

Retrieve a paginated list of custom field definitions with filtering and ordering options.

## Query parameters

- `search` string, nullable
- `id` integer[], nullable
- `field_type` 'text' | 'number' | 'currency' | 'date' | 'boolean' | 'single_select' | 'multi_select' | 'link' | 'paragraph', nullable
- `is_active` boolean, nullable
- `name` string, nullable
- `record_type` 'invoice' | 'bill' | 'direct_expense' | 'journal_entry' | 'vendor_prepayment' | 'vendor_credit' | 'vendor_payment' | 'vendor_refund' | 'customer_payment' | 'customer_prepayment' | 'customer_refund' | 'customer_deposit' | 'currency_revaluation' | 'contract' | 'fixed_asset' | 'customer' | 'vendor' | 'company' | 'sales_order' | 'cash_sale' | 'customer_credit'
- `company_id` integer, nullable — Include both org-level fields and fields scoped to this company id.
- `is_required` boolean, nullable — Filter on the `is_required` flag of the `applies_to` entry (needs `record_type`).
- `is_active_record` boolean, nullable — Filter on the `is_active` flag of the `applies_to` entry (needs `record_type`).
- `ordering` string, nullable
- `limit` integer — Number of records to return per page (capped at 100)
- `offset` integer — Number of records to skip before starting to return results

## Response `200`

OK

- PagedPublicCustomFieldSchemaOut
  - `items` PublicCustomFieldSchemaOut[], required
    - `id` integer, required
    - `company_id` integer, nullable
    - `company_ids` integer[]
    - `name` string, required
    - `description` string, nullable
    - `helper_text` string, nullable
    - `field_type` 'text' | 'number' | 'currency' | 'date' | 'boolean' | 'single_select' | 'multi_select' | 'link' | 'paragraph', required
    - `applies_to` AppliesToItemSchema[]
      - `type` 'invoice' | 'bill' | 'direct_expense' | 'journal_entry' | 'vendor_prepayment' | 'vendor_credit' | 'vendor_payment' | 'vendor_refund' | 'customer_payment' | 'customer_prepayment' | 'customer_refund' | 'customer_deposit' | 'currency_revaluation' | 'contract' | 'fixed_asset' | 'customer' | 'vendor' | 'company' | 'sales_order' | 'cash_sale' | 'customer_credit', required
      - `is_active` boolean
      - `is_required` boolean
    - `default_value` union
      - string
      - string[]
    - `options` string[], nullable
    - `is_active` boolean, required
  - `count` integer, required

## Other responses

- `400` — Bad Request

---

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