Kenso

CRM fields

The fields your CRM exposes.

CRM1 endpointKen-Version: 2026-11-02AuthenticationWorkspacesErrors

List the CRM's fields

GET/v1/crm-connections/{connectionId}/fieldscrm-fields.list

Needs the ingestion feature on your workspace. Until it is on, calls answer 404.

Try it on developer.ken.so

objectType company, contact or deal. Cached 10 minutes. Ken's own fields that Ken creates on sync are listed with exists: false.

Parameters

Name
In
Type
Required
Description
connectionId
In: path
integer (int64)
required
objectType
In: query
string
optional
Ken-Version
In: header
string, one of: 2026-11-02, 1.1
required
The API version: a dated version (YYYY-MM-DD), or 1.1, another name for the first dated version. Without it the request uses your API key's pinned version; an unpinned key reaches the legacy shape of the same path. 1.0 selects the legacy shape explicitly.
X-Ken-Workspace-Id
In: header
integer (int64)
optional
Workspace to act in. Required when your credential can reach more than one workspace (otherwise 400 workspace_required).

Response 200

data is a list of CrmFieldModel. Each item has these fields. The response also carries pagination.

Field
Type
Description
apiName
string
label
string
dataType
string
isCustom
boolean
isReadOnly
boolean
isRequiredOnCreate
boolean
options
array of CrmPicklistOptionModel
isKenField
boolean
exists
boolean
Request
curl -X GET "https://api.ken.so/v1/crm-connections/812/fields" \
  -H "Authorization: Bearer $KEN_API_KEY" \
  -H "Ken-Version: 2026-11-02" \
  -H "X-Ken-Workspace-Id: $KEN_WORKSPACE_ID"
Response 200
{
  "success": true,
  "data": [
    {
      "apiName": "string",
      "label": "string",
      "dataType": "string",
      "isCustom": true,
      "isReadOnly": true,
      "isRequiredOnCreate": true,
      "options": [
        {
          "value": "string",
          "label": "string"
        }
      ],
      "isKenField": true,
      "exists": true
    }
  ],
  "pagination": {
    "nextCursor": "eyJpZCI6ODE1fQ",
    "hasMore": true,
    "total": 1,
    "isTotalCapped": true
  }
}