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

# Lists custom fields definitions

`GET /v1/custom-fields`

## Request

- Base URL: `https://gateway.remote.com`
- URL: `https://gateway.remote.com/v1/custom-fields`
- Auth: one of:
  - OAuth 2
    - Authorization code: `/auth/oauth2/authorize`
    - Token URL: `/auth/oauth2/token` scopes: `https://gateway.remote.com/company.manage`
  - OAuth 2
    - Authorization code: `/auth/oauth2/authorize`
    - Token URL: `/auth/oauth2/token` scopes: `custom_field:read`
  - OAuth 2
    - Authorization code: `/auth/oauth2/authorize`
    - Token URL: `/auth/oauth2/token` scopes: `all:read`
  - OAuth 2
    - Authorization code: `/auth/oauth2/authorize`
    - Token URL: `/auth/oauth2/token` scopes: `all:write`
  - OAuth 2
    - Client credentials
    - Token URL: `/auth/oauth2/token` scopes: `custom_field:read`
  - OAuth 2
    - Client credentials
    - Token URL: `/auth/oauth2/token` scopes: `all:read`
  - OAuth 2
    - Client credentials
    - Token URL: `/auth/oauth2/token` scopes: `all:write`
  - HTTP bearer

Returns custom fields definitions

## Authentication

This endpoint accepts any one of the following token types:

- **Company-scoped access token** (`OAuth2AuthorizationCode`) — obtained by a company manager through the Authorization Code flow or the Refresh Token flow. See [Authentication for partners](https://developer.remote.com/docs/authentication-for-partners).
- **Company-scoped access token (assertion)** (`OAuth2CompanyManagerAssertion`) — obtained through the `urn:ietf:params:oauth:grant-type:jwt-bearer` grant for a company manager. See [OAuth Assertion](https://developer.remote.com/docs/authorization-method-oauth-assertion).
- **Customer API token** (`CustomerAPIToken`) — generated by the customer on their Integration Settings page, with the scopes they choose there. See [Authorization for customers](https://developer.remote.com/docs/authorization-for-customers).

## Scopes

Any one of the scopes in a token type's row is enough. `all:read` and `all:write` work too.

| Token type | Category | Read only Scope | Write only Scope (read access implicit) |
|---|---|---|---|
| Company-scoped access token | Manage employments (`employments`) | View custom fields (`custom_field:read`) | Manage custom fields (`custom_field:write`) |
| Company-scoped access token (assertion) | Manage employments (`employments`) | View custom fields (`custom_field:read`) | Manage custom fields (`custom_field:write`) |
| Customer API token | Manage employments (`employments`) | View custom fields (`custom_field:read`) | Manage custom fields (`custom_field:write`) |

## Query parameters

- `company_id` string
- `page` integer
- `page_size` integer

## Response `200`

Success

- ListEmploymentCustomFieldsResponse: Response schema listing many custom_fields
  - `data` object
    - `current_page` integer: The current page among all of the total_pages
    - `custom_fields` EmploymentCustomField[]
      - `data_entry_access` 'company_admin_only' | 'employee_only' | 'everyone', required: Who can enter or edit values for this custom field. Controls which users see the field as editable vs read-only.
      - `id` string, required: The unique identifier (UUID) of the custom field definition.
      - `metadata` object, nullable, required: Additional configuration for the field. For `single_select` fields, contains the list of selectable options. For `currency` fields, contains the currency code. Null for simple field types.
      - `name` string, required: The display name of the custom field (e.g., "Internal ID", "T-Shirt Size").
      - `required` boolean, required: Whether this custom field is required for all employments in the company.
      - `type` 'string' | 'text' | 'integer' | 'date' | 'boolean' | 'percentage' | 'decimal' | 'link' | 'currency' | 'single_select', required: The datatype of the custom field
      - `visibility_scope` 'company_admin_only' | 'everyone', required: Who can see this custom field and its values. Controls visibility across different user roles.
    - `total_count` integer: The total number of records in the result
    - `total_pages` integer: The total number of pages the user can go through

## Other responses

- `401`: Unauthorized
- `404`: Not Found
- `422`: Unprocessable Entity

---

[API](https://skmtc.dev/remote-com/apis/integrations.md) - [All operations](https://skmtc.dev/remote-com/apis/integrations/llms.txt) - [OpenAPI document](https://skmtc.dev/remote-com/apis/integrations/revisions/1798c3c003d5?raw)
