Skip to content
Go to Micro

Actions

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. Do not parse it. The current encoding is offset-based (page + limit), so it has the same concurrent-write drift the deprecated page parameter has; treat it as a black box so a future keyset cursor is a drop-in. 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

ActionsGrant

Get grant
GET/v2/prism/{teamId}/action/{actionId}/grant
Update grant
PUT/v2/prism/{teamId}/action/{actionId}/grant
ModelsExpand Collapse
GrantGetResponse object { contact_ids, group_id, identity_ids, 4 more }

The grants on a record. For message, also carries the entity ids of everyone on the message, resolved from its address headers when the grant was written. The id arrays are read-only and are null when participant resolution was unavailable (for example the mailbox had no Gmail token at the time).

contact_ids: optional array of string
group_id: optional map["a" or "r" or "w"]
One of the following:
"a"
"r"
"w"
identity_ids: optional array of string
organization_ids: optional array of string
share_level: optional "metadata" or "full"

How much of the record the grant exposes. metadata shares only the record’s headers and participants; full shares its contents. Currently recorded on the access row and returned on read — it is not yet enforced by the read path. Applies to message grants; ignored for other object types.

One of the following:
"metadata"
"full"
team_id: optional map["a" or "r" or "w"]
One of the following:
"a"
"r"
"w"
user_id: optional map["a" or "r" or "w"]
One of the following:
"a"
"r"
"w"
GrantUpdateResponse object { contact_ids, group_id, identity_ids, 4 more }

The grants on a record. For message, also carries the entity ids of everyone on the message, resolved from its address headers when the grant was written. The id arrays are read-only and are null when participant resolution was unavailable (for example the mailbox had no Gmail token at the time).

contact_ids: optional array of string
group_id: optional map["a" or "r" or "w"]
One of the following:
"a"
"r"
"w"
identity_ids: optional array of string
organization_ids: optional array of string
share_level: optional "metadata" or "full"

How much of the record the grant exposes. metadata shares only the record’s headers and participants; full shares its contents. Currently recorded on the access row and returned on read — it is not yet enforced by the read path. Applies to message grants; ignored for other object types.

One of the following:
"metadata"
"full"
team_id: optional map["a" or "r" or "w"]
One of the following:
"a"
"r"
"w"
user_id: optional map["a" or "r" or "w"]
One of the following:
"a"
"r"
"w"