Each user connects their own account. Every call carries both identities — the agent and the person it is acting for — so the agent can never reach past what that individual can already do.
Tokens live in the vault and attach server-side at call time. The agent holds a session, not a secret, and revoking access does not mean rotating a key.
Who asked, which agent acted, which action ran, and the verdict that let it through — one audit trail across every integration, not one per vendor.
Each action is granted on its own. An agent allowed to read is not thereby allowed to write, and the scope beside each row is what the acting user must have connected for it to run at all.
zep_delete_abac_user_groups_by_groupuuid_policy_sets_by_policysetuuidWRITEDetach a policy set from a UserGroup. NOT callable with a project API key: Zep restricts ABAC policy-set management to account administrators through the zepctl CLI, so this tool answers with a refusal naming that rather than a bare 403. via DELETE /api/v2/abac/user-groups/{groupUUID}/policy-sets/{policySetUUID}
zep_delete_batches_by_batchidWRITEDelete a draft or invalid unprocessed batch. Processed batches cannot be deleted. via DELETE /api/v2/batches/{batchId}
zep_delete_context_templates_by_template_idWRITEDeletes a context template by template_id. via DELETE /api/v2/context-templates/{template_id}
zep_delete_custom_instructionsWRITEDeletes custom instructions for graphs or project wide defaults. via DELETE /api/v2/custom-instructions
zep_delete_graph_by_graphidWRITEDeletes a graph. If you would like to delete a user graph, make sure to use user.delete instead. via DELETE /api/v2/graph/{graphId}
zep_delete_graph_edge_by_uuidWRITEDeletes an edge by UUID. via DELETE /api/v2/graph/edge/{uuid}
zep_delete_graph_episodes_by_uuidWRITEDeletes an episode by its UUID. via DELETE /api/v2/graph/episodes/{uuid}
zep_delete_graph_node_by_uuidWRITEDeletes a node by UUID. via DELETE /api/v2/graph/node/{uuid}
zep_delete_threads_by_threadidWRITEDeletes a thread. via DELETE /api/v2/threads/{threadId}
zep_delete_user_groups_by_groupuuidWRITEDelete a managed UserGroup. via DELETE /api/v2/user-groups/{groupUUID}
zep_delete_user_groups_by_groupuuid_members_by_useruuidWRITERemove one member from a managed UserGroup. via DELETE /api/v2/user-groups/{groupUUID}/members/{userUUID}
zep_delete_user_summary_instructionsWRITEDeletes user summary/instructions for users or project wide defaults. via DELETE /api/v2/user-summary-instructions
zep_delete_users_by_useridWRITEDeletes a user. via DELETE /api/v2/users/{userId}
zep_get_abac_user_groups_by_groupuuid_policy_setsREADList policy sets attached to a UserGroup. NOT callable with a project API key: Zep restricts ABAC policy-set management to account administrators through the zepctl CLI, so this tool answers with a refusal naming that rather than a bare 403. via GET /api/v2/abac/user-groups/{groupUUID}/policy-sets
zep_get_batchesREADList batches for the current project, optionally filtered by batch status. via GET /api/v2/batches
zep_get_batches_by_batchidREADGet a batch summary, including runtime progress when the batch has been processed. via GET /api/v2/batches/{batchId}
zep_get_batches_by_batchid_itemsREADList items in a batch, including derived runtime status when the batch has been processed. via GET /api/v2/batches/{batchId}/items
zep_get_context_templatesREADLists all context templates. via GET /api/v2/context-templates
zep_get_context_templates_by_template_idREADRetrieves a context template by template_id. via GET /api/v2/context-templates/{template_id}
zep_get_custom_instructionsREADLists all custom instructions for a project, user, or graph. via GET /api/v2/custom-instructions
zep_get_graph_by_graphidREADReturns a graph. via GET /api/v2/graph/{graphId}
zep_get_graph_by_graphid_warmREADHints Zep to warm a graph for low-latency search. via GET /api/v2/graph/{graphId}/warm
zep_get_graph_documents_by_document_id_episodesREADReturns episodes associated with a document on a graph. Documents group episodes as chunks, parallel to how threads group messages. via GET /api/v2/graph/documents/{document_id}/episodes
zep_get_graph_edge_by_uuidREADReturns a specific edge by its UUID. via GET /api/v2/graph/edge/{uuid}
zep_get_graph_episodes_by_uuidREADReturns episodes by UUID. via GET /api/v2/graph/episodes/{uuid}
zep_get_graph_episodes_by_uuid_mentionsREADDeprecated. Use edge and node listing with `filters.episode_uuids` instead. Returns nodes and edges mentioned in an episode, subject to an internal cap; responses reduced by that cap set the Zep-Truncated header. via GET /api/v2/graph/episodes/{uuid}/mentions
zep_get_graph_episodes_graph_by_graph_idREADReturns episodes by graph id. via GET /api/v2/graph/episodes/graph/{graph_id}
zep_get_graph_episodes_user_by_user_idREADReturns episodes by user id. via GET /api/v2/graph/episodes/user/{user_id}
zep_get_graph_list_allREADReturns a paginated directory of live standalone graphs in the authenticated project. Optional `search` matches `graph_id`, `name`, and `description` (metadata only; not graph contents). Default `pageSize` is 50 (range 1–100). To list users, use `user.list_ordered` instead. via GET /api/v2/graph/list-all
zep_get_graph_list_ontologyREADRetrieves the current entity and edge types configured for your graph. See the [full documentation](/customizing-graph-structure) for details. via GET /api/v2/entity-types
zep_get_graph_node_by_node_uuid_entity_edgesREADDeprecated. Use edge listing with `filters.connected_node_uuids`, or the neighbors endpoint (`POST /graph/node/{node_uuid}/neighbors`), instead. Returns all edges for a node, subject to an internal cap; responses reduced by that cap set the Zep-Truncated header. via GET /api/v2/graph/node/{node_uuid}/entity-edges
zep_get_graph_node_by_node_uuid_episodesREADDeprecated. Use episode listing with `mentioned_node_uuids` (`POST /graph/episodes/graph/{graph_id}` or `POST /graph/episodes/user/{user_id}`) instead. Returns episodes that mentioned a given node, subject to an internal cap; responses reduced by that cap set the Zep-Truncated header. via GET /api/v2/graph/node/{node_uuid}/episodes
zep_get_graph_node_by_uuidREADReturns a specific node by its UUID. via GET /api/v2/graph/node/{uuid}
zep_get_graph_observation_by_uuidREADReturns a specific observation node by UUID. Observation nodes are read-only. via GET /api/v2/graph/observation/{uuid}
zep_get_projects_infoREADRetrieve project info based on the provided api key. via GET /api/v2/projects/info
zep_get_projects_observation_steeringREADReturns project steering or the effective user/graph steering with project fallback. This API is experimental and may change in future releases. via GET /api/v2/projects/observation-steering
zep_get_tasks_by_task_idREADGets a task by its ID. via GET /api/v2/tasks/{task_id}
zep_get_threadsREADReturns all threads. via GET /api/v2/threads
zep_get_threads_by_threadid_contextREADReturns most relevant context from the user graph (including memory from any/all past threads) based on the content of the past few messages of the given thread. via GET /api/v2/threads/{threadId}/context
zep_get_threads_by_threadid_episodesREADReturns graph episodes associated with a thread. Parallel to get_episodes_for_document for documents. via GET /api/v2/threads/{threadId}/episodes
zep_get_threads_by_threadid_messagesREADReturns messages for a thread. via GET /api/v2/threads/{threadId}/messages
zep_get_threads_by_threadid_summaryREADReturns the incremental summary generated from messages in the thread. Returns 404 if no summary exists for the thread. via GET /api/v2/threads/{threadId}/summary
zep_get_user_groupsREADList UserGroups. via GET /api/v2/user-groups
zep_get_user_groups_by_groupuuidREADGet a UserGroup. via GET /api/v2/user-groups/{groupUUID}
zep_get_user_groups_by_groupuuid_membersREADList UserGroup members. via GET /api/v2/user-groups/{groupUUID}/members
zep_get_user_groups_by_groupuuid_members_candidatesREADList Users eligible to join a UserGroup. via GET /api/v2/user-groups/{groupUUID}/members/candidates
zep_get_user_groups_users_by_useruuidREADList effective UserGroups for a User. via GET /api/v2/user-groups/users/{userUUID}
zep_get_user_summary_instructionsREADLists all user summary instructions for a project, user. via GET /api/v2/user-summary-instructions
zep_get_users_by_useridREADReturns a user. via GET /api/v2/users/{userId}
zep_get_users_by_userid_nodeREADReturns a user's node. via GET /api/v2/users/{userId}/node
zep_get_users_by_userid_threadsREADReturns all threads for a user. via GET /api/v2/users/{userId}/threads
zep_get_users_by_userid_warmREADHints Zep to warm a user's graph for low-latency search. via GET /api/v2/users/{userId}/warm
zep_get_users_orderedREADReturns all users. via GET /api/v2/users-ordered
zep_patch_graph_by_graphidWRITEUpdates information about a graph. via PATCH /api/v2/graph/{graphId}
zep_patch_graph_edge_by_uuidWRITEUpdates an entity edge by UUID. via PATCH /api/v2/graph/edge/{uuid}
zep_patch_graph_episodes_by_uuidWRITEUpdate episode metadata with merge semantics. Supplied keys overwrite or add to existing metadata; keys set to null are removed. via PATCH /api/v2/graph/episodes/{uuid}
zep_patch_graph_node_by_uuidWRITEUpdates an entity node by UUID. via PATCH /api/v2/graph/node/{uuid}
zep_patch_messages_by_messageuuidWRITEUpdates a message. via PATCH /api/v2/messages/{messageUUID}
zep_patch_projects_infoWRITESets or clears the project-level fallback time zone for the API key's project. via PATCH /api/v2/projects/info
zep_patch_user_groups_by_groupuuidWRITEUpdate a managed UserGroup. via PATCH /api/v2/user-groups/{groupUUID}
zep_patch_users_by_useridWRITEUpdates a user. via PATCH /api/v2/users/{userId}
zep_post_abac_user_groups_by_groupuuid_policy_setsWRITEAttach a policy set to a UserGroup. NOT callable with a project API key: Zep restricts ABAC policy-set management to account administrators through the zepctl CLI, so this tool answers with a refusal naming that rather than a bare 403. via POST /api/v2/abac/user-groups/{groupUUID}/policy-sets
zep_post_batchesWRITECreate a draft batch that can be filled with graph episodes and thread messages. via POST /api/v2/batches
zep_post_batches_by_batchid_itemsWRITEAdd graph episodes and thread messages to a draft batch. Items are appended in request order. via POST /api/v2/batches/{batchId}/items
zep_post_batches_by_batchid_processWRITEStart processing a filled batch. Repeated calls return a conflict. via POST /api/v2/batches/{batchId}/process
zep_post_context_templatesWRITECreates a new context template. via POST /api/v2/context-templates
zep_post_custom_instructionsWRITEAdds new custom instructions for graphs without removing existing ones. If user_ids or graph_ids is empty, adds to project-wide default instructions. via POST /api/v2/custom-instructions
zep_post_graphWRITEAdd data to the graph. via POST /api/v2/graph
zep_post_graph_add_fact_tripleWRITEAdd a fact triple for a user or group. via POST /api/v2/graph/add-fact-triple
zep_post_graph_batchWRITEDeprecated. Use the [Batch API](/adding-batch-data) (`client.batch.*`) instead. Adds data to the graph in batch mode, processing episodes concurrently. via POST /api/v2/graph-batch
zep_post_graph_cloneWRITEClone a user or group graph. via POST /api/v2/graph/clone
zep_post_graph_createWRITECreates a new graph. via POST /api/v2/graph/create
zep_post_graph_document_summary_graph_by_graph_idWRITEReturns incremental document summaries associated with the graph. Document summaries are derived similarly to thread summaries. via POST /api/v2/graph/document-summary/graph/{graph_id}
zep_post_graph_edge_graph_by_graph_idWRITEReturns all edges for a graph. via POST /api/v2/graph/edge/graph/{graph_id}
zep_post_graph_edge_user_by_user_idWRITEReturns all edges for a user. via POST /api/v2/graph/edge/user/{user_id}
zep_post_graph_episodes_graph_by_graph_idWRITEReturns a paginated, filterable list of episodes for a graph. via POST /api/v2/graph/episodes/graph/{graph_id}
zep_post_graph_episodes_user_by_user_idWRITEReturns a paginated, filterable list of episodes for a user's graph. via POST /api/v2/graph/episodes/user/{user_id}
zep_post_graph_node_by_node_uuid_neighborsWRITEEnumerates the distinct entity nodes directly connected to a node, together with the edges connecting each to it. via POST /api/v2/graph/node/{node_uuid}/neighbors
zep_post_graph_node_graph_by_graph_idWRITEReturns all nodes for a graph. via POST /api/v2/graph/node/graph/{graph_id}
zep_post_graph_node_user_by_user_idWRITEReturns all nodes for a user. via POST /api/v2/graph/node/user/{user_id}
zep_post_graph_nodesWRITEAdd entity nodes to a user or graph directly, without episode ingestion. Up to 100 nodes per request. via POST /api/v2/graph/nodes
zep_post_graph_observation_graph_by_graph_idWRITEReturns read-only observation nodes for a graph. via POST /api/v2/graph/observation/graph/{graph_id}
zep_post_graph_observation_user_by_user_idWRITEReturns read-only observation nodes for a user's graph. via POST /api/v2/graph/observation/user/{user_id}
zep_post_graph_patternsWRITEDeprecated. Pattern detection is not part of Public API v4. Detects structural patterns in a knowledge graph including relationship frequencies, multi-hop paths, co-occurrences, hubs, and clusters. via POST /api/v2/graph/patterns
zep_post_graph_searchWRITEPerform a graph search query. via POST /api/v2/graph/search
zep_post_graph_subgraphWRITEReturns the bounded neighborhood of a set of seed nodes as a single {nodes, edges} payload: breadth-first expansion up to a caller-specified depth, subject to explicit budgets, with explicit truncation reporting. via POST /api/v2/graph/subgraph
zep_post_graph_thread_summary_graph_by_graph_idWRITEReturns incremental thread summaries associated with the graph. via POST /api/v2/graph/thread-summary/graph/{graph_id}
zep_post_graph_thread_summary_user_by_user_idWRITEReturns incremental thread summaries generated from messages in each thread associated with the user's graph. via POST /api/v2/graph/thread-summary/user/{user_id}
zep_post_threadsWRITEStart a new thread. via POST /api/v2/threads
zep_post_threads_by_threadid_messagesWRITEAdd messages to a thread. via POST /api/v2/threads/{threadId}/messages
zep_post_threads_by_threadid_messages_batchWRITEDeprecated. Use the [Batch API](/adding-batch-data) (`client.batch.*` with `type: "thread_message"`) instead. Adds messages to a thread in batch mode, processing messages concurrently. via POST /api/v2/threads/{threadId}/messages-batch
zep_post_user_groupsWRITECreate a managed UserGroup. via POST /api/v2/user-groups
zep_post_user_groups_by_groupuuid_membersWRITEAdd members to a managed UserGroup. via POST /api/v2/user-groups/{groupUUID}/members
zep_post_user_groups_by_groupuuid_members_bulk_removeWRITERemove members from a managed UserGroup. via POST /api/v2/user-groups/{groupUUID}/members/bulk-remove
zep_post_user_summary_instructionsWRITEAdds new summary instructions for users graphs without removing existing ones. If user_ids is empty, adds to project-wide default instructions. via POST /api/v2/user-summary-instructions
zep_post_usersWRITEAdds a user. via POST /api/v2/users
zep_put_context_templates_by_template_idWRITEUpdates an existing context template by template_id. via PUT /api/v2/context-templates/{template_id}
zep_put_graph_set_ontologyWRITESets custom entity and edge types for your graph. This wrapper method provides a clean interface for defining your graph schema with custom entity and edge types. See the [full documentation](/customizing-graph-structure#setting-entity-and-edge-types) for details. via PUT /api/v2/entity-types
zep_put_projects_observation_steeringWRITEReplaces project, user, or graph steering. An empty configuration clears the project default or removes the user/graph override. Changes affect later materializer runs only. This API is experimental and may change in future releases. via PUT /api/v2/projects/observation-steering
Put Zep behind one governed endpoint.
Same permissions, same audit trail, whatever else you connect next.