List custom fields

List the sub-account's contact custom field definitions, ordered by sort_order then name.

GET https://api.centerfy.ai/webhooks/inbound/custom-fields

Headers

HeaderRequiredValueDescription
x-api-keyYesyour sub-account API key (cfy_…)Authenticates the request; or use Authorization: Bearer <key>.

Query parameters

NameTypeRequiredDefaultDescription
limitintegerNo50Page size; minimum 1, maximum 100 (larger values are rejected with 400).
offsetintegerNo0Number of records to skip for paging; minimum 0.
sourcestringNo—One of platform (created in Centerfy) or ghl (mirrored from GoHighLevel).
include_archivedbooleanNofalseAlso return archived definitions.

Example

curl -X GET "https://api.centerfy.ai/webhooks/inbound/custom-fields?limit=50&offset=0&include_archived=false" \
  -H "x-api-key: $CENTERFY_API_KEY"
import { CenterfyClient } from "@centerfy/sdk";

const centerfy = new CenterfyClient({ apiKey: process.env.CENTERFY_API_KEY! });

const result = await centerfy.customFields.list({
  "limit": 50,
  "offset": 0,
  "include_archived": "false"
});
console.log(result);
centerfy customFields list '{"limit":50,"offset":0,"include_archived":"false"}'

MCP tool: centerfy_custom_fields_list (see MCP server)

Response

{
  "status": "success",
  "total": 1,
  "limit": 50,
  "offset": 0,
  "has_more": false,
  "custom_fields": [
    {
      "id": "4b5c6d7e-8f90-4a1b-9c2d-3e4f5a6b7c8d",
      "field_name": "Plan tier",
      "field_key": "plan_tier",
      "field_type": "select",
      "options": [
        "Basic",
        "Pro",
        "Enterprise"
      ],
      "is_required": false,
      "sort_order": 0,
      "source": "platform",
      "external_key": null,
      "archived_at": null,
      "created_at": "2026-10-01T10:00:00.000Z",
      "updated_at": "2026-10-01T10:00:00.000Z"
    }
  ]
}

Errors

  • 400 — if source is not platform or ghl.

Notes

options is null for field types without choices.

© 2026 Centerfy AI. All rights reserved.