v25

latestOpenAPI 3.1.0raw.githubusercontent.com2026-08-0131545750.2 KB

Create a property definition

Define a new property on this object type, scoped to the calling team. Search the existing properties first (GET this path with term) and reuse a match instead of defining a second property for the same fact. Pass list_id in the body to scope the definition to one list/app; without it the property is workspace-global and appears on every list. A name already used in that scope, an explicitly requested slug already taken, or a slug that a shared property already owns all return 409 naming the definition to use instead. The property's display format is resolved from type automatically — pass role_id only to override it. For select_str and multiselect_str types you may pre-seed the choices via options.

post/v2/prism/{teamId}/{objectType}/properties

Path parameters

teamIdstring uuid required
objectType'comment' | 'deal' | 'engagement' | 'identity' | 'ai_chat_thread' | 'ai_chat_message' | 'agent_site' | 'document' | 'action' | 'event' | 'organization' | 'contact' required

Headers

Idempotency-Keystring

A unique key (UUID or any opaque string up to 255 chars) that identifies this logical request. The server caches the first response under this key for 24 hours and replays it on retry — safe to use on every POST/PUT/PATCH to make network retries deterministic. Reusing the same key with a different body returns 409 idempotency_key_mismatch. Replays include the idempotent-replay: true response header.

Request body

type'num' | 'str' | 'bool' | 'date' | 'text' | 'byte' | 'select_str' | 'multi_str' | 'multiselect_str' | 'jsonb' | 'ref_identity' | 'ref_user' | 'ref_organization' | 'ref_contact' | 'ref_thread' | 'ref_message' | 'ref_event' | 'ref_account' | 'ref_ai_chat_thread' | 'ref_ai_chat_message' | 'multiref_ai_chat_message' | 'multiref_agent_site' | 'multiref_action' | 'multiref_comment' | 'multiref_contact' | 'multiref_label' | 'multiref_thread' | 'multiref_messages' | 'multiref_document' | 'multiref_identity' | 'multiref_organization' | 'multiref_engagement' | 'multiref_attendee' | 'multiref_meeting_entry' | 'multiref_read_receipt' | 'multiref_account' | 'multiref_source' required

Storage type for a property definition. Determines which per-type table holds the values, and which display formats the property can take.

namestring required

Human-readable name, unique within the scope the definition is created in. A name already taken in that scope returns 409; the message names the existing definition's id, slug and type so you can write to it instead.

slugstring

URL-safe identifier. When omitted it defaults to a slugified name and is disambiguated with a numeric suffix on conflict. When supplied explicitly it is treated as part of your write contract and is never silently renamed — a collision returns 409 instead.

iconstring nullable
list_idstring uuid nullable

Scopes the definition to one list/app. Omit it only for a property that genuinely belongs to the whole workspace: a definition created without list_id is workspace-global and surfaces on every list of this object type.

role_idstring uuid nullable

Optional display format for the property, drawn from the workspace's property roles. Omit it and the canonical role for type is applied (plain text, plain number, checkbox). Supply it only to pick a narrower format such as email, URL or currency; the role's data type must match type.

requiredboolean

When true, records must carry a non-empty value for this property on create. Defaults to false.

Response

Property created

idstring uuid required
slugstring required
namestring nullable
type'num' | 'str' | 'bool' | 'date' | 'text' | 'byte' | 'select_str' | 'multi_str' | 'multiselect_str' | 'jsonb' | 'ref_identity' | 'ref_user' | 'ref_organization' | 'ref_contact' | 'ref_thread' | 'ref_message' | 'ref_event' | 'ref_account' | 'ref_ai_chat_thread' | 'ref_ai_chat_message' | 'multiref_ai_chat_message' | 'multiref_agent_site' | 'multiref_action' | 'multiref_comment' | 'multiref_contact' | 'multiref_label' | 'multiref_thread' | 'multiref_messages' | 'multiref_document' | 'multiref_identity' | 'multiref_organization' | 'multiref_engagement' | 'multiref_attendee' | 'multiref_meeting_entry' | 'multiref_read_receipt' | 'multiref_account' | 'multiref_source' required

Storage type for a property definition. Determines which per-type table holds the values, and which display formats the property can take.

team_idstring uuid nullable
crm_idstring uuid nullable

Identifier of the list this definition is scoped to, when applicable.

list_idstring uuid nullable

Canonical identifier of the list this definition is scoped to.

nativeboolean
lockedboolean
alias'app_stage' | 'null' nullable

Reserved alias naming this definition, or null. app_stage marks the list pipeline stage definition. Resolve stages by this field rather than by name, slug, or team_id: a superseded native status definition can coexist with the pipeline one and is otherwise identical on the wire.

requiredboolean

When true, records of this object type must carry a non-empty value for this property on create, and a patch may not clear it.

role_idstring uuid nullable

The property's display format. Always populated on definitions created through this API; a null here means the definition predates that and will render as an unknown format until it is patched.