Skip to content
Go to Micro

Prism

ModelsExpand Collapse
PrismObjectProperties object { default, list }
default: optional map[unknown]

Properties keyed by property slug. Values can be strings, numbers, booleans, arrays, or null. For select/multiselect properties, values may be option slugs or option UUIDs on write; option slugs are returned on read.

list: optional unknown

PrismProperties

Get metadata properties by object type
GET/v2/prism/{teamId}/{objectType}/properties
Get metadata properties
GET/v2/prism/{teamId}/properties
Create a property definition
POST/v2/prism/{teamId}/{objectType}/properties
Update a property definition
PATCH/v2/prism/{teamId}/{objectType}/properties/{propertyId}
Delete a property definition
DELETE/v2/prism/{teamId}/{objectType}/properties/{propertyId}
ModelsExpand Collapse
PropertyDefinition object { id, slug, type, 10 more }

Definition for a single property on an object type. Definitions with team_id and crm_id null are shared defaults; values may be scoped to a team and/or list (crm).

id: string
formatuuid
slug: string
type: "num" or "str" or "bool" or 34 more

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

One of the following:
"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"
alias: optional "app_stage"

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.

crm_id: optional string

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

formatuuid
list_id: optional string

Canonical identifier of the list this definition is scoped to.

formatuuid
locked: optional boolean
name: optional string
native: optional boolean
options: optional array of PropertyOption { id, slug, color_scheme, 7 more }

Present only for select_str and multiselect_str types.

id: string
formatuuid
slug: string
color_scheme: optional string
Deprecatedcrm_id: optional string
formatuuid
description: optional string
icon: optional string
list_id: optional string
formatuuid
option_group: optional string
sort_index: optional number
value: optional string

Display value for the option.

required: optional boolean

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_id: optional string

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.

formatuuid
team_id: optional string
formatuuid
PropertyDefinitionCreate object { name, type, icon, 5 more }

New property definition. Check for an existing property first (GET the same path with term) and reuse it rather than defining a near-duplicate — writes address properties by slug, so two definitions sharing a slug leave no addressable winner. For select_str/multiselect_str types you may pre-seed choices via options.

name: string

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.

type: "num" or "str" or "bool" or 34 more

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

One of the following:
"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"
icon: optional string
list_id: optional string

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.

formatuuid
options: optional array of object { value, color_scheme, description, 4 more }

Only honored when type is select_str or multiselect_str.

value: string
color_scheme: optional string
description: optional string
icon: optional string
option_group: optional string
slug: optional string
sort_index: optional number
required: optional boolean

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

role_id: optional string

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.

formatuuid
slug: optional string

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.

PropertyDefinitionPatch object { type, enabled, icon, 3 more }

Partial update of a property definition. Only name, icon, enabled, and required are editable. type identifies the per-type table to write.

type: "num" or "str" or "bool" or 34 more

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

One of the following:
"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"
enabled: optional boolean
icon: optional string
list_id: optional string
formatuuid
name: optional string
required: optional boolean
PropertyListResponse = map[unknown]

Property definitions keyed by object type, then by property definition id (UUID). When the request scopes to a single object type, only that key is present.

PropertyListAllResponse = map[unknown]

Property definitions keyed by object type, then by property definition id (UUID). When the request scopes to a single object type, only that key is present.

PrismPropertiesOptions

Add an option to a select property
POST/v2/prism/{teamId}/{objectType}/properties/{propertyId}/options
Update a property option
PATCH/v2/prism/{teamId}/{objectType}/properties/{propertyId}/options/{optionId}
Delete a property option
DELETE/v2/prism/{teamId}/{objectType}/properties/{propertyId}/options/{optionId}
ModelsExpand Collapse
PropertyOption object { id, slug, color_scheme, 7 more }

An enabled option for a select_str or multiselect_str property definition.

id: string
formatuuid
slug: string
color_scheme: optional string
Deprecatedcrm_id: optional string
formatuuid
description: optional string
icon: optional string
list_id: optional string
formatuuid
option_group: optional string
sort_index: optional number
value: optional string

Display value for the option.

PropertyOptionCreate object { type, value, color_scheme, 6 more }

New option for a select_str or multiselect_str property. type identifies the per-type option table to write.

type: "num" or "str" or "bool" or 34 more

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

One of the following:
"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"
value: string

Display value for the option.

color_scheme: optional string
description: optional string
icon: optional string
list_id: optional string

Scope the option to a specific list/app.

formatuuid
option_group: optional string
slug: optional string

URL-safe identifier. Defaults to a slugified value.

sort_index: optional number
PropertyOptionPatch object { type, color_scheme, description, 7 more }

Partial update of a property option. type identifies the per-type option table to write.

type: "num" or "str" or "bool" or 34 more

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

One of the following:
"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"
color_scheme: optional string
description: optional string
enabled: optional boolean
icon: optional string
list_id: optional string
formatuuid
option_group: optional string
slug: optional string
sort_index: optional number
value: optional string

PrismImports

Get the status of an import job
GET/v2/prism/{teamId}/imports/{jobId}
ModelsExpand Collapse
ImportGetResponse object { job_id, status, total, 8 more }

Status snapshot of an import job. Same shape used by the POST /import response and by GET /imports/{jobId}.

job_id: string

Null for sync imports (results inlined). Set for async imports.

status: "complete" or "processing" or "failed"
One of the following:
"complete"
"processing"
"failed"
total: number

Total number of rows in the import.

created_at: optional string
formatdate-time
error: optional object { code, message }

Set when status=failed; describes the job-level failure (not per-row).

code: optional string
message: optional string
expires_at: optional string
formatdate-time
failed: optional number
processed: optional number

Rows that have been attempted (succeeded + failed).

results: optional array of object { id, created, error, 3 more }

Per-row outcomes. Always present for sync imports; populated for async imports once the job reaches complete.

id: optional string
formatuuid
created: optional boolean
error: optional object { code, message }
code: optional string
message: optional string
existing: optional boolean

True if the row matched an existing record via the dedupe key.

input_index: optional number

Zero-based position of this row in the request.

minimum0
updated: optional boolean

True if a matching record was updated.

succeeded: optional number
updated_at: optional string
formatdate-time

PrismObjects

PrismObjectsContacts

Create object
POST/v2/prism/{teamId}/contact
List records of an object type
GET/v2/prism/{teamId}/contact
Get object
GET/v2/prism/{teamId}/contact/{contactId}
Patch object
PATCH/v2/prism/{teamId}/contact/{contactId}
Delete object
DELETE/v2/prism/{teamId}/contact/{contactId}
Query
POST/v2/prism/{teamId}/contact/query
Total record count for an object type
GET/v2/prism/{teamId}/contact/count
Find a record by property value
GET/v2/prism/{teamId}/contact/by/{slug}/{value}
Upsert by property value
PUT/v2/prism/{teamId}/contact/by/{slug}/{value}
Import objects
POST/v2/prism/{teamId}/contact/import
Bulk update records (partial success)
POST/v2/prism/{teamId}/contact/batch/update
Bulk delete records (partial success)
POST/v2/prism/{teamId}/contact/batch/delete
Duplicate object
POST/v2/prism/{teamId}/contact/{contactId}/duplicate
Restore object
POST/v2/prism/{teamId}/contact/{contactId}/restore
ModelsExpand Collapse
Contact object { default, list }
default: optional map[unknown]

Properties keyed by property slug. Values can be strings, numbers, booleans, arrays, or null. For select/multiselect properties, values may be option slugs or option UUIDs on write; option slugs are returned on read.

list: optional unknown
ContactCreateResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
ContactListResponse object { data, has_more, next_cursor, total }
data: array of object { id, is_user_object, properties, source }
id: string
formatuuid
is_user_object: optional boolean
properties: optional map[unknown]

Selected property values keyed by property slug. For select/multiselect properties, option slugs are returned. For reference properties, values are nested { id, properties } objects.

source: optional array of string
has_more: boolean

Accurate end-of-data signal — false on the last page, never forces clients to overshoot.

next_cursor: optional string
total: optional number

Populated only when ?include_total=true was passed.

ContactGetResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
ContactUpdateResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
ContactQueryResponse object { data, has_more, next_cursor, total }
data: array of object { id, is_user_object, properties, source }
id: string
formatuuid
is_user_object: optional boolean
properties: optional map[unknown]

Selected property values keyed by property slug. For select/multiselect properties, option slugs are returned. For reference properties, values are nested { id, properties } objects.

source: optional array of string
has_more: boolean

Accurate end-of-data signal. False when this page contains the last record; true only when at least one more record exists. (Implementation note: the server fetches one extra row internally to determine this — clients never need to overshoot to discover the end.)

next_cursor: optional string

Opaque cursor pointing at the next page. Pass it back unchanged in the request body (cursor) of the next call. Null when has_more is false.

total: optional number

Only populated when the request set include_total: true. Total number of records matching the query, ignoring pagination. Opt-in because it costs an additional pass over the result set.

ContactCountResponse object { total }
total: number

Number of records matching the access scope.

ContactFindResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
ContactUpsertResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
ContactBulkCreateResponse object { job_id, status, total, 8 more }

Status snapshot of an import job. Same shape used by the POST /import response and by GET /imports/{jobId}.

job_id: string

Null for sync imports (results inlined). Set for async imports.

status: "complete" or "processing" or "failed"
One of the following:
"complete"
"processing"
"failed"
total: number

Total number of rows in the import.

created_at: optional string
formatdate-time
error: optional object { code, message }

Set when status=failed; describes the job-level failure (not per-row).

code: optional string
message: optional string
expires_at: optional string
formatdate-time
failed: optional number
processed: optional number

Rows that have been attempted (succeeded + failed).

results: optional array of object { id, created, error, 3 more }

Per-row outcomes. Always present for sync imports; populated for async imports once the job reaches complete.

id: optional string
formatuuid
created: optional boolean
error: optional object { code, message }
code: optional string
message: optional string
existing: optional boolean

True if the row matched an existing record via the dedupe key.

input_index: optional number

Zero-based position of this row in the request.

minimum0
updated: optional boolean

True if a matching record was updated.

succeeded: optional number
updated_at: optional string
formatdate-time
ContactBulkUpdateResponse object { results, summary }

Partial-success bulk operation result. Inspect results[].status per item; the operation as a whole returns 200 even if some items failed.

results: array of object { id, status, error, record }
id: string

Item ID, or null if the input was unparseable.

status: "ok" or "error"
One of the following:
"ok"
"error"
error: optional object { code, message }
code: optional string
message: optional string
record: optional object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
summary: object { failed, succeeded, total }
failed: number
succeeded: number
total: number
ContactBulkDeleteResponse object { results, summary }

Partial-success bulk operation result. Inspect results[].status per item; the operation as a whole returns 200 even if some items failed.

results: array of object { id, status, error, record }
id: string

Item ID, or null if the input was unparseable.

status: "ok" or "error"
One of the following:
"ok"
"error"
error: optional object { code, message }
code: optional string
message: optional string
record: optional object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
summary: object { failed, succeeded, total }
failed: number
succeeded: number
total: number
ContactDuplicateResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
ContactRestoreResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown

PrismObjectsOrganizations

Create object
POST/v2/prism/{teamId}/organization
List records of an object type
GET/v2/prism/{teamId}/organization
Get object
GET/v2/prism/{teamId}/organization/{organizationId}
Patch object
PATCH/v2/prism/{teamId}/organization/{organizationId}
Delete object
DELETE/v2/prism/{teamId}/organization/{organizationId}
Query
POST/v2/prism/{teamId}/organization/query
Total record count for an object type
GET/v2/prism/{teamId}/organization/count
Find a record by property value
GET/v2/prism/{teamId}/organization/by/{slug}/{value}
Upsert by property value
PUT/v2/prism/{teamId}/organization/by/{slug}/{value}
Import objects
POST/v2/prism/{teamId}/organization/import
Bulk update records (partial success)
POST/v2/prism/{teamId}/organization/batch/update
Bulk delete records (partial success)
POST/v2/prism/{teamId}/organization/batch/delete
Duplicate object
POST/v2/prism/{teamId}/organization/{organizationId}/duplicate
Restore object
POST/v2/prism/{teamId}/organization/{organizationId}/restore
ModelsExpand Collapse
Organization object { default, list }
default: optional map[unknown]

Properties keyed by property slug. Values can be strings, numbers, booleans, arrays, or null. For select/multiselect properties, values may be option slugs or option UUIDs on write; option slugs are returned on read.

list: optional unknown
OrganizationCreateResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
OrganizationListResponse object { data, has_more, next_cursor, total }
data: array of object { id, is_user_object, properties, source }
id: string
formatuuid
is_user_object: optional boolean
properties: optional map[unknown]

Selected property values keyed by property slug. For select/multiselect properties, option slugs are returned. For reference properties, values are nested { id, properties } objects.

source: optional array of string
has_more: boolean

Accurate end-of-data signal — false on the last page, never forces clients to overshoot.

next_cursor: optional string
total: optional number

Populated only when ?include_total=true was passed.

OrganizationGetResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
OrganizationUpdateResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
OrganizationQueryResponse object { data, has_more, next_cursor, total }
data: array of object { id, is_user_object, properties, source }
id: string
formatuuid
is_user_object: optional boolean
properties: optional map[unknown]

Selected property values keyed by property slug. For select/multiselect properties, option slugs are returned. For reference properties, values are nested { id, properties } objects.

source: optional array of string
has_more: boolean

Accurate end-of-data signal. False when this page contains the last record; true only when at least one more record exists. (Implementation note: the server fetches one extra row internally to determine this — clients never need to overshoot to discover the end.)

next_cursor: optional string

Opaque cursor pointing at the next page. Pass it back unchanged in the request body (cursor) of the next call. Null when has_more is false.

total: optional number

Only populated when the request set include_total: true. Total number of records matching the query, ignoring pagination. Opt-in because it costs an additional pass over the result set.

OrganizationCountResponse object { total }
total: number

Number of records matching the access scope.

OrganizationFindResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
OrganizationUpsertResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
OrganizationBulkCreateResponse object { job_id, status, total, 8 more }

Status snapshot of an import job. Same shape used by the POST /import response and by GET /imports/{jobId}.

job_id: string

Null for sync imports (results inlined). Set for async imports.

status: "complete" or "processing" or "failed"
One of the following:
"complete"
"processing"
"failed"
total: number

Total number of rows in the import.

created_at: optional string
formatdate-time
error: optional object { code, message }

Set when status=failed; describes the job-level failure (not per-row).

code: optional string
message: optional string
expires_at: optional string
formatdate-time
failed: optional number
processed: optional number

Rows that have been attempted (succeeded + failed).

results: optional array of object { id, created, error, 3 more }

Per-row outcomes. Always present for sync imports; populated for async imports once the job reaches complete.

id: optional string
formatuuid
created: optional boolean
error: optional object { code, message }
code: optional string
message: optional string
existing: optional boolean

True if the row matched an existing record via the dedupe key.

input_index: optional number

Zero-based position of this row in the request.

minimum0
updated: optional boolean

True if a matching record was updated.

succeeded: optional number
updated_at: optional string
formatdate-time
OrganizationBulkUpdateResponse object { results, summary }

Partial-success bulk operation result. Inspect results[].status per item; the operation as a whole returns 200 even if some items failed.

results: array of object { id, status, error, record }
id: string

Item ID, or null if the input was unparseable.

status: "ok" or "error"
One of the following:
"ok"
"error"
error: optional object { code, message }
code: optional string
message: optional string
record: optional object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
summary: object { failed, succeeded, total }
failed: number
succeeded: number
total: number
OrganizationBulkDeleteResponse object { results, summary }

Partial-success bulk operation result. Inspect results[].status per item; the operation as a whole returns 200 even if some items failed.

results: array of object { id, status, error, record }
id: string

Item ID, or null if the input was unparseable.

status: "ok" or "error"
One of the following:
"ok"
"error"
error: optional object { code, message }
code: optional string
message: optional string
record: optional object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
summary: object { failed, succeeded, total }
failed: number
succeeded: number
total: number
OrganizationDuplicateResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
OrganizationRestoreResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown

PrismObjectsIdentities

Create object
POST/v2/prism/{teamId}/identity
List records of an object type
GET/v2/prism/{teamId}/identity
Get object
GET/v2/prism/{teamId}/identity/{identityId}
Patch object
PATCH/v2/prism/{teamId}/identity/{identityId}
Delete object
DELETE/v2/prism/{teamId}/identity/{identityId}
Query
POST/v2/prism/{teamId}/identity/query
Total record count for an object type
GET/v2/prism/{teamId}/identity/count
Find a record by property value
GET/v2/prism/{teamId}/identity/by/{slug}/{value}
Upsert by property value
PUT/v2/prism/{teamId}/identity/by/{slug}/{value}
Import objects
POST/v2/prism/{teamId}/identity/import
Bulk update records (partial success)
POST/v2/prism/{teamId}/identity/batch/update
Bulk delete records (partial success)
POST/v2/prism/{teamId}/identity/batch/delete
Duplicate object
POST/v2/prism/{teamId}/identity/{identityId}/duplicate
Restore object
POST/v2/prism/{teamId}/identity/{identityId}/restore
ModelsExpand Collapse
Identity object { default, list }
default: optional map[unknown]

Properties keyed by property slug. Values can be strings, numbers, booleans, arrays, or null. For select/multiselect properties, values may be option slugs or option UUIDs on write; option slugs are returned on read.

list: optional unknown
IdentityCreateResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
IdentityListResponse object { data, has_more, next_cursor, total }
data: array of object { id, is_user_object, properties, source }
id: string
formatuuid
is_user_object: optional boolean
properties: optional map[unknown]

Selected property values keyed by property slug. For select/multiselect properties, option slugs are returned. For reference properties, values are nested { id, properties } objects.

source: optional array of string
has_more: boolean

Accurate end-of-data signal — false on the last page, never forces clients to overshoot.

next_cursor: optional string
total: optional number

Populated only when ?include_total=true was passed.

IdentityGetResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
IdentityUpdateResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
IdentityQueryResponse object { data, has_more, next_cursor, total }
data: array of object { id, is_user_object, properties, source }
id: string
formatuuid
is_user_object: optional boolean
properties: optional map[unknown]

Selected property values keyed by property slug. For select/multiselect properties, option slugs are returned. For reference properties, values are nested { id, properties } objects.

source: optional array of string
has_more: boolean

Accurate end-of-data signal. False when this page contains the last record; true only when at least one more record exists. (Implementation note: the server fetches one extra row internally to determine this — clients never need to overshoot to discover the end.)

next_cursor: optional string

Opaque cursor pointing at the next page. Pass it back unchanged in the request body (cursor) of the next call. Null when has_more is false.

total: optional number

Only populated when the request set include_total: true. Total number of records matching the query, ignoring pagination. Opt-in because it costs an additional pass over the result set.

IdentityCountResponse object { total }
total: number

Number of records matching the access scope.

IdentityFindResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
IdentityUpsertResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
IdentityBulkCreateResponse object { job_id, status, total, 8 more }

Status snapshot of an import job. Same shape used by the POST /import response and by GET /imports/{jobId}.

job_id: string

Null for sync imports (results inlined). Set for async imports.

status: "complete" or "processing" or "failed"
One of the following:
"complete"
"processing"
"failed"
total: number

Total number of rows in the import.

created_at: optional string
formatdate-time
error: optional object { code, message }

Set when status=failed; describes the job-level failure (not per-row).

code: optional string
message: optional string
expires_at: optional string
formatdate-time
failed: optional number
processed: optional number

Rows that have been attempted (succeeded + failed).

results: optional array of object { id, created, error, 3 more }

Per-row outcomes. Always present for sync imports; populated for async imports once the job reaches complete.

id: optional string
formatuuid
created: optional boolean
error: optional object { code, message }
code: optional string
message: optional string
existing: optional boolean

True if the row matched an existing record via the dedupe key.

input_index: optional number

Zero-based position of this row in the request.

minimum0
updated: optional boolean

True if a matching record was updated.

succeeded: optional number
updated_at: optional string
formatdate-time
IdentityBulkUpdateResponse object { results, summary }

Partial-success bulk operation result. Inspect results[].status per item; the operation as a whole returns 200 even if some items failed.

results: array of object { id, status, error, record }
id: string

Item ID, or null if the input was unparseable.

status: "ok" or "error"
One of the following:
"ok"
"error"
error: optional object { code, message }
code: optional string
message: optional string
record: optional object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
summary: object { failed, succeeded, total }
failed: number
succeeded: number
total: number
IdentityBulkDeleteResponse object { results, summary }

Partial-success bulk operation result. Inspect results[].status per item; the operation as a whole returns 200 even if some items failed.

results: array of object { id, status, error, record }
id: string

Item ID, or null if the input was unparseable.

status: "ok" or "error"
One of the following:
"ok"
"error"
error: optional object { code, message }
code: optional string
message: optional string
record: optional object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
summary: object { failed, succeeded, total }
failed: number
succeeded: number
total: number
IdentityDuplicateResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
IdentityRestoreResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown

PrismObjectsDeals

Create object
POST/v2/prism/{teamId}/deal
List records of an object type
GET/v2/prism/{teamId}/deal
Get object
GET/v2/prism/{teamId}/deal/{dealId}
Patch object
PATCH/v2/prism/{teamId}/deal/{dealId}
Delete object
DELETE/v2/prism/{teamId}/deal/{dealId}
Query
POST/v2/prism/{teamId}/deal/query
Total record count for an object type
GET/v2/prism/{teamId}/deal/count
Find a record by property value
GET/v2/prism/{teamId}/deal/by/{slug}/{value}
Upsert by property value
PUT/v2/prism/{teamId}/deal/by/{slug}/{value}
Import objects
POST/v2/prism/{teamId}/deal/import
Bulk update records (partial success)
POST/v2/prism/{teamId}/deal/batch/update
Bulk delete records (partial success)
POST/v2/prism/{teamId}/deal/batch/delete
Duplicate object
POST/v2/prism/{teamId}/deal/{dealId}/duplicate
Restore object
POST/v2/prism/{teamId}/deal/{dealId}/restore
ModelsExpand Collapse
Deal object { default, list }
default: optional map[unknown]

Properties keyed by property slug. Values can be strings, numbers, booleans, arrays, or null. For select/multiselect properties, values may be option slugs or option UUIDs on write; option slugs are returned on read.

list: optional unknown
DealCreateResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
DealListResponse object { data, has_more, next_cursor, total }
data: array of object { id, is_user_object, properties, source }
id: string
formatuuid
is_user_object: optional boolean
properties: optional map[unknown]

Selected property values keyed by property slug. For select/multiselect properties, option slugs are returned. For reference properties, values are nested { id, properties } objects.

source: optional array of string
has_more: boolean

Accurate end-of-data signal — false on the last page, never forces clients to overshoot.

next_cursor: optional string
total: optional number

Populated only when ?include_total=true was passed.

DealGetResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
DealUpdateResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
DealQueryResponse object { data, has_more, next_cursor, total }
data: array of object { id, is_user_object, properties, source }
id: string
formatuuid
is_user_object: optional boolean
properties: optional map[unknown]

Selected property values keyed by property slug. For select/multiselect properties, option slugs are returned. For reference properties, values are nested { id, properties } objects.

source: optional array of string
has_more: boolean

Accurate end-of-data signal. False when this page contains the last record; true only when at least one more record exists. (Implementation note: the server fetches one extra row internally to determine this — clients never need to overshoot to discover the end.)

next_cursor: optional string

Opaque cursor pointing at the next page. Pass it back unchanged in the request body (cursor) of the next call. Null when has_more is false.

total: optional number

Only populated when the request set include_total: true. Total number of records matching the query, ignoring pagination. Opt-in because it costs an additional pass over the result set.

DealCountResponse object { total }
total: number

Number of records matching the access scope.

DealFindResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
DealUpsertResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
DealBulkCreateResponse object { job_id, status, total, 8 more }

Status snapshot of an import job. Same shape used by the POST /import response and by GET /imports/{jobId}.

job_id: string

Null for sync imports (results inlined). Set for async imports.

status: "complete" or "processing" or "failed"
One of the following:
"complete"
"processing"
"failed"
total: number

Total number of rows in the import.

created_at: optional string
formatdate-time
error: optional object { code, message }

Set when status=failed; describes the job-level failure (not per-row).

code: optional string
message: optional string
expires_at: optional string
formatdate-time
failed: optional number
processed: optional number

Rows that have been attempted (succeeded + failed).

results: optional array of object { id, created, error, 3 more }

Per-row outcomes. Always present for sync imports; populated for async imports once the job reaches complete.

id: optional string
formatuuid
created: optional boolean
error: optional object { code, message }
code: optional string
message: optional string
existing: optional boolean

True if the row matched an existing record via the dedupe key.

input_index: optional number

Zero-based position of this row in the request.

minimum0
updated: optional boolean

True if a matching record was updated.

succeeded: optional number
updated_at: optional string
formatdate-time
DealBulkUpdateResponse object { results, summary }

Partial-success bulk operation result. Inspect results[].status per item; the operation as a whole returns 200 even if some items failed.

results: array of object { id, status, error, record }
id: string

Item ID, or null if the input was unparseable.

status: "ok" or "error"
One of the following:
"ok"
"error"
error: optional object { code, message }
code: optional string
message: optional string
record: optional object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
summary: object { failed, succeeded, total }
failed: number
succeeded: number
total: number
DealBulkDeleteResponse object { results, summary }

Partial-success bulk operation result. Inspect results[].status per item; the operation as a whole returns 200 even if some items failed.

results: array of object { id, status, error, record }
id: string

Item ID, or null if the input was unparseable.

status: "ok" or "error"
One of the following:
"ok"
"error"
error: optional object { code, message }
code: optional string
message: optional string
record: optional object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
summary: object { failed, succeeded, total }
failed: number
succeeded: number
total: number
DealDuplicateResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
DealRestoreResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown

PrismObjectsDealsGrant

Get grant
GET/v2/prism/{teamId}/deal/{dealId}/grant
Update grant
PUT/v2/prism/{teamId}/deal/{dealId}/grant
ModelsExpand Collapse
GrantGetResponse object { team_group_id, team_id, user_id }
team_group_id: optional array of map["a" or "r" or "w"]
One of the following:
"a"
"r"
"w"
team_id: optional map["a" or "r" or "w"]
One of the following:
"a"
"r"
"w"
user_id: optional array of map["a" or "r" or "w"]
One of the following:
"a"
"r"
"w"
GrantUpdateResponse object { team_group_id, team_id, user_id }
team_group_id: optional array of map["a" or "r" or "w"]
One of the following:
"a"
"r"
"w"
team_id: optional map["a" or "r" or "w"]
One of the following:
"a"
"r"
"w"
user_id: optional array of map["a" or "r" or "w"]
One of the following:
"a"
"r"
"w"

PrismObjectsActions

Create object
POST/v2/prism/{teamId}/action
List records of an object type
GET/v2/prism/{teamId}/action
Get object
GET/v2/prism/{teamId}/action/{actionId}
Patch object
PATCH/v2/prism/{teamId}/action/{actionId}
Delete object
DELETE/v2/prism/{teamId}/action/{actionId}
Query
POST/v2/prism/{teamId}/action/query
Total record count for an object type
GET/v2/prism/{teamId}/action/count
Find a record by property value
GET/v2/prism/{teamId}/action/by/{slug}/{value}
Upsert by property value
PUT/v2/prism/{teamId}/action/by/{slug}/{value}
Import objects
POST/v2/prism/{teamId}/action/import
Bulk update records (partial success)
POST/v2/prism/{teamId}/action/batch/update
Bulk delete records (partial success)
POST/v2/prism/{teamId}/action/batch/delete
Duplicate object
POST/v2/prism/{teamId}/action/{actionId}/duplicate
Restore object
POST/v2/prism/{teamId}/action/{actionId}/restore
ModelsExpand Collapse
Action object { default, list }
default: optional map[unknown]

Properties keyed by property slug. Values can be strings, numbers, booleans, arrays, or null. For select/multiselect properties, values may be option slugs or option UUIDs on write; option slugs are returned on read.

list: optional unknown
ActionCreateResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
ActionListResponse object { data, has_more, next_cursor, total }
data: array of object { id, is_user_object, properties, source }
id: string
formatuuid
is_user_object: optional boolean
properties: optional map[unknown]

Selected property values keyed by property slug. For select/multiselect properties, option slugs are returned. For reference properties, values are nested { id, properties } objects.

source: optional array of string
has_more: boolean

Accurate end-of-data signal — false on the last page, never forces clients to overshoot.

next_cursor: optional string
total: optional number

Populated only when ?include_total=true was passed.

ActionGetResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
ActionUpdateResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
ActionQueryResponse object { data, has_more, next_cursor, total }
data: array of object { id, is_user_object, properties, source }
id: string
formatuuid
is_user_object: optional boolean
properties: optional map[unknown]

Selected property values keyed by property slug. For select/multiselect properties, option slugs are returned. For reference properties, values are nested { id, properties } objects.

source: optional array of string
has_more: boolean

Accurate end-of-data signal. False when this page contains the last record; true only when at least one more record exists. (Implementation note: the server fetches one extra row internally to determine this — clients never need to overshoot to discover the end.)

next_cursor: optional string

Opaque cursor pointing at the next page. Pass it back unchanged in the request body (cursor) of the next call. Null when has_more is false.

total: optional number

Only populated when the request set include_total: true. Total number of records matching the query, ignoring pagination. Opt-in because it costs an additional pass over the result set.

ActionCountResponse object { total }
total: number

Number of records matching the access scope.

ActionFindResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
ActionUpsertResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
ActionBulkCreateResponse object { job_id, status, total, 8 more }

Status snapshot of an import job. Same shape used by the POST /import response and by GET /imports/{jobId}.

job_id: string

Null for sync imports (results inlined). Set for async imports.

status: "complete" or "processing" or "failed"
One of the following:
"complete"
"processing"
"failed"
total: number

Total number of rows in the import.

created_at: optional string
formatdate-time
error: optional object { code, message }

Set when status=failed; describes the job-level failure (not per-row).

code: optional string
message: optional string
expires_at: optional string
formatdate-time
failed: optional number
processed: optional number

Rows that have been attempted (succeeded + failed).

results: optional array of object { id, created, error, 3 more }

Per-row outcomes. Always present for sync imports; populated for async imports once the job reaches complete.

id: optional string
formatuuid
created: optional boolean
error: optional object { code, message }
code: optional string
message: optional string
existing: optional boolean

True if the row matched an existing record via the dedupe key.

input_index: optional number

Zero-based position of this row in the request.

minimum0
updated: optional boolean

True if a matching record was updated.

succeeded: optional number
updated_at: optional string
formatdate-time
ActionBulkUpdateResponse object { results, summary }

Partial-success bulk operation result. Inspect results[].status per item; the operation as a whole returns 200 even if some items failed.

results: array of object { id, status, error, record }
id: string

Item ID, or null if the input was unparseable.

status: "ok" or "error"
One of the following:
"ok"
"error"
error: optional object { code, message }
code: optional string
message: optional string
record: optional object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
summary: object { failed, succeeded, total }
failed: number
succeeded: number
total: number
ActionBulkDeleteResponse object { results, summary }

Partial-success bulk operation result. Inspect results[].status per item; the operation as a whole returns 200 even if some items failed.

results: array of object { id, status, error, record }
id: string

Item ID, or null if the input was unparseable.

status: "ok" or "error"
One of the following:
"ok"
"error"
error: optional object { code, message }
code: optional string
message: optional string
record: optional object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
summary: object { failed, succeeded, total }
failed: number
succeeded: number
total: number
ActionDuplicateResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
ActionRestoreResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown

PrismObjectsActionsGrant

Get grant
GET/v2/prism/{teamId}/action/{actionId}/grant
Update grant
PUT/v2/prism/{teamId}/action/{actionId}/grant
ModelsExpand Collapse
GrantGetResponse object { team_group_id, team_id, user_id }
team_group_id: optional array of map["a" or "r" or "w"]
One of the following:
"a"
"r"
"w"
team_id: optional map["a" or "r" or "w"]
One of the following:
"a"
"r"
"w"
user_id: optional array of map["a" or "r" or "w"]
One of the following:
"a"
"r"
"w"
GrantUpdateResponse object { team_group_id, team_id, user_id }
team_group_id: optional array of map["a" or "r" or "w"]
One of the following:
"a"
"r"
"w"
team_id: optional map["a" or "r" or "w"]
One of the following:
"a"
"r"
"w"
user_id: optional array of map["a" or "r" or "w"]
One of the following:
"a"
"r"
"w"

PrismObjectsDocuments

Create object
POST/v2/prism/{teamId}/document
List records of an object type
GET/v2/prism/{teamId}/document
Get object
GET/v2/prism/{teamId}/document/{documentId}
Patch object
PATCH/v2/prism/{teamId}/document/{documentId}
Delete object
DELETE/v2/prism/{teamId}/document/{documentId}
Query
POST/v2/prism/{teamId}/document/query
Total record count for an object type
GET/v2/prism/{teamId}/document/count
Find a record by property value
GET/v2/prism/{teamId}/document/by/{slug}/{value}
Upsert by property value
PUT/v2/prism/{teamId}/document/by/{slug}/{value}
Import objects
POST/v2/prism/{teamId}/document/import
Bulk update records (partial success)
POST/v2/prism/{teamId}/document/batch/update
Bulk delete records (partial success)
POST/v2/prism/{teamId}/document/batch/delete
Duplicate object
POST/v2/prism/{teamId}/document/{documentId}/duplicate
Restore object
POST/v2/prism/{teamId}/document/{documentId}/restore
ModelsExpand Collapse
Document object { default, list }
default: optional map[unknown]

Properties keyed by property slug. Values can be strings, numbers, booleans, arrays, or null. For select/multiselect properties, values may be option slugs or option UUIDs on write; option slugs are returned on read.

list: optional unknown
DocumentCreateResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
DocumentListResponse object { data, has_more, next_cursor, total }
data: array of object { id, is_user_object, properties, source }
id: string
formatuuid
is_user_object: optional boolean
properties: optional map[unknown]

Selected property values keyed by property slug. For select/multiselect properties, option slugs are returned. For reference properties, values are nested { id, properties } objects.

source: optional array of string
has_more: boolean

Accurate end-of-data signal — false on the last page, never forces clients to overshoot.

next_cursor: optional string
total: optional number

Populated only when ?include_total=true was passed.

DocumentGetResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
DocumentUpdateResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
DocumentQueryResponse object { data, has_more, next_cursor, total }
data: array of object { id, is_user_object, properties, source }
id: string
formatuuid
is_user_object: optional boolean
properties: optional map[unknown]

Selected property values keyed by property slug. For select/multiselect properties, option slugs are returned. For reference properties, values are nested { id, properties } objects.

source: optional array of string
has_more: boolean

Accurate end-of-data signal. False when this page contains the last record; true only when at least one more record exists. (Implementation note: the server fetches one extra row internally to determine this — clients never need to overshoot to discover the end.)

next_cursor: optional string

Opaque cursor pointing at the next page. Pass it back unchanged in the request body (cursor) of the next call. Null when has_more is false.

total: optional number

Only populated when the request set include_total: true. Total number of records matching the query, ignoring pagination. Opt-in because it costs an additional pass over the result set.

DocumentCountResponse object { total }
total: number

Number of records matching the access scope.

DocumentFindResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
DocumentUpsertResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
DocumentBulkCreateResponse object { job_id, status, total, 8 more }

Status snapshot of an import job. Same shape used by the POST /import response and by GET /imports/{jobId}.

job_id: string

Null for sync imports (results inlined). Set for async imports.

status: "complete" or "processing" or "failed"
One of the following:
"complete"
"processing"
"failed"
total: number

Total number of rows in the import.

created_at: optional string
formatdate-time
error: optional object { code, message }

Set when status=failed; describes the job-level failure (not per-row).

code: optional string
message: optional string
expires_at: optional string
formatdate-time
failed: optional number
processed: optional number

Rows that have been attempted (succeeded + failed).

results: optional array of object { id, created, error, 3 more }

Per-row outcomes. Always present for sync imports; populated for async imports once the job reaches complete.

id: optional string
formatuuid
created: optional boolean
error: optional object { code, message }
code: optional string
message: optional string
existing: optional boolean

True if the row matched an existing record via the dedupe key.

input_index: optional number

Zero-based position of this row in the request.

minimum0
updated: optional boolean

True if a matching record was updated.

succeeded: optional number
updated_at: optional string
formatdate-time
DocumentBulkUpdateResponse object { results, summary }

Partial-success bulk operation result. Inspect results[].status per item; the operation as a whole returns 200 even if some items failed.

results: array of object { id, status, error, record }
id: string

Item ID, or null if the input was unparseable.

status: "ok" or "error"
One of the following:
"ok"
"error"
error: optional object { code, message }
code: optional string
message: optional string
record: optional object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
summary: object { failed, succeeded, total }
failed: number
succeeded: number
total: number
DocumentBulkDeleteResponse object { results, summary }

Partial-success bulk operation result. Inspect results[].status per item; the operation as a whole returns 200 even if some items failed.

results: array of object { id, status, error, record }
id: string

Item ID, or null if the input was unparseable.

status: "ok" or "error"
One of the following:
"ok"
"error"
error: optional object { code, message }
code: optional string
message: optional string
record: optional object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
summary: object { failed, succeeded, total }
failed: number
succeeded: number
total: number
DocumentDuplicateResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
DocumentRestoreResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown

PrismObjectsDocumentsGrant

Get grant
GET/v2/prism/{teamId}/document/{documentId}/grant
Update grant
PUT/v2/prism/{teamId}/document/{documentId}/grant
ModelsExpand Collapse
GrantGetResponse object { team_group_id, team_id, user_id }
team_group_id: optional array of map["a" or "r" or "w"]
One of the following:
"a"
"r"
"w"
team_id: optional map["a" or "r" or "w"]
One of the following:
"a"
"r"
"w"
user_id: optional array of map["a" or "r" or "w"]
One of the following:
"a"
"r"
"w"
GrantUpdateResponse object { team_group_id, team_id, user_id }
team_group_id: optional array of map["a" or "r" or "w"]
One of the following:
"a"
"r"
"w"
team_id: optional map["a" or "r" or "w"]
One of the following:
"a"
"r"
"w"
user_id: optional array of map["a" or "r" or "w"]
One of the following:
"a"
"r"
"w"

PrismObjectsEvents

Create object
POST/v2/prism/{teamId}/event
List records of an object type
GET/v2/prism/{teamId}/event
Get object
GET/v2/prism/{teamId}/event/{eventId}
Patch object
PATCH/v2/prism/{teamId}/event/{eventId}
Delete object
DELETE/v2/prism/{teamId}/event/{eventId}
Query
POST/v2/prism/{teamId}/event/query
Total record count for an object type
GET/v2/prism/{teamId}/event/count
Find a record by property value
GET/v2/prism/{teamId}/event/by/{slug}/{value}
Upsert by property value
PUT/v2/prism/{teamId}/event/by/{slug}/{value}
Duplicate object
POST/v2/prism/{teamId}/event/{eventId}/duplicate
Restore object
POST/v2/prism/{teamId}/event/{eventId}/restore
ModelsExpand Collapse
Event object { default, list }
default: optional map[unknown]

Properties keyed by property slug. Values can be strings, numbers, booleans, arrays, or null. For select/multiselect properties, values may be option slugs or option UUIDs on write; option slugs are returned on read.

list: optional unknown
EventCreateResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
EventListResponse object { data, has_more, next_cursor, total }
data: array of object { id, is_user_object, properties, source }
id: string
formatuuid
is_user_object: optional boolean
properties: optional map[unknown]

Selected property values keyed by property slug. For select/multiselect properties, option slugs are returned. For reference properties, values are nested { id, properties } objects.

source: optional array of string
has_more: boolean

Accurate end-of-data signal — false on the last page, never forces clients to overshoot.

next_cursor: optional string
total: optional number

Populated only when ?include_total=true was passed.

EventGetResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
EventUpdateResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
EventQueryResponse object { data, has_more, next_cursor, total }
data: array of object { id, is_user_object, properties, source }
id: string
formatuuid
is_user_object: optional boolean
properties: optional map[unknown]

Selected property values keyed by property slug. For select/multiselect properties, option slugs are returned. For reference properties, values are nested { id, properties } objects.

source: optional array of string
has_more: boolean

Accurate end-of-data signal. False when this page contains the last record; true only when at least one more record exists. (Implementation note: the server fetches one extra row internally to determine this — clients never need to overshoot to discover the end.)

next_cursor: optional string

Opaque cursor pointing at the next page. Pass it back unchanged in the request body (cursor) of the next call. Null when has_more is false.

total: optional number

Only populated when the request set include_total: true. Total number of records matching the query, ignoring pagination. Opt-in because it costs an additional pass over the result set.

EventCountResponse object { total }
total: number

Number of records matching the access scope.

EventFindResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
EventUpsertResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
EventDuplicateResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
EventRestoreResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown

PrismObjectsEventsGrant

Get grant
GET/v2/prism/{teamId}/event/{eventId}/grant
Update grant
PUT/v2/prism/{teamId}/event/{eventId}/grant
ModelsExpand Collapse
GrantGetResponse object { team_group_id, team_id, user_id }
team_group_id: optional array of map["a" or "r" or "w"]
One of the following:
"a"
"r"
"w"
team_id: optional map["a" or "r" or "w"]
One of the following:
"a"
"r"
"w"
user_id: optional array of map["a" or "r" or "w"]
One of the following:
"a"
"r"
"w"
GrantUpdateResponse object { team_group_id, team_id, user_id }
team_group_id: optional array of map["a" or "r" or "w"]
One of the following:
"a"
"r"
"w"
team_id: optional map["a" or "r" or "w"]
One of the following:
"a"
"r"
"w"
user_id: optional array of map["a" or "r" or "w"]
One of the following:
"a"
"r"
"w"

PrismObjectsEngagements

Create object
POST/v2/prism/{teamId}/engagement
List records of an object type
GET/v2/prism/{teamId}/engagement
Get object
GET/v2/prism/{teamId}/engagement/{engagementId}
Patch object
PATCH/v2/prism/{teamId}/engagement/{engagementId}
Delete object
DELETE/v2/prism/{teamId}/engagement/{engagementId}
Query
POST/v2/prism/{teamId}/engagement/query
Total record count for an object type
GET/v2/prism/{teamId}/engagement/count
Find a record by property value
GET/v2/prism/{teamId}/engagement/by/{slug}/{value}
Upsert by property value
PUT/v2/prism/{teamId}/engagement/by/{slug}/{value}
Import objects
POST/v2/prism/{teamId}/engagement/import
Bulk update records (partial success)
POST/v2/prism/{teamId}/engagement/batch/update
Bulk delete records (partial success)
POST/v2/prism/{teamId}/engagement/batch/delete
Duplicate object
POST/v2/prism/{teamId}/engagement/{engagementId}/duplicate
Restore object
POST/v2/prism/{teamId}/engagement/{engagementId}/restore
ModelsExpand Collapse
Engagement object { default, list }
default: optional map[unknown]

Properties keyed by property slug. Values can be strings, numbers, booleans, arrays, or null. For select/multiselect properties, values may be option slugs or option UUIDs on write; option slugs are returned on read.

list: optional unknown
EngagementCreateResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
EngagementListResponse object { data, has_more, next_cursor, total }
data: array of object { id, is_user_object, properties, source }
id: string
formatuuid
is_user_object: optional boolean
properties: optional map[unknown]

Selected property values keyed by property slug. For select/multiselect properties, option slugs are returned. For reference properties, values are nested { id, properties } objects.

source: optional array of string
has_more: boolean

Accurate end-of-data signal — false on the last page, never forces clients to overshoot.

next_cursor: optional string
total: optional number

Populated only when ?include_total=true was passed.

EngagementGetResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
EngagementUpdateResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
EngagementQueryResponse object { data, has_more, next_cursor, total }
data: array of object { id, is_user_object, properties, source }
id: string
formatuuid
is_user_object: optional boolean
properties: optional map[unknown]

Selected property values keyed by property slug. For select/multiselect properties, option slugs are returned. For reference properties, values are nested { id, properties } objects.

source: optional array of string
has_more: boolean

Accurate end-of-data signal. False when this page contains the last record; true only when at least one more record exists. (Implementation note: the server fetches one extra row internally to determine this — clients never need to overshoot to discover the end.)

next_cursor: optional string

Opaque cursor pointing at the next page. Pass it back unchanged in the request body (cursor) of the next call. Null when has_more is false.

total: optional number

Only populated when the request set include_total: true. Total number of records matching the query, ignoring pagination. Opt-in because it costs an additional pass over the result set.

EngagementCountResponse object { total }
total: number

Number of records matching the access scope.

EngagementFindResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
EngagementUpsertResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
EngagementBulkCreateResponse object { job_id, status, total, 8 more }

Status snapshot of an import job. Same shape used by the POST /import response and by GET /imports/{jobId}.

job_id: string

Null for sync imports (results inlined). Set for async imports.

status: "complete" or "processing" or "failed"
One of the following:
"complete"
"processing"
"failed"
total: number

Total number of rows in the import.

created_at: optional string
formatdate-time
error: optional object { code, message }

Set when status=failed; describes the job-level failure (not per-row).

code: optional string
message: optional string
expires_at: optional string
formatdate-time
failed: optional number
processed: optional number

Rows that have been attempted (succeeded + failed).

results: optional array of object { id, created, error, 3 more }

Per-row outcomes. Always present for sync imports; populated for async imports once the job reaches complete.

id: optional string
formatuuid
created: optional boolean
error: optional object { code, message }
code: optional string
message: optional string
existing: optional boolean

True if the row matched an existing record via the dedupe key.

input_index: optional number

Zero-based position of this row in the request.

minimum0
updated: optional boolean

True if a matching record was updated.

succeeded: optional number
updated_at: optional string
formatdate-time
EngagementBulkUpdateResponse object { results, summary }

Partial-success bulk operation result. Inspect results[].status per item; the operation as a whole returns 200 even if some items failed.

results: array of object { id, status, error, record }
id: string

Item ID, or null if the input was unparseable.

status: "ok" or "error"
One of the following:
"ok"
"error"
error: optional object { code, message }
code: optional string
message: optional string
record: optional object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
summary: object { failed, succeeded, total }
failed: number
succeeded: number
total: number
EngagementBulkDeleteResponse object { results, summary }

Partial-success bulk operation result. Inspect results[].status per item; the operation as a whole returns 200 even if some items failed.

results: array of object { id, status, error, record }
id: string

Item ID, or null if the input was unparseable.

status: "ok" or "error"
One of the following:
"ok"
"error"
error: optional object { code, message }
code: optional string
message: optional string
record: optional object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
summary: object { failed, succeeded, total }
failed: number
succeeded: number
total: number
EngagementDuplicateResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown
EngagementRestoreResponse object { id, default, list }

Object returned by reads (get/create/patch/restore). id is always present.

id: string
formatuuid
default: optional map[unknown]

Properties keyed by property slug.

list: optional unknown

PrismObjectsEngagementsGrant

Get grant
GET/v2/prism/{teamId}/engagement/{engagementId}/grant
Update grant
PUT/v2/prism/{teamId}/engagement/{engagementId}/grant
ModelsExpand Collapse
GrantGetResponse object { team_group_id, team_id, user_id }
team_group_id: optional array of map["a" or "r" or "w"]
One of the following:
"a"
"r"
"w"
team_id: optional map["a" or "r" or "w"]
One of the following:
"a"
"r"
"w"
user_id: optional array of map["a" or "r" or "w"]
One of the following:
"a"
"r"
"w"
GrantUpdateResponse object { team_group_id, team_id, user_id }
team_group_id: optional array of map["a" or "r" or "w"]
One of the following:
"a"
"r"
"w"
team_id: optional map["a" or "r" or "w"]
One of the following:
"a"
"r"
"w"
user_id: optional array of map["a" or "r" or "w"]
One of the following:
"a"
"r"
"w"