Skip to content
Go to Micro

Identities

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. 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.

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