Get a contact's custom field values
Get a contact's custom field values: the raw values keyed by field_key, plus every active (non-archived) definition paired with its value.
GET
https://api.centerfy.ai/webhooks/inbound/contacts/:id/custom-fields Headers
| Header | Required | Value | Description |
|---|---|---|---|
x-api-key | Yes | your sub-account API key (cfy_…) | Authenticates the request; or use Authorization: Bearer <key>. |
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
id | string (uuid) | Yes | The contact id. |
Example
curl -X GET "https://api.centerfy.ai/webhooks/inbound/contacts/{id}/custom-fields" \
-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.contacts.getCustomFields("<contactId>");
console.log(result); centerfy contacts get-custom-fields <contactId> MCP tool: centerfy_contacts_get_custom_fields (see MCP server)
Response
{
"status": "success",
"contact_id": "3f1c2a9e-7b4d-4c8a-9e2f-1a2b3c4d5e6f",
"custom_field_values": {
"plan_tier": "Pro"
},
"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",
"value": "Pro"
}
]
}Errors
400— if the id is not a valid UUID; 404 if the contact is not in this sub-account.
Notes
fields is not paginated and is ordered by sort_order; value is null when the contact has no value for that field. custom_field_values may also hold keys whose definition was deleted or archived.