List Contact Columns
GET /contacts/columns
List custom contact columns (table columns + global dynamic columns; +list-scoped if list_id given).
Authorizations
Parameters
Query Parameters
Header Parameters
Responses
200
Successful Response
object
Column entity representing a database column definition. Used to describe table column metadata for MashupContact and other entities.
object
User-selectable dynamic-column data types.
Every member must have a physical type in the repos’ pg_type_map (contacts/companies CDP repos + enrichment DynamicColumnRepository: int→INTEGER, numeric→NUMERIC, text→TEXT, boolean→BOOLEAN) and belong to the user-owned family in lists/usecases/dynamic_column_write_contract.py — both already list these four. Write paths coerce values per type via shared.infrustructure.db.cdp.dynamic_column_values.coerce_dynamic_value.
Automatically computed: True if object_id is None/empty, False otherwise.
Which entity a field in the contact field list belongs to.
The GET /contacts/columns response deliberately combines fields from
three provenances into one list (issue #21184): the person record, their
employer’s company record, and user-created custom columns. Consumers
(form-mapping UI, AI-agent field listing, CSV import) need to tell them
apart — a company field like COMPANY_REVENUE describes the employer,
not the contact.
contact: a field on the person record (MashupContact.*) — the default.company: a field on the contact’s employer (MashupCompany.*), surfaced so contacts can be mapped/filtered by company attributes.custom: a user-created dynamic column (global or list-scoped).
object
Whether there are more pages
Items per page
Current page number (1-indexed)
Total number of items
422
Validation Error