> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs-beta.getzep.com/v4/sdk-reference/graph/search-thread-summaries/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs-beta.getzep.com/_mcp/server. # Search thread summaries POST https://api.getzep.com/api/v4/graphs/{graph_uuid}/search/thread-summaries Content-Type: application/json Reference: https://docs-beta.getzep.com/sdk-reference/graph/search-thread-summaries ## Authentication - `Authorization` header (required) (prefixed with ` Api-Key `) — Type "Api-Key" followed by a space and the project API key. ## Request ### Path parameters - `graph_uuid` (string, required) — Graph UUID ### Query parameters - `limit` (integer, optional) — Page size - `cursor` (string, optional) — Opaque page cursor ### Body (application/json) This endpoint expects a v4.SearchRequest. - `query` (string, required) — The search query. - `bfs_origin_node_uuids` (list of string, optional) — Nodes used as BFS origins for graph-distance-aware retrieval. - `center_node_uuid` (string, optional) — The node to rank results by distance from. Required when reranker is node_distance. - `filters` (v4.SearchFilters, optional) — Filters constraining which items are returned. - `mmr_lambda` (double, optional) — The diversity weighting used for maximal marginal relevance reranking. Required when reranker is mmr. - `reranker` (enum, optional) — The reranking strategy applied to retrieved results. Defaults to rrf. - Allowed values: `rrf`, `mmr`, `node_distance`, `episode_mentions`, `cross_encoder` ## Response ### 200 OK - `items` (list of v4.ThreadSummary, optional) — The thread summaries on this page. - `next_cursor` (string, optional) — The cursor to pass as the next request's cursor to fetch the following page; absent when no further pages remain. - `total_size` (integer, optional) — Omitted for this collection; use next_cursor to detect the end of pagination. ## Errors ### 400 Bad Request Error Bad Request - `error` (v4.ErrorBody, optional) ### 401 Unauthorized Error Unauthorized - `error` (v4.ErrorBody, optional) ### 403 Forbidden Error Forbidden - `error` (v4.ErrorBody, optional) ### 404 Not Found Error Not Found - `error` (v4.ErrorBody, optional) ## Types ### v4.SearchFilters - `connected_node_uuids` (list of string, optional) — Include edges connected to any of these node UUIDs. - `content_policy_violated` (boolean, optional) — Match episodes by their content-policy result. Supported only on episode search when the project setting include_policy_violating_episodes is true. - `date_filters` (v4.DateFilters, optional) — Filter results by temporal values. - `edge_types` (list of string, optional) — Include results with any of these edge types. - `edge_uuids` (list of string, optional) — Include results with any of these edge UUIDs. - `episode_uuids` (list of string, optional) — Include results derived from any of these episode UUIDs. - `exclude_edge_types` (list of string, optional) — Exclude results with any of these edge types. - `exclude_node_labels` (list of string, optional) — Exclude results with any of these node labels. - `metadata_filters` (v4.MetadataFilterGroup, optional) — Filter results by episode metadata. - `node_labels` (list of string, optional) — Include results with any of these node labels. - `property_filters` (list of v4.PropertyFilter, optional) — Filter results by node or edge properties. - `source_node_uuids` (list of string, optional) — Include edges that start at any of these node UUIDs. - `target_node_uuids` (list of string, optional) — Include edges that end at any of these node UUIDs. ### v4.ThreadSummary - `created_at` (string, optional) — The time the summary was first created. - `last_summarized_at` (string, optional) — The wall-clock time of the most recent summary update. - `last_summarized_episode_valid_at` (string, optional) — The latest episode reference time covered by the most recent summary update. - `relevance` (double, optional) — A cross-encoder-derived relevance score, present only when the cross-encoder reranker scored this result; like score, it is omitted from plain list results. - `score` (double, optional) — A score accompanies every search result; it is omitted when the summary appears in a plain list rather than a search result. - `summary` (string, optional) — The generated summary text for the thread. - `thread_uuid` (string, optional) — The unique identifier of the thread this summary belongs to. - `uuid` (string, optional) — The unique identifier of the thread summary. ### v4.ErrorBody - `code` (string, optional) - `details` (map from string to any, optional) - `message` (string, optional) - `param` (string, optional) - `request_id` (string, optional) ### v4.DateFilters - `any_of` (list of v4.DateFilterGroup, optional) — Each group is combined with OR logic. ### v4.MetadataFilterGroup - `filters` (list of v4.MetadataFilter, optional) — The metadata predicates in this group. - `groups` (list of v4.MetadataFilterGroup, optional) — The nested metadata groups in this group. - `type` (enum, optional) — The logical operator for this group. - Allowed values: `and`, `or` ### v4.PropertyFilter - `operator` (enum, optional) — The lowercase comparison operator. - Allowed values: `eq`, `ne`, `gt`, `lt`, `gte`, `lte`, `in`, `is_null`, `is_not_null` - `property_name` (string, optional) — The property name to compare. - `value` (V4PropertyFilterValue, optional) — The comparison value. Use an array for in. Its string members must be non-empty, contain no comma, and have no surrounding whitespace. ### v4.DateFilterGroup - `all_of` (list of v4.DateFilter, optional) — All conditions in the group must match. ### v4.MetadataFilter - `operator` (enum, optional) — The lowercase comparison operator. - Allowed values: `eq`, `ne`, `gt`, `lt`, `gte`, `lte`, `in`, `contains`, `is_null`, `is_not_null` - `property_name` (string, optional) — The metadata property name to compare. - `value` (V4MetadataFilterValue, optional) — The comparison value. Use an array for in, a non-empty string for contains, and omit the field for null operators. ### V4PropertyFilterValue The comparison value. Use an array for in. Its string members must be non-empty, contain no comma, and have no surrounding whitespace. ### v4.DateFilter - `field` (enum, optional) — The temporal field to compare. - Allowed values: `created_at`, `valid_at`, `invalid_at`, `expired_at` - `operator` (enum, optional) — The lowercase comparison operator. - Allowed values: `eq`, `ne`, `gt`, `lt`, `gte`, `lte`, `is_null`, `is_not_null` - `value` (string, optional) — The RFC 3339 timestamp. Omit this field for null operators. ### V4MetadataFilterValue The comparison value. Use an array for in, a non-empty string for contains, and omit the field for null operators. ## Examples **Request** ```json { "query": "string" } ``` **Response** ```json { "items": [ { "created_at": "string", "last_summarized_at": "string", "last_summarized_episode_valid_at": "string", "relevance": 1.1, "score": 1.1, "summary": "string", "thread_uuid": "string", "uuid": "string" } ], "next_cursor": "string", "total_size": 1 } ```