Convenience 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.
Import 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}.
Returns 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.
Idempotent 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.
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.
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.
Opaque cursor from a previous response's next_cursor. Pass it back unchanged to fetch the next page.
deleted
bool
No
Include soft-deleted records. Pass the literal string true.
include_total
bool
No
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.
limit
int
No
Maximum number of rows to return. Capped server-side at 50.
list_id
str
No
Scope properties to a specific list/app.
select
str
No
Comma-separated property slugs to return. Use dot notation for relationships. id is always returned at the top level. Defaults to all properties.
sort
str
No
Comma-separated list of slugs. Prefix with - for descending. Example: sort=-updated_at,name.
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.
Field
Type
Required
Description
id
str
Yes
—
is_user_object
Optional[bool]
No
—
properties
Optional[Dict[str, object]]
No
Selected property values keyed by property slug. For select/multiselect properties, option slugs are returned. For reference properties, values are nested { id, properties } objects.
Alternative location for the opaque cursor (a sibling of query). Use whichever feels more natural; if both are present, query.cursor wins.
deleted
bool
No
—
include_total
bool
No
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.
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.
combinator
Literal["AND", "OR"]
No
Logical operator for combining filters
cursor
str
No
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.
filter
Iterable[Dict[str, QueryFilterQueryFilterItem]]
No
Filters as [{ slug: { operator: value } }]. For select/multiselect properties, values may be option slugs or option UUIDs.
limit
int
No
Maximum number of rows to return. Capped server-side at 50; requests above the cap are rejected.
list_id
str
No
—
page
int
No
Page number (1-based). Prefer cursor. Page-number pagination drifts under concurrent writes; use it only for one-shot exports.
sort
Iterable[Dict[str, Literal["asc", "desc"]]]
No
Sort order as [{ slug: direction }]. Array order determines sort priority
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[str]
No
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[int]
No
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.
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.
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.