Identities
Identities in Prism / Objects — Micro TypeScript reference.
Reference for TypeScript SDK 0.14.0.
Release source · Setup and client configuration
create
POST /v2/prism/{teamId}/identity
client.prism.objects.identities.create({ ...params }) -> IdentityCreateResponseCreates a record. For document, writing content (or HTML) stores the
property and reads back, but the in-app editor is CRDT-backed and will render a
blank page until that document has been opened and saved in the app. Treat
API-created docs as data records, not as collaboratively edited pages, unless
you only need the stored property values.
const identity =
await client.prism.objects.identities.create({
default: {
full_name: 'Sarah Chen',
email: 'sarah@example.com',
title: 'Partner',
organization: 'Acme Ventures',
},
});update
PATCH /v2/prism/{teamId}/identity/{identityId}
client.prism.objects.identities.update(identityID, { ...params }) -> IdentityUpdateResponsePatch object
const identity =
await client.prism.objects.identities.update(
'182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
{ default: { title: 'General Partner' } },
);list
GET /v2/prism/{teamId}/identity
client.prism.objects.identities.list({ ...params }) -> IdentityListResponseConvenience list endpoint. Equivalent to
POST /v2/prism/{teamId}/{objectType}/query with an empty body, plus
query-string sugar for the common cases. Any unrecognized query parameter is
interpreted as an equality filter on a property of that name; pass arrays for
in. Values are received as strings, so non-string property filters via this
endpoint may not work — use the query endpoint for typed comparisons or
anything beyond simple equality.
const identities =
await client.prism.objects.identities.list();delete
DELETE /v2/prism/{teamId}/identity/{identityId}
client.prism.objects.identities.delete(identityID, { ...params }) -> voidDelete object
await client.prism.objects.identities.delete(
'182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
);bulkCreate
POST /v2/prism/{teamId}/identity/import
client.prism.objects.identities.bulkCreate({ ...params }) -> IdentityBulkCreateResponseImport multiple objects in batch. Properties are keyed by slug. Automatically
routes based on size: small batches complete synchronously and return 200 with
the final ImportJob; large batches start an async job, return 202 with
status: processing and a Location header, and can be polled via
GET /v2/prism/{teamId}/imports/{jobId}.
const response =
await client.prism.objects.identities.bulkCreate({
objects: [{}],
});bulkDelete
POST /v2/prism/{teamId}/identity/batch/delete
client.prism.objects.identities.bulkDelete({ ...params }) -> IdentityBulkDeleteResponseSoft-delete up to 100 records in a single call. Same partial-success contract as batch/update.
const response =
await client.prism.objects.identities.bulkDelete({
ids: ['182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e'],
});bulkUpdate
POST /v2/prism/{teamId}/identity/batch/update
client.prism.objects.identities.bulkUpdate({ ...params }) -> IdentityBulkUpdateResponsePatch up to 100 records in a single call. Each item is attempted independently —
failures don't abort the batch. Inspect results[].status per item.
const response =
await client.prism.objects.identities.bulkUpdate({
items: [{ id: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' }],
});count
GET /v2/prism/{teamId}/identity/count
client.prism.objects.identities.count({ ...params }) -> IdentityCountResponseReturns the total number of records of this object type that the caller can see.
Avoids the page-overshoot anti-pattern — clients no longer need to keep paging
until has_more flips false to discover the total. Currently does not apply
query filters; for a filtered total, pass include_total: true in a POST
/query body. Unfiltered counts on high-cardinality types (especially
engagement) scan the full access-scoped set and can take tens of seconds or
time out; prefer a filtered include_total query or accept that this endpoint
is expensive there.
const response =
await client.prism.objects.identities.count();duplicate
POST /v2/prism/{teamId}/identity/{identityId}/duplicate
client.prism.objects.identities.duplicate(identityID, { ...params }) -> IdentityDuplicateResponseDuplicate object
const response =
await client.prism.objects.identities.duplicate(
'182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
);find
GET /v2/prism/{teamId}/identity/by/{slug}/{value}
client.prism.objects.identities.find(value, { ...params }) -> IdentityFindResponseReturns the single record whose property {slug} equals {value}. 404 if
nothing matches; 409 if more than one record matches.
const response = await client.prism.objects.identities.find(
'value',
{ slug: 'slug' },
);get
GET /v2/prism/{teamId}/identity/{identityId}
client.prism.objects.identities.get(identityID, { ...params }) -> IdentityGetResponseGet object
const identity = await client.prism.objects.identities.get(
'182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
);query
POST /v2/prism/{teamId}/identity/query
client.prism.objects.identities.query({ ...params }) -> IdentityQueryResponseQuery
const response =
await client.prism.objects.identities.query({
query: {
select: [
'full_name',
'email',
'title',
'organization',
],
filter: [{ full_name: { '=': 'Sarah Chen' } }],
limit: 10,
},
include_total: true,
});restore
POST /v2/prism/{teamId}/identity/{identityId}/restore
client.prism.objects.identities.restore(identityID, { ...params }) -> IdentityRestoreResponseRestore object
const response =
await client.prism.objects.identities.restore(
'182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
);upsert
PUT /v2/prism/{teamId}/identity/by/{slug}/{value}
client.prism.objects.identities.upsert(value, { ...params }) -> IdentityUpsertResponseIdempotent create-or-update keyed on {slug}={value}. If exactly one record
matches, it is patched and 200 is returned. If none match, a new record is
created (with the lookup property set if absent) and 201 is returned. If
multiple records match, 409 is returned and you should patch by id instead.
const response =
await client.prism.objects.identities.upsert('value', {
slug: 'slug',
});Parameter and response types
These declarations show the request parameters and response shapes used by the methods above.
Identity
export interface Identity {
/**
* 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.
*/
default?: { [key: string]: unknown };
list?: unknown;
}IdentityCreateResponse
/**
* Object returned by reads (get/create/patch/restore). id is always present.
*/
export interface IdentityCreateResponse {
id: string;
/**
* Properties keyed by property slug.
*/
default?: { [key: string]: unknown };
list?: unknown;
}IdentityUpdateResponse
/**
* Object returned by reads (get/create/patch/restore). id is always present.
*/
export interface IdentityUpdateResponse {
id: string;
/**
* Properties keyed by property slug.
*/
default?: { [key: string]: unknown };
list?: unknown;
}IdentityListResponse
export interface IdentityListResponse {
data: Array<IdentityListResponse.Data>;
/**
* Accurate end-of-data signal — false on the last page, never forces clients to
* overshoot.
*/
has_more: boolean;
next_cursor?: string | null;
/**
* Populated only when `?include_total=true` was passed.
*/
total?: number | null;
}IdentityListResponse
export namespace IdentityListResponse {
/**
* Row returned by the query endpoint. `id` is always present at the top level.
* Selected property values are returned under `properties`, keyed by property
* slug. Reference-typed values are returned as nested `{ id, properties }`
* objects.
*/
export interface Data {
id: string;
is_user_object?: boolean;
/**
* Selected property values keyed by property slug. For select/multiselect
* properties, option slugs are returned. For reference properties, values are
* nested `{ id, properties }` objects.
*/
properties?: { [key: string]: unknown };
source?: Array<string> | null;
}
}IdentityBulkCreateResponse
/**
* Status snapshot of an import job. Same shape used by the POST /import response
* and by GET /imports/{jobId}.
*/
export interface IdentityBulkCreateResponse {
/**
* Null for sync imports (results inlined). Set for async imports.
*/
job_id: string | null;
status: 'complete' | 'processing' | 'failed';
/**
* Total number of rows in the import.
*/
total: number;
created_at?: string;
/**
* Set when status=failed; describes the job-level failure (not per-row).
*/
error?: IdentityBulkCreateResponse.Error;
expires_at?: string;
failed?: number;
/**
* Rows that have been attempted (succeeded + failed).
*/
processed?: number;
/**
* Per-row outcomes. Always present for sync imports; populated for async imports
* once the job reaches `complete`.
*/
results?: Array<IdentityBulkCreateResponse.Result>;
succeeded?: number;
updated_at?: string;
}IdentityBulkCreateResponse
export namespace IdentityBulkCreateResponse {
/**
* Set when status=failed; describes the job-level failure (not per-row).
*/
export interface Error {
code?: string;
message?: string;
}
export interface Result {
id?: string | null;
created?: boolean;
error?: Result.Error;
/**
* True if the row matched an existing record via the dedupe key.
*/
existing?: boolean;
/**
* Zero-based position of this row in the request.
*/
input_index?: number;
/**
* True if a matching record was updated.
*/
updated?: boolean;
}
export namespace Result {
export interface Error {
code?: string;
message?: string;
}
}
}IdentityBulkDeleteResponse
/**
* Partial-success bulk operation result. Inspect `results[].status` per item; the
* operation as a whole returns 200 even if some items failed.
*/
export interface IdentityBulkDeleteResponse {
results: Array<IdentityBulkDeleteResponse.Result>;
summary: IdentityBulkDeleteResponse.Summary;
}IdentityBulkDeleteResponse
export namespace IdentityBulkDeleteResponse {
export interface Result {
/**
* Item ID, or null if the input was unparseable.
*/
id: string | null;
status: 'ok' | 'error';
error?: Result.Error;
/**
* Object returned by reads (get/create/patch/restore). id is always present.
*/
record?: Result.Record;
}
export namespace Result {
export interface Error {
code?: string;
message?: string;
}
/**
* Object returned by reads (get/create/patch/restore). id is always present.
*/
export interface Record {
id: string;
/**
* Properties keyed by property slug.
*/
default?: { [key: string]: unknown };
list?: unknown;
}
}
export interface Summary {
failed: number;
succeeded: number;
total: number;
}
}IdentityBulkUpdateResponse
/**
* Partial-success bulk operation result. Inspect `results[].status` per item; the
* operation as a whole returns 200 even if some items failed.
*/
export interface IdentityBulkUpdateResponse {
results: Array<IdentityBulkUpdateResponse.Result>;
summary: IdentityBulkUpdateResponse.Summary;
}IdentityBulkUpdateResponse
export namespace IdentityBulkUpdateResponse {
export interface Result {
/**
* Item ID, or null if the input was unparseable.
*/
id: string | null;
status: 'ok' | 'error';
error?: Result.Error;
/**
* Object returned by reads (get/create/patch/restore). id is always present.
*/
record?: Result.Record;
}
export namespace Result {
export interface Error {
code?: string;
message?: string;
}
/**
* Object returned by reads (get/create/patch/restore). id is always present.
*/
export interface Record {
id: string;
/**
* Properties keyed by property slug.
*/
default?: { [key: string]: unknown };
list?: unknown;
}
}
export interface Summary {
failed: number;
succeeded: number;
total: number;
}
}IdentityCountResponse
export interface IdentityCountResponse {
/**
* Number of records matching the access scope.
*/
total: number;
}IdentityDuplicateResponse
/**
* Object returned by reads (get/create/patch/restore). id is always present.
*/
export interface IdentityDuplicateResponse {
id: string;
/**
* Properties keyed by property slug.
*/
default?: { [key: string]: unknown };
list?: unknown;
}IdentityFindResponse
/**
* Object returned by reads (get/create/patch/restore). id is always present.
*/
export interface IdentityFindResponse {
id: string;
/**
* Properties keyed by property slug.
*/
default?: { [key: string]: unknown };
list?: unknown;
}IdentityGetResponse
/**
* Object returned by reads (get/create/patch/restore). id is always present.
*/
export interface IdentityGetResponse {
id: string;
/**
* Properties keyed by property slug.
*/
default?: { [key: string]: unknown };
list?: unknown;
}IdentityQueryResponse
export interface IdentityQueryResponse {
data: Array<IdentityQueryResponse.Data>;
/**
* 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.)
*/
has_more: boolean;
/**
* 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.
*/
next_cursor?: string | null;
/**
* 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.
*/
total?: number | null;
}IdentityQueryResponse
export namespace IdentityQueryResponse {
/**
* Row returned by the query endpoint. `id` is always present at the top level.
* Selected property values are returned under `properties`, keyed by property
* slug. Reference-typed values are returned as nested `{ id, properties }`
* objects.
*/
export interface Data {
id: string;
is_user_object?: boolean;
/**
* Selected property values keyed by property slug. For select/multiselect
* properties, option slugs are returned. For reference properties, values are
* nested `{ id, properties }` objects.
*/
properties?: { [key: string]: unknown };
source?: Array<string> | null;
}
}IdentityRestoreResponse
/**
* Object returned by reads (get/create/patch/restore). id is always present.
*/
export interface IdentityRestoreResponse {
id: string;
/**
* Properties keyed by property slug.
*/
default?: { [key: string]: unknown };
list?: unknown;
}IdentityUpsertResponse
/**
* Object returned by reads (get/create/patch/restore). id is always present.
*/
export interface IdentityUpsertResponse {
id: string;
/**
* Properties keyed by property slug.
*/
default?: { [key: string]: unknown };
list?: unknown;
}IdentityCreateParams
export interface IdentityCreateParams {
/**
* Path param
*/
teamId?: string;
/**
* Body param: 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.
*/
default?: { [key: string]: unknown };
/**
* Body param
*/
list?: unknown;
/**
* Header param: A unique key (UUID or any opaque string up to 255 chars) for an
* authenticated POST, PUT, or PATCH request. The server retains the initial claim
* for 24 hours and replays a completed non-5xx response only when the method,
* path, and request body all match. Reusing a non-expired key with a different
* method, path, or body returns 409 `idempotency_key_mismatch`; reusing it after
* expiry returns 409 `idempotency_key_stale`, so use a new key. Replays include
* the `idempotent-replay: true` response header.
*/
'Idempotency-Key'?: string;
}IdentityUpdateParams
export interface IdentityUpdateParams {
/**
* Path param
*/
teamId?: string;
/**
* Body param: 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.
*/
default?: { [key: string]: unknown };
/**
* Body param
*/
list?: unknown;
/**
* Header param: A unique key (UUID or any opaque string up to 255 chars) for an
* authenticated POST, PUT, or PATCH request. The server retains the initial claim
* for 24 hours and replays a completed non-5xx response only when the method,
* path, and request body all match. Reusing a non-expired key with a different
* method, path, or body returns 409 `idempotency_key_mismatch`; reusing it after
* expiry returns 409 `idempotency_key_stale`, so use a new key. Replays include
* the `idempotent-replay: true` response header.
*/
'Idempotency-Key'?: string;
/**
* Header param: Optimistic concurrency. Pass back the `etag` header from a
* previous GET of this record; the write only proceeds if the record hasn't
* changed since. Mismatch → 412 `precondition_failed`. Use `*` to require the
* record exists (any ETag accepted).
*/
'If-Match'?: string;
}IdentityListParams
export interface IdentityListParams {
/**
* Path param
*/
teamId?: string;
/**
* Query param: Opaque cursor from a previous response's `next_cursor`. Pass it
* back unchanged to fetch the next page.
*/
cursor?: string;
/**
* Query param: Include soft-deleted records. Pass the literal string `true`.
*/
deleted?: boolean;
/**
* Query param: When set to `true`, the response includes a `total` field with the
* unpaginated row count. Costs an extra pass; prefer `GET .../count` for the
* unfiltered total.
*/
include_total?: boolean;
/**
* Query param: Maximum number of rows to return. Capped server-side at 50.
*/
limit?: number;
/**
* Query param: Scope properties to a specific list/app.
*/
list_id?: string;
/**
* Query param: Comma-separated property slugs to return. Use dot notation for
* relationships. `id` is always returned at the top level. Defaults to all
* properties.
*/
select?: string;
/**
* Query param: Comma-separated list of slugs. Prefix with `-` for descending.
* Example: `sort=-updated_at,name`.
*/
sort?: string;
}IdentityDeleteParams
export interface IdentityDeleteParams {
/**
* Path param
*/
teamId?: string;
/**
* Header param: Optimistic concurrency. Pass back the `etag` header from a
* previous GET of this record; the write only proceeds if the record hasn't
* changed since. Mismatch → 412 `precondition_failed`. Use `*` to require the
* record exists (any ETag accepted).
*/
'If-Match'?: string;
}IdentityBulkCreateParams
export interface IdentityBulkCreateParams {
/**
* Path param
*/
teamId?: string;
/**
* Body param: Array of objects to import with property values keyed by slug
*/
objects: Array<PrismAPI.PrismObjectProperties>;
/**
* Body param
*/
options?: IdentityBulkCreateParams.Options;
/**
* Header param: A unique key (UUID or any opaque string up to 255 chars) for an
* authenticated POST, PUT, or PATCH request. The server retains the initial claim
* for 24 hours and replays a completed non-5xx response only when the method,
* path, and request body all match. Reusing a non-expired key with a different
* method, path, or body returns 409 `idempotency_key_mismatch`; reusing it after
* expiry returns 409 `idempotency_key_stale`, so use a new key. Replays include
* the `idempotent-replay: true` response header.
*/
'Idempotency-Key'?: string;
}IdentityBulkCreateParams
export namespace IdentityBulkCreateParams {
export interface Options {
/**
* Whether deduplication should be case insensitive
*/
caseInsensitive?: boolean;
/**
* When true, unknown values for select/multiselect properties are created as new
* options instead of failing the import
*/
create_missing_options?: boolean;
/**
* @deprecated Deprecated alias for list_id.
*/
crm_id?: string;
/**
* Property slug to deduplicate on. A single-element array is also accepted;
* compound (multi-slug) dedupe is not supported yet and is rejected with guidance.
*/
dedupe_by?: string | Array<string>;
/**
* App/CRM ID for context (optional)
*/
list_id?: string;
/**
* Require app_stage for every row in the selected list. app_stage is a reserved
* list-scoped alias for native status.
*/
require_list_stage?: boolean;
/**
* Patch a deduplicated record with the supplied properties instead of skipping it.
*/
update_existing?: boolean;
}
}IdentityBulkDeleteParams
export interface IdentityBulkDeleteParams {
/**
* Path param
*/
teamId?: string;
/**
* Body param
*/
ids: Array<string>;
/**
* Header param: A unique key (UUID or any opaque string up to 255 chars) for an
* authenticated POST, PUT, or PATCH request. The server retains the initial claim
* for 24 hours and replays a completed non-5xx response only when the method,
* path, and request body all match. Reusing a non-expired key with a different
* method, path, or body returns 409 `idempotency_key_mismatch`; reusing it after
* expiry returns 409 `idempotency_key_stale`, so use a new key. Replays include
* the `idempotent-replay: true` response header.
*/
'Idempotency-Key'?: string;
}IdentityBulkUpdateParams
export interface IdentityBulkUpdateParams {
/**
* Path param
*/
teamId?: string;
/**
* Body param
*/
items: Array<IdentityBulkUpdateParams.Item>;
/**
* Header param: A unique key (UUID or any opaque string up to 255 chars) for an
* authenticated POST, PUT, or PATCH request. The server retains the initial claim
* for 24 hours and replays a completed non-5xx response only when the method,
* path, and request body all match. Reusing a non-expired key with a different
* method, path, or body returns 409 `idempotency_key_mismatch`; reusing it after
* expiry returns 409 `idempotency_key_stale`, so use a new key. Replays include
* the `idempotent-replay: true` response header.
*/
'Idempotency-Key'?: string;
}IdentityBulkUpdateParams
export namespace IdentityBulkUpdateParams {
/**
* Object with `id` plus the same property body shape as PATCH
* (`default`/`list`/`extended`).
*/
export interface Item {
id: string;
[k: string]: unknown;
}
}IdentityCountParams
export interface IdentityCountParams {
/**
* Path param
*/
teamId?: string;
/**
* Query param: Scope the count to a specific list/app.
*/
list_id?: string;
}IdentityDuplicateParams
export interface IdentityDuplicateParams {
/**
* Path param
*/
teamId?: string;
/**
* Header param: A unique key (UUID or any opaque string up to 255 chars) for an
* authenticated POST, PUT, or PATCH request. The server retains the initial claim
* for 24 hours and replays a completed non-5xx response only when the method,
* path, and request body all match. Reusing a non-expired key with a different
* method, path, or body returns 409 `idempotency_key_mismatch`; reusing it after
* expiry returns 409 `idempotency_key_stale`, so use a new key. Replays include
* the `idempotent-replay: true` response header.
*/
'Idempotency-Key'?: string;
}IdentityFindParams
export interface IdentityFindParams {
/**
* Path param
*/
teamId?: string;
/**
* Path param: Property slug to match (e.g. `email`).
*/
slug: string;
/**
* Query param: Scope the lookup to a specific list/app.
*/
list_id?: string;
}IdentityGetParams
export interface IdentityGetParams {
/**
* Path param
*/
teamId?: string;
/**
* Query param: Comma-separated property slugs to return. Use dot notation for
* relationships. `id` is always returned at the top level. Defaults to all
* properties.
*/
select?: string;
}IdentityQueryParams
export interface IdentityQueryParams {
/**
* Path param
*/
teamId?: string;
/**
* Body param
*/
query: IdentityQueryParams.Query;
/**
* Body param
*/
id?: string | Array<string>;
/**
* Body param
*/
boxes?: Array<string>;
/**
* Body param: Alternative location for the opaque cursor (a sibling of `query`).
* Use whichever feels more natural; if both are present, `query.cursor` wins.
*/
cursor?: string;
/**
* Body param
*/
deleted?: boolean;
/**
* Body param: When true, the response includes a `total` field with the
* unpaginated row count. Costs an additional pass over the result set — for
* unfiltered totals prefer `GET /v2/prism/{teamId}/{objectType}/count` instead.
*/
include_total?: boolean;
/**
* Body param
*/
sources?: Array<string>;
/**
* Header param: A unique key (UUID or any opaque string up to 255 chars) for an
* authenticated POST, PUT, or PATCH request. The server retains the initial claim
* for 24 hours and replays a completed non-5xx response only when the method,
* path, and request body all match. Reusing a non-expired key with a different
* method, path, or body returns 409 `idempotency_key_mismatch`; reusing it after
* expiry returns 409 `idempotency_key_stale`, so use a new key. Replays include
* the `idempotent-replay: true` response header.
*/
'Idempotency-Key'?: string;
}IdentityQueryParams
export namespace IdentityQueryParams {
export interface Query {
/**
* Property slugs to select. Use dot notation for relationships (e.g.
* attendee.contact.first_name). `id` is always returned at the top level of each
* row and does not need to be selected.
*/
select: Array<string>;
/**
* Logical operator for combining filters
*/
combinator?: 'AND' | 'OR';
/**
* Opaque cursor from a previous response's `next_cursor`. Pass it back unchanged
* to fetch the next page. When set, `page` and `limit` are derived from the cursor
* and any explicit values are ignored.
*/
cursor?: string;
/**
* Filters as [{ slug: { operator: value } }]. For select/multiselect properties,
* values may be option slugs or option UUIDs.
*/
filter?: Array<{
[key: string]:
| Query.PrismQueryFilterEq
| Query.PrismQueryFilterNe
| Query.PrismQueryFilterLt
| Query.PrismQueryFilterGt
| Query.PrismQueryFilterLte
| Query.PrismQueryFilterGte
| Query.Contains
| Query.BeginsWith
| Query.EndsWith
| Query.NotContains
| Query.Exists
| Query.NotExists
| Query.IsNull
| Query.IsNotNull
| Query.Between
| Query.In
| Query.NotIn;
}>;
/**
* Maximum number of rows to return. Capped server-side at 50; requests above the
* cap are rejected.
*/
limit?: number;
list_id?: string;
/**
* @deprecated Page number (1-based). Prefer `cursor`. Page-number pagination
* drifts under concurrent writes; use it only for one-shot exports.
*/
page?: number;
/**
* Sort order as [{ slug: direction }]. Array order determines sort priority
*/
sort?: Array<{ [key: string]: 'asc' | 'desc' }>;
}
export namespace Query {
export interface PrismQueryFilterEq {
'=': string | boolean;
}
export interface PrismQueryFilterNe {
'!=': string | boolean;
}
export interface PrismQueryFilterLt {
'<': string;
}
export interface PrismQueryFilterGt {
'>': string;
}
export interface PrismQueryFilterLte {
'<=': string;
}
export interface PrismQueryFilterGte {
'>=': string;
}
export interface Contains {
contains: string | boolean | Array<string>;
}
export interface BeginsWith {
begins_with: string;
}
export interface EndsWith {
ends_with: string;
}
export interface NotContains {
not_contains: string;
}
export interface Exists {
exists: boolean;
}
export interface NotExists {
not_exists: boolean;
}
export interface IsNull {
is_null: string | boolean | Array<string>;
}
export interface IsNotNull {
is_not_null: string | boolean | Array<string>;
}
export interface Between {
between: string | boolean | Array<string>;
}
export interface In {
in: Array<string>;
}
export interface NotIn {
not_in: Array<string>;
}
}
}IdentityRestoreParams
export interface IdentityRestoreParams {
/**
* Path param
*/
teamId?: string;
/**
* Header param: A unique key (UUID or any opaque string up to 255 chars) for an
* authenticated POST, PUT, or PATCH request. The server retains the initial claim
* for 24 hours and replays a completed non-5xx response only when the method,
* path, and request body all match. Reusing a non-expired key with a different
* method, path, or body returns 409 `idempotency_key_mismatch`; reusing it after
* expiry returns 409 `idempotency_key_stale`, so use a new key. Replays include
* the `idempotent-replay: true` response header.
*/
'Idempotency-Key'?: string;
}IdentityUpsertParams
export interface IdentityUpsertParams {
/**
* Path param
*/
teamId?: string;
/**
* Path param
*/
slug: string;
/**
* Query param: Scope the upsert to a specific list/app. Required to match or write
* list-scoped properties, including `app_stage`.
*/
list_id?: string;
/**
* Body param: 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.
*/
default?: { [key: string]: unknown };
/**
* Body param
*/
list?: unknown;
/**
* Header param: A unique key (UUID or any opaque string up to 255 chars) for an
* authenticated POST, PUT, or PATCH request. The server retains the initial claim
* for 24 hours and replays a completed non-5xx response only when the method,
* path, and request body all match. Reusing a non-expired key with a different
* method, path, or body returns 409 `idempotency_key_mismatch`; reusing it after
* expiry returns 409 `idempotency_key_stale`, so use a new key. Replays include
* the `idempotent-replay: true` response header.
*/
'Idempotency-Key'?: string;
}Identities
export declare namespace Identities {
export {
type Identity as Identity,
type IdentityCreateResponse as IdentityCreateResponse,
type IdentityUpdateResponse as IdentityUpdateResponse,
type IdentityListResponse as IdentityListResponse,
type IdentityBulkCreateResponse as IdentityBulkCreateResponse,
type IdentityBulkDeleteResponse as IdentityBulkDeleteResponse,
type IdentityBulkUpdateResponse as IdentityBulkUpdateResponse,
type IdentityCountResponse as IdentityCountResponse,
type IdentityDuplicateResponse as IdentityDuplicateResponse,
type IdentityFindResponse as IdentityFindResponse,
type IdentityGetResponse as IdentityGetResponse,
type IdentityQueryResponse as IdentityQueryResponse,
type IdentityRestoreResponse as IdentityRestoreResponse,
type IdentityUpsertResponse as IdentityUpsertResponse,
type IdentityCreateParams as IdentityCreateParams,
type IdentityUpdateParams as IdentityUpdateParams,
type IdentityListParams as IdentityListParams,
type IdentityDeleteParams as IdentityDeleteParams,
type IdentityBulkCreateParams as IdentityBulkCreateParams,
type IdentityBulkDeleteParams as IdentityBulkDeleteParams,
type IdentityBulkUpdateParams as IdentityBulkUpdateParams,
type IdentityCountParams as IdentityCountParams,
type IdentityDuplicateParams as IdentityDuplicateParams,
type IdentityFindParams as IdentityFindParams,
type IdentityGetParams as IdentityGetParams,
type IdentityQueryParams as IdentityQueryParams,
type IdentityRestoreParams as IdentityRestoreParams,
type IdentityUpsertParams as IdentityUpsertParams,
};
}