# listContactCustomFields

The organization's contact custom-field DEFINITIONS (id, name, type: TEXT/NUMBER/DOLLAR/DATE/LINK/DROPDOWN, dropdown options, allowMultiple, defaultValue). DEFINITIONS ONLY: no contact's value appears here, and none is missing; a contact's answer is getContact `customFields[].values` (updateContact echoes the same shape). Each id is the `customFieldId` for addCustomFieldValues (createContact) / updateCustomFieldValues (updateContact) on one contact, or setContactsCustomField for a DROPDOWN across a selection. Create definitions with createContactCustomField.

- Call: `POST https://server.goliathdata.com/api/v1/call` with `{ "operationId": "listContactCustomFields", "variables": {...} }`
- Scope: `READ`
- Type: query
- Idempotency: a read; rejects `Idempotency-Key`
- Rate-limited: no

## Variables

None.

## Response (data, an example)

```json
{
  "contactCustomFieldQuery": {
    "getMyOrganizationsCustomFields": [
      {
        "id": "<ID>",
        "name": "…",
        "type": "DROPDOWN",
        "description": "…",
        "options": [
          {
            "id": "<ID>",
            "label": "…"
          }
        ],
        "displayOrder": 0,
        "allowMultiple": true,
        "defaultValue": "…",
        "matchInboundTextsByValue": true,
        "hideOnContactRecord": true
      }
    ]
  }
}
```

## Example

```bash
curl https://server.goliathdata.com/api/v1/call \
  -H "Authorization: Bearer $GOLIATH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "operationId": "listContactCustomFields",
    "variables": {}
  }'
```
