Skip to main content
POST
Specify the category using the type parameter to filter and view ingested knowledge or user memories within a database or collection:
  • type=knowledge (default): knowledge sources (documents, app sources).
  • type=memory: user memories.
Supports pagination, metadata filters, and field projection. For metadata design and query-time behavior, see Scoping using metadata.

Request body

Filters

  • filters is a structured object with three optional categories. Filters are exact-match constraints i.e. filtered values are matched against stored values as exact values (except source_fields.title, a case-insensitive prefix match). There are no range, contains, or OR operators on this endpoint; run multiple calls and merge client-side for OR behavior. A null filter value returns 400.
  • AND: all filter pairs combine with a logical AND.
  • ids + filters: When ids is non-empty, only those IDs are considered, but other filters still apply on top: useful for “show me items 1, 2, 3 that also belong to department=legal”.

Field projection

When you don’t need every field on every row, pass include_fields to keep response payloads small. Only the listed fields are populated; omitted fields should be treated as unavailable in that response. id, database, and collection are always returned. Allowed values are title, type, description, note, timestamp, metadata, additional_metadata, and relations, plus the legacy names tenant_metadata and document_metadata. Omit or pass null to return everything.
Projectable vs. fetchable fields: content, url, and attachments are not valid include_fields values: they are stripped from list responses, and requesting one returns 400. Fetch them per-source via Inspect Context.
When type=memory, data is a ListUserMemoriesResponse instead: same idea but with a data.user_memories[] array of memory items, keyed by memory_id, with the same fields as knowledge rows. The memory text and inferred_content are not included; read them with Inspect Context.
  • Scope fields: every row carries database and collection, plus the deprecated tenant_id and sub_tenant_id with the same values.
  • Memory listing unavailable: if the memory store cannot be read, the call still returns 200 with an empty user_memories and message set to "Memories temporarily unavailable". Check message before you treat an empty list as “no memories”.
Related Resources

Authorizations

Authorization
string
header
required

API key sent as a Bearer token: "Bearer prefix.secret"

Body

application/json

List request

acl
string[]

ACL: see ListContentRequest.ACL (PRO-1684 document ACLs).

collection
string

Collection scope. Defaults to the default collection when omitted. Formerly sub_tenant_id; the sub_tenant_id alias is still accepted (deprecated).

Example:

"team_docs"

database
string

Database/Collection are the canonical v2 names; TenantID/SubTenantID are their deprecated aliases (reconciled here in UnmarshalJSON and centrally by the TenantAliases middleware).

Example:

"acme_corp"

filters
object
Example:
group_threads
boolean

GroupThreads (type=knowledge only) folds each ticket's/thread root's discussion (comment and message app sources carrying an app_parent_id) under the parent row as comments, newest first, instead of listing them as separate top-level rows. Off by default: the flat shape is the existing contract.

Example:

true

ids
string[]

When provided, only items with these IDs are returned. Pagination and filters still apply.

Example:
include_fields
string[]

Field projection — only the listed fields plus id, database, collection are returned. Only applies to type=knowledge.

Example:
page
integer

Current page number (1-indexed).

Example:

1

page_size
integer

Number of items per page.

Example:

50

sub_tenant_id
string
deprecated

deprecated: use collection

Example:

"sub_tenant_4567"

tenant_id
string
deprecated

deprecated: use database

Example:

"tenant_1234"

type
enum<string>

Bucket to list: knowledge (default) or memory.

Available options:
knowledge,
memory
Example:

"knowledge"

Response

OK

data
object
Example:
error
object | null

Null on success; an object with code and message on failure.

Example:

null

meta
object
Example:
success
boolean

Whether the request succeeded.

Example:

true