{ "opencollection": "1.0.0", "info": { "name": "Letta Admin Agents API", "version": "1.0.0" }, "request": { "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "items": [ { "info": { "name": "Agents", "type": "folder" }, "items": [ { "info": { "name": "List Agents", "type": "http" }, "http": { "method": "GET", "url": "https://api.letta.com/v1/agents/", "params": [ { "name": "name", "value": "", "type": "query", "description": "Name of the agent" }, { "name": "tags", "value": "", "type": "query", "description": "List of tags to filter agents by" }, { "name": "match_all_tags", "value": "", "type": "query", "description": "If True, only returns agents that match ALL given tags. Otherwise, return agents that have ANY of the passed-in tags." }, { "name": "before", "value": "", "type": "query", "description": "Cursor for pagination" }, { "name": "after", "value": "", "type": "query", "description": "Cursor for pagination" }, { "name": "limit", "value": "", "type": "query", "description": "Limit for pagination" }, { "name": "query_text", "value": "", "type": "query", "description": "Search agents by name" }, { "name": "project_id", "value": "", "type": "query", "description": "Search agents by project ID - this will default to your default project on cloud" }, { "name": "template_id", "value": "", "type": "query", "description": "Search agents by template ID" }, { "name": "base_template_id", "value": "", "type": "query", "description": "Search agents by base template ID" }, { "name": "identity_id", "value": "", "type": "query", "description": "Search agents by identity ID" }, { "name": "identifier_keys", "value": "", "type": "query", "description": "Search agents by identifier keys" }, { "name": "include_relationships", "value": "", "type": "query", "description": "Specify which relational fields (e.g., 'tools', 'sources', 'memory') to include in the response. If not provided, all relationships are loaded by default. Using this can optimize performance by reducing unnecessary joins.This is a legacy parameter, and no longer supported after 1.0.0 SDK versions." }, { "name": "include", "value": "", "type": "query", "description": "Specify which relational fields to include in the response. No relationships are included by default." }, { "name": "order", "value": "", "type": "query", "description": "Sort order for agents by creation time. 'asc' for oldest first, 'desc' for newest first" }, { "name": "order_by", "value": "", "type": "query", "description": "Field to sort by" }, { "name": "ascending", "value": "", "type": "query", "description": "Whether to sort agents oldest to newest (True) or newest to oldest (False, default)" }, { "name": "sort_by", "value": "", "type": "query", "description": "Field to sort by. Options: 'created_at' (default), 'last_run_completion'" }, { "name": "last_stop_reason", "value": "", "type": "query", "description": "Filter agents by their last stop reason." }, { "name": "created_by_id", "value": "", "type": "query", "description": "Filter agents by the user who created them." } ] }, "docs": "Get a list of all agents." }, { "info": { "name": "Create Agent", "type": "http" }, "http": { "method": "POST", "url": "https://api.letta.com/v1/agents/", "headers": [ { "name": "X-Project", "value": "" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Create an agent." }, { "info": { "name": "Count Agents", "type": "http" }, "http": { "method": "GET", "url": "https://api.letta.com/v1/agents/count", "params": [ { "name": "name", "value": "", "type": "query", "description": "Name of the agent" }, { "name": "tags", "value": "", "type": "query", "description": "List of tags to filter agents by" }, { "name": "match_all_tags", "value": "", "type": "query", "description": "If True, only counts agents that match ALL given tags. Otherwise, counts agents that have ANY of the passed-in tags." }, { "name": "query_text", "value": "", "type": "query", "description": "Search agents by name" }, { "name": "project_id", "value": "", "type": "query", "description": "Search agents by project ID - this will default to your default project on cloud" }, { "name": "template_id", "value": "", "type": "query", "description": "Search agents by template ID" }, { "name": "base_template_id", "value": "", "type": "query", "description": "Search agents by base template ID" }, { "name": "identity_id", "value": "", "type": "query", "description": "Search agents by identity ID" }, { "name": "identifier_keys", "value": "", "type": "query", "description": "Search agents by identifier keys" }, { "name": "last_stop_reason", "value": "", "type": "query", "description": "Filter agents by their last stop reason." }, { "name": "created_by_id", "value": "", "type": "query", "description": "Filter agents by the user who created them." } ] }, "docs": "Get the total number of agents with optional filtering.\nSupports the same filters as list_agents for consistent querying." }, { "info": { "name": "Export Agent", "type": "http" }, "http": { "method": "GET", "url": "https://api.letta.com/v1/agents/:agent_id/export", "params": [ { "name": "agent_id", "value": "", "type": "path" }, { "name": "max_steps", "value": "", "type": "query" }, { "name": "use_legacy_format", "value": "", "type": "query", "description": "If True, exports using the legacy single-agent 'v1' format with inline tools/blocks. If False, exports using the new multi-entity 'v2' format, with separate agents, tools, blocks, files, etc." }, { "name": "conversation_id", "value": "", "type": "query", "description": "Conversation ID to export. If provided, uses messages from this conversation instead of the agent's global message history." }, { "name": "scrub_messages", "value": "", "type": "query", "description": "If True, excludes all messages from the export. Useful for sharing agent configs without conversation history." } ], "body": { "type": "json", "data": "{}" } }, "docs": "Export the serialized JSON representation of an agent, formatted with indentation." }, { "info": { "name": "Export Agent with Skills", "type": "http" }, "http": { "method": "POST", "url": "https://api.letta.com/v1/agents/:agent_id/export", "params": [ { "name": "agent_id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Export the serialized JSON representation of an agent with optional skills.\n\nThis POST endpoint allows including skills in the export by providing them in the request body.\nSkills are resolved client-side and passed as SkillSchema objects containing the skill files." }, { "info": { "name": "Import Agent", "type": "http" }, "http": { "method": "POST", "url": "https://api.letta.com/v1/agents/import", "headers": [ { "name": "x-override-embedding-model", "value": "" } ], "body": { "type": "multipart-form", "data": [] } }, "docs": "Import a serialized agent file and recreate the agent(s) in the system.\nReturns the IDs of all imported agents." }, { "info": { "name": "Retrieve Agent Context Window", "type": "http" }, "http": { "method": "GET", "url": "https://api.letta.com/v1/agents/:agent_id/context", "params": [ { "name": "agent_id", "value": "", "type": "path", "description": "The ID of the agent in the format 'agent-'" }, { "name": "conversation_id", "value": "", "type": "query", "description": "Conversation ID to get context window for. If provided, uses messages from this conversation." } ] }, "docs": "Retrieve the context window of a specific agent." }, { "info": { "name": "Retrieve Agent", "type": "http" }, "http": { "method": "GET", "url": "https://api.letta.com/v1/agents/:agent_id", "params": [ { "name": "agent_id", "value": "", "type": "path", "description": "The ID of the agent in the format 'agent-'" }, { "name": "include_relationships", "value": "", "type": "query", "description": "Specify which relational fields (e.g., 'tools', 'sources', 'memory') to include in the response. If not provided, all relationships are loaded by default. Using this can optimize performance by reducing unnecessary joins.This is a legacy parameter, and no longer supported after 1.0.0 SDK versions." }, { "name": "include", "value": "", "type": "query", "description": "Specify which relational fields to include in the response. No relationships are included by default." } ] }, "docs": "Get the state of the agent." }, { "info": { "name": "Modify Agent", "type": "http" }, "http": { "method": "PATCH", "url": "https://api.letta.com/v1/agents/:agent_id", "params": [ { "name": "agent_id", "value": "", "type": "path", "description": "The ID of the agent in the format 'agent-'" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update an existing agent." }, { "info": { "name": "Delete Agent", "type": "http" }, "http": { "method": "DELETE", "url": "https://api.letta.com/v1/agents/:agent_id", "params": [ { "name": "agent_id", "value": "", "type": "path", "description": "The ID of the agent in the format 'agent-'" } ] }, "docs": "Delete an agent." }, { "info": { "name": "List Tools for Agent", "type": "http" }, "http": { "method": "GET", "url": "https://api.letta.com/v1/agents/:agent_id/tools", "params": [ { "name": "agent_id", "value": "", "type": "path", "description": "The ID of the agent in the format 'agent-'" }, { "name": "before", "value": "", "type": "query", "description": "Tool ID cursor for pagination. Returns tools that come before this tool ID in the specified sort order" }, { "name": "after", "value": "", "type": "query", "description": "Tool ID cursor for pagination. Returns tools that come after this tool ID in the specified sort order" }, { "name": "limit", "value": "", "type": "query", "description": "Maximum number of tools to return" }, { "name": "order", "value": "", "type": "query", "description": "Sort order for tools by creation time. 'asc' for oldest first, 'desc' for newest first" }, { "name": "order_by", "value": "", "type": "query", "description": "Field to sort by" } ] }, "docs": "Get tools from an existing agent." }, { "info": { "name": "Attach Tool to Agent", "type": "http" }, "http": { "method": "PATCH", "url": "https://api.letta.com/v1/agents/:agent_id/tools/attach/:tool_id", "params": [ { "name": "tool_id", "value": "", "type": "path", "description": "The ID of the tool in the format 'tool-'" }, { "name": "agent_id", "value": "", "type": "path", "description": "The ID of the agent in the format 'agent-'" } ] }, "docs": "Attach a tool to an agent." }, { "info": { "name": "Detach Tool from Agent", "type": "http" }, "http": { "method": "PATCH", "url": "https://api.letta.com/v1/agents/:agent_id/tools/detach/:tool_id", "params": [ { "name": "tool_id", "value": "", "type": "path", "description": "The ID of the tool in the format 'tool-'" }, { "name": "agent_id", "value": "", "type": "path", "description": "The ID of the agent in the format 'agent-'" } ] }, "docs": "Detach a tool from an agent." }, { "info": { "name": "Modify Approval for Tool", "type": "http" }, "http": { "method": "PATCH", "url": "https://api.letta.com/v1/agents/:agent_id/tools/approval/:tool_name", "params": [ { "name": "tool_name", "value": "", "type": "path" }, { "name": "agent_id", "value": "", "type": "path", "description": "The ID of the agent in the format 'agent-'" }, { "name": "requires_approval", "value": "", "type": "query", "description": "Whether the tool requires approval before execution" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Modify the approval requirement for a tool attached to an agent.\n\nAccepts requires_approval via request body (preferred) or query parameter (deprecated)." }, { "info": { "name": "Run Tool for Agent", "type": "http" }, "http": { "method": "POST", "url": "https://api.letta.com/v1/agents/:agent_id/tools/:tool_name/run", "params": [ { "name": "agent_id", "value": "", "type": "path", "description": "The ID of the agent in the format 'agent-'" }, { "name": "tool_name", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Trigger a tool by name on a specific agent, providing the necessary arguments.\n\nThis endpoint executes a tool that is attached to the agent, using the agent's\nstate and environment variables for execution context." }, { "info": { "name": "Attach Source", "type": "http" }, "http": { "method": "PATCH", "url": "https://api.letta.com/v1/agents/:agent_id/sources/attach/:source_id", "params": [ { "name": "source_id", "value": "", "type": "path", "description": "The ID of the source in the format 'source-'" }, { "name": "agent_id", "value": "", "type": "path", "description": "The ID of the agent in the format 'agent-'" } ] }, "docs": "Attach a source to an agent." }, { "info": { "name": "Attach Folder to Agent", "type": "http" }, "http": { "method": "PATCH", "url": "https://api.letta.com/v1/agents/:agent_id/folders/attach/:folder_id", "params": [ { "name": "folder_id", "value": "", "type": "path", "description": "The ID of the source in the format 'source-'" }, { "name": "agent_id", "value": "", "type": "path", "description": "The ID of the agent in the format 'agent-'" } ] }, "docs": "Attach a folder to an agent." }, { "info": { "name": "Detach Source", "type": "http" }, "http": { "method": "PATCH", "url": "https://api.letta.com/v1/agents/:agent_id/sources/detach/:source_id", "params": [ { "name": "source_id", "value": "", "type": "path", "description": "The ID of the source in the format 'source-'" }, { "name": "agent_id", "value": "", "type": "path", "description": "The ID of the agent in the format 'agent-'" } ] }, "docs": "Detach a source from an agent." }, { "info": { "name": "Detach Folder from Agent", "type": "http" }, "http": { "method": "PATCH", "url": "https://api.letta.com/v1/agents/:agent_id/folders/detach/:folder_id", "params": [ { "name": "folder_id", "value": "", "type": "path", "description": "The ID of the source in the format 'source-'" }, { "name": "agent_id", "value": "", "type": "path", "description": "The ID of the agent in the format 'agent-'" } ] }, "docs": "Detach a folder from an agent." }, { "info": { "name": "Close All Files for Agent", "type": "http" }, "http": { "method": "PATCH", "url": "https://api.letta.com/v1/agents/:agent_id/files/close-all", "params": [ { "name": "agent_id", "value": "", "type": "path", "description": "The ID of the agent in the format 'agent-'" } ] }, "docs": "Closes all currently open files for a given agent.\n\nThis endpoint updates the file state for the agent so that no files are marked as open.\nTypically used to reset the working memory view for the agent." }, { "info": { "name": "Open File for Agent", "type": "http" }, "http": { "method": "PATCH", "url": "https://api.letta.com/v1/agents/:agent_id/files/:file_id/open", "params": [ { "name": "file_id", "value": "", "type": "path", "description": "The ID of the file in the format 'file-'" }, { "name": "agent_id", "value": "", "type": "path", "description": "The ID of the agent in the format 'agent-'" } ] }, "docs": "Opens a specific file for a given agent.\n\nThis endpoint marks a specific file as open in the agent's file state.\nThe file will be included in the agent's working memory view.\nReturns a list of file names that were closed due to LRU eviction." }, { "info": { "name": "Close File for Agent", "type": "http" }, "http": { "method": "PATCH", "url": "https://api.letta.com/v1/agents/:agent_id/files/:file_id/close", "params": [ { "name": "file_id", "value": "", "type": "path", "description": "The ID of the file in the format 'file-'" }, { "name": "agent_id", "value": "", "type": "path", "description": "The ID of the agent in the format 'agent-'" } ] }, "docs": "Closes a specific file for a given agent.\n\nThis endpoint marks a specific file as closed in the agent's file state.\nThe file will be removed from the agent's working memory view." }, { "info": { "name": "List Agent Sources", "type": "http" }, "http": { "method": "GET", "url": "https://api.letta.com/v1/agents/:agent_id/sources", "params": [ { "name": "agent_id", "value": "", "type": "path", "description": "The ID of the agent in the format 'agent-'" }, { "name": "before", "value": "", "type": "query", "description": "Source ID cursor for pagination. Returns sources that come before this source ID in the specified sort order" }, { "name": "after", "value": "", "type": "query", "description": "Source ID cursor for pagination. Returns sources that come after this source ID in the specified sort order" }, { "name": "limit", "value": "", "type": "query", "description": "Maximum number of sources to return" }, { "name": "order", "value": "", "type": "query", "description": "Sort order for sources by creation time. 'asc' for oldest first, 'desc' for newest first" }, { "name": "order_by", "value": "", "type": "query", "description": "Field to sort by" } ] }, "docs": "Get the sources associated with an agent." }, { "info": { "name": "List Folders for Agent", "type": "http" }, "http": { "method": "GET", "url": "https://api.letta.com/v1/agents/:agent_id/folders", "params": [ { "name": "agent_id", "value": "", "type": "path", "description": "The ID of the agent in the format 'agent-'" }, { "name": "before", "value": "", "type": "query", "description": "Source ID cursor for pagination. Returns sources that come before this source ID in the specified sort order" }, { "name": "after", "value": "", "type": "query", "description": "Source ID cursor for pagination. Returns sources that come after this source ID in the specified sort order" }, { "name": "limit", "value": "", "type": "query", "description": "Maximum number of sources to return" }, { "name": "order", "value": "", "type": "query", "description": "Sort order for sources by creation time. 'asc' for oldest first, 'desc' for newest first" }, { "name": "order_by", "value": "", "type": "query", "description": "Field to sort by" } ] }, "docs": "Get the folders associated with an agent." }, { "info": { "name": "List Files for Agent", "type": "http" }, "http": { "method": "GET", "url": "https://api.letta.com/v1/agents/:agent_id/files", "params": [ { "name": "agent_id", "value": "", "type": "path", "description": "The ID of the agent in the format 'agent-'" }, { "name": "before", "value": "", "type": "query", "description": "File ID cursor for pagination. Returns files that come before this file ID in the specified sort order" }, { "name": "after", "value": "", "type": "query", "description": "File ID cursor for pagination. Returns files that come after this file ID in the specified sort order" }, { "name": "limit", "value": "", "type": "query", "description": "Maximum number of files to return" }, { "name": "order", "value": "", "type": "query", "description": "Sort order for files by creation time. 'asc' for oldest first, 'desc' for newest first" }, { "name": "order_by", "value": "", "type": "query", "description": "Field to sort by" }, { "name": "cursor", "value": "", "type": "query", "description": "Pagination cursor from previous response (deprecated, use before/after)" }, { "name": "is_open", "value": "", "type": "query", "description": "Filter by open status (true for open files, false for closed files)" } ] }, "docs": "Get the files attached to an agent with their open/closed status." }, { "info": { "name": "Retrieve Agent Memory", "type": "http" }, "http": { "method": "GET", "url": "https://api.letta.com/v1/agents/:agent_id/core-memory", "params": [ { "name": "agent_id", "value": "", "type": "path", "description": "The ID of the agent in the format 'agent-'" } ] }, "docs": "Retrieve the memory state of a specific agent.\nThis endpoint fetches the current memory state of the agent identified by the user ID and agent ID." }, { "info": { "name": "Retrieve Block for Agent", "type": "http" }, "http": { "method": "GET", "url": "https://api.letta.com/v1/agents/:agent_id/core-memory/blocks/:block_label", "params": [ { "name": "block_label", "value": "", "type": "path" }, { "name": "agent_id", "value": "", "type": "path", "description": "The ID of the agent in the format 'agent-'" } ] }, "docs": "Retrieve a core memory block from an agent." }, { "info": { "name": "Modify Block for Agent", "type": "http" }, "http": { "method": "PATCH", "url": "https://api.letta.com/v1/agents/:agent_id/core-memory/blocks/:block_label", "params": [ { "name": "block_label", "value": "", "type": "path" }, { "name": "agent_id", "value": "", "type": "path", "description": "The ID of the agent in the format 'agent-'" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Updates a core memory block of an agent." }, { "info": { "name": "List Blocks for Agent", "type": "http" }, "http": { "method": "GET", "url": "https://api.letta.com/v1/agents/:agent_id/core-memory/blocks", "params": [ { "name": "agent_id", "value": "", "type": "path", "description": "The ID of the agent in the format 'agent-'" }, { "name": "before", "value": "", "type": "query", "description": "Block ID cursor for pagination. Returns blocks that come before this block ID in the specified sort order" }, { "name": "after", "value": "", "type": "query", "description": "Block ID cursor for pagination. Returns blocks that come after this block ID in the specified sort order" }, { "name": "limit", "value": "", "type": "query", "description": "Maximum number of blocks to return" }, { "name": "order", "value": "", "type": "query", "description": "Sort order for blocks by creation time. 'asc' for oldest first, 'desc' for newest first" }, { "name": "order_by", "value": "", "type": "query", "description": "Field to sort by" } ] }, "docs": "Retrieve the core memory blocks of a specific agent." }, { "info": { "name": "Recompile Agent", "type": "http" }, "http": { "method": "POST", "url": "https://api.letta.com/v1/agents/:agent_id/recompile", "params": [ { "name": "agent_id", "value": "", "type": "path", "description": "The ID of the agent in the format 'agent-'" }, { "name": "update_timestamp", "value": "", "type": "query", "description": "If True, update the in-context memory last edit timestamp embedded in the system prompt." }, { "name": "dry_run", "value": "", "type": "query", "description": "If True, do not persist changes; still returns the compiled system prompt." } ] }, "docs": "Manually trigger system prompt recompilation for an agent." }, { "info": { "name": "Recompile Agent System Prompt", "type": "http" }, "http": { "method": "POST", "url": "https://api.letta.com/v1/agents/:agent_id/system-prompt/recompile", "params": [ { "name": "agent_id", "value": "", "type": "path", "description": "The ID of the agent in the format 'agent-'" }, { "name": "update_timestamp", "value": "", "type": "query", "description": "If True, update the in-context memory last edit timestamp embedded in the system prompt." }, { "name": "dry_run", "value": "", "type": "query", "description": "If True, do not persist changes; still returns the compiled system prompt." } ] }, "docs": "Deprecated alias for POST /v1/agents/{agent_id}/recompile." }, { "info": { "name": "Attach Block to Agent", "type": "http" }, "http": { "method": "PATCH", "url": "https://api.letta.com/v1/agents/:agent_id/core-memory/blocks/attach/:block_id", "params": [ { "name": "block_id", "value": "", "type": "path", "description": "The ID of the block in the format 'block-'" }, { "name": "agent_id", "value": "", "type": "path", "description": "The ID of the agent in the format 'agent-'" } ] }, "docs": "Attach a core memory block to an agent." }, { "info": { "name": "Detach Block from Agent", "type": "http" }, "http": { "method": "PATCH", "url": "https://api.letta.com/v1/agents/:agent_id/core-memory/blocks/detach/:block_id", "params": [ { "name": "block_id", "value": "", "type": "path", "description": "The ID of the block in the format 'block-'" }, { "name": "agent_id", "value": "", "type": "path", "description": "The ID of the agent in the format 'agent-'" } ] }, "docs": "Detach a core memory block from an agent." }, { "info": { "name": "Attach Archive to Agent", "type": "http" }, "http": { "method": "PATCH", "url": "https://api.letta.com/v1/agents/:agent_id/archives/attach/:archive_id", "params": [ { "name": "archive_id", "value": "", "type": "path" }, { "name": "agent_id", "value": "", "type": "path", "description": "The ID of the agent in the format 'agent-'" } ] }, "docs": "Attach an archive to an agent." }, { "info": { "name": "Detach Archive from Agent", "type": "http" }, "http": { "method": "PATCH", "url": "https://api.letta.com/v1/agents/:agent_id/archives/detach/:archive_id", "params": [ { "name": "archive_id", "value": "", "type": "path" }, { "name": "agent_id", "value": "", "type": "path", "description": "The ID of the agent in the format 'agent-'" } ] }, "docs": "Detach an archive from an agent." }, { "info": { "name": "Attach Identity to Agent", "type": "http" }, "http": { "method": "PATCH", "url": "https://api.letta.com/v1/agents/:agent_id/identities/attach/:identity_id", "params": [ { "name": "identity_id", "value": "", "type": "path" }, { "name": "agent_id", "value": "", "type": "path", "description": "The ID of the agent in the format 'agent-'" } ] }, "docs": "Attach an identity to an agent." }, { "info": { "name": "Detach Identity from Agent", "type": "http" }, "http": { "method": "PATCH", "url": "https://api.letta.com/v1/agents/:agent_id/identities/detach/:identity_id", "params": [ { "name": "identity_id", "value": "", "type": "path" }, { "name": "agent_id", "value": "", "type": "path", "description": "The ID of the agent in the format 'agent-'" } ] }, "docs": "Detach an identity from an agent." }, { "info": { "name": "List Passages", "type": "http" }, "http": { "method": "GET", "url": "https://api.letta.com/v1/agents/:agent_id/archival-memory", "params": [ { "name": "agent_id", "value": "", "type": "path", "description": "The ID of the agent in the format 'agent-'" }, { "name": "after", "value": "", "type": "query", "description": "Unique ID of the memory to start the query range at." }, { "name": "before", "value": "", "type": "query", "description": "Unique ID of the memory to end the query range at." }, { "name": "limit", "value": "", "type": "query", "description": "How many results to include in the response." }, { "name": "search", "value": "", "type": "query", "description": "Search passages by text" }, { "name": "ascending", "value": "", "type": "query", "description": "Whether to sort passages oldest to newest (True, default) or newest to oldest (False)" } ] }, "docs": "Retrieve the memories in an agent's archival memory store (paginated query)." }, { "info": { "name": "Create Passage", "type": "http" }, "http": { "method": "POST", "url": "https://api.letta.com/v1/agents/:agent_id/archival-memory", "params": [ { "name": "agent_id", "value": "", "type": "path", "description": "The ID of the agent in the format 'agent-'" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Insert a memory into an agent's archival memory store." }, { "info": { "name": "Search Archival Memory", "type": "http" }, "http": { "method": "GET", "url": "https://api.letta.com/v1/agents/:agent_id/archival-memory/search", "params": [ { "name": "agent_id", "value": "", "type": "path", "description": "The ID of the agent in the format 'agent-'" }, { "name": "query", "value": "", "type": "query", "description": "String to search for using semantic similarity" }, { "name": "tags", "value": "", "type": "query", "description": "Optional list of tags to filter search results" }, { "name": "tag_match_mode", "value": "", "type": "query", "description": "How to match tags - 'any' to match passages with any of the tags, 'all' to match only passages with all tags" }, { "name": "top_k", "value": "", "type": "query", "description": "Maximum number of results to return. Uses system default if not specified" }, { "name": "start_datetime", "value": "", "type": "query", "description": "Filter results to passages created after this datetime" }, { "name": "end_datetime", "value": "", "type": "query", "description": "Filter results to passages created before this datetime" } ] }, "docs": "Search archival memory using semantic (embedding-based) search with optional temporal filtering.\n\nThis endpoint allows manual triggering of archival memory searches, enabling users to query\nan agent's archival memory store directly via the API. The search uses the same functionality\nas the agent's archival_memory_search tool but is accessible for external API usage." }, { "info": { "name": "Delete Passage", "type": "http" }, "http": { "method": "DELETE", "url": "https://api.letta.com/v1/agents/:agent_id/archival-memory/:memory_id", "params": [ { "name": "memory_id", "value": "", "type": "path" }, { "name": "agent_id", "value": "", "type": "path", "description": "The ID of the agent in the format 'agent-'" } ] }, "docs": "Delete a memory from an agent's archival memory store." }, { "info": { "name": "List Messages", "type": "http" }, "http": { "method": "GET", "url": "https://api.letta.com/v1/agents/:agent_id/messages", "params": [ { "name": "agent_id", "value": "", "type": "path", "description": "The ID of the agent in the format 'agent-'" }, { "name": "before", "value": "", "type": "query", "description": "Message ID cursor for pagination. Returns messages that come before this message ID in the specified sort order" }, { "name": "after", "value": "", "type": "query", "description": "Message ID cursor for pagination. Returns messages that come after this message ID in the specified sort order" }, { "name": "limit", "value": "", "type": "query", "description": "Maximum number of messages to return" }, { "name": "order", "value": "", "type": "query", "description": "Sort order for messages by creation time. 'asc' for oldest first, 'desc' for newest first" }, { "name": "order_by", "value": "", "type": "query", "description": "Field to sort by" }, { "name": "group_id", "value": "", "type": "query", "description": "Group ID to filter messages by." }, { "name": "conversation_id", "value": "", "type": "query", "description": "Conversation ID to filter messages by." }, { "name": "use_assistant_message", "value": "", "type": "query", "description": "Whether to use assistant messages" }, { "name": "assistant_message_tool_name", "value": "", "type": "query", "description": "The name of the designated message tool." }, { "name": "assistant_message_tool_kwarg", "value": "", "type": "query", "description": "The name of the message argument." }, { "name": "include_err", "value": "", "type": "query", "description": "Whether to include error messages and error statuses. For debugging purposes only." }, { "name": "include_return_message_types", "value": "", "type": "query", "description": "Message types to include in response. When null, all message types are returned." } ] }, "docs": "Retrieve message history for an agent." }, { "info": { "name": "Send Message", "type": "http" }, "http": { "method": "POST", "url": "https://api.letta.com/v1/agents/:agent_id/messages", "params": [ { "name": "agent_id", "value": "", "type": "path", "description": "The ID of the agent in the format 'agent-'" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Process a user message and return the agent's response.\nThis endpoint accepts a message from a user and processes it through the agent.\n\n**Note:** Sending multiple concurrent requests to the same agent can lead to undefined behavior.\nEach agent processes messages sequentially, and concurrent requests may interleave in unexpected ways.\nWait for each request to complete before sending the next one. Use separate agents or conversations for parallel processing.\n\nThe response format is controlled by " }, { "info": { "name": "Modify Message", "type": "http" }, "http": { "method": "PATCH", "url": "https://api.letta.com/v1/agents/:agent_id/messages/:message_id", "params": [ { "name": "agent_id", "value": "", "type": "path", "description": "The ID of the agent in the format 'agent-'" }, { "name": "message_id", "value": "", "type": "path", "description": "The ID of the message in the format 'message-'" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Update the details of a message associated with an agent.\n\n**Deprecated**: Messages are now considered immutable since they can be shared across\nmultiple conversations via forking. This endpoint will be removed in a future version." }, { "info": { "name": "Send Message Streaming", "type": "http" }, "http": { "method": "POST", "url": "https://api.letta.com/v1/agents/:agent_id/messages/stream", "params": [ { "name": "agent_id", "value": "", "type": "path", "description": "The ID of the agent in the format 'agent-'" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Process a user message and return the agent's response.\n\nDeprecated: Use the `POST /{agent_id}/messages` endpoint with `streaming=true` in the request body instead.\n\n**Note:** Sending multiple concurrent requests to the same agent can lead to undefined behavior.\nEach agent processes messages sequentially, and concurrent requests may interleave in unexpected ways.\nWait for each request to complete before sending the next one. Use separate agents or conversations for parallel processing.\n\nThis end" }, { "info": { "name": "Cancel Message", "type": "http" }, "http": { "method": "POST", "url": "https://api.letta.com/v1/agents/:agent_id/messages/cancel", "params": [ { "name": "agent_id", "value": "", "type": "path", "description": "The ID of the agent in the format 'agent-'" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Cancel runs associated with an agent. If run_ids are passed in, cancel those in particular.\n\nNote to cancel active runs associated with an agent, redis is required." }, { "info": { "name": "Generate Completion", "type": "http" }, "http": { "method": "POST", "url": "https://api.letta.com/v1/agents/:agent_id/generate", "params": [ { "name": "agent_id", "value": "", "type": "path", "description": "The ID of the agent in the format 'agent-'" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Generate a completion directly from the LLM provider using the agent's configuration.\n\nThis endpoint makes a direct request to the LLM provider without any agent processing:\n- No memory or context retrieval\n- No tool calling\n- No message persistence\n- No agent state modification\n\nSimply provide a prompt, and the endpoint formats it as a user message.\nOptionally include a system_prompt for context/instructions.\n\nThe agent's LLM configuration (model, credentials, settings) is used by default.\nUse " }, { "info": { "name": "Search Messages", "type": "http" }, "http": { "method": "POST", "url": "https://api.letta.com/v1/agents/messages/search", "body": { "type": "json", "data": "{}" } }, "docs": "Search messages across the entire organization with optional project and template filtering. Returns messages with FTS/vector ranks and total RRF score.\n\nThis is a cloud-only feature." }, { "info": { "name": "Send Message Async", "type": "http" }, "http": { "method": "POST", "url": "https://api.letta.com/v1/agents/:agent_id/messages/async", "params": [ { "name": "agent_id", "value": "", "type": "path", "description": "The ID of the agent in the format 'agent-'" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Asynchronously process a user message and return a run object.\nThe actual processing happens in the background, and the status can be checked using the run ID.\n\nThis is \"asynchronous\" in the sense that it's a background run and explicitly must be fetched by the run ID.\n\n**Note:** Sending multiple concurrent requests to the same agent can lead to undefined behavior.\nEach agent processes messages sequentially, and concurrent requests may interleave in unexpected ways.\nWait for each request to comp" }, { "info": { "name": "Reset Messages", "type": "http" }, "http": { "method": "PATCH", "url": "https://api.letta.com/v1/agents/:agent_id/reset-messages", "params": [ { "name": "agent_id", "value": "", "type": "path", "description": "The ID of the agent in the format 'agent-'" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Resets the messages for an agent" }, { "info": { "name": "List Groups for Agent", "type": "http" }, "http": { "method": "GET", "url": "https://api.letta.com/v1/agents/:agent_id/groups", "params": [ { "name": "agent_id", "value": "", "type": "path", "description": "The ID of the agent in the format 'agent-'" }, { "name": "manager_type", "value": "", "type": "query", "description": "Manager type to filter groups by" }, { "name": "before", "value": "", "type": "query", "description": "Group ID cursor for pagination. Returns groups that come before this group ID in the specified sort order" }, { "name": "after", "value": "", "type": "query", "description": "Group ID cursor for pagination. Returns groups that come after this group ID in the specified sort order" }, { "name": "limit", "value": "", "type": "query", "description": "Maximum number of groups to return" }, { "name": "order", "value": "", "type": "query", "description": "Sort order for groups by creation time. 'asc' for oldest first, 'desc' for newest first" }, { "name": "order_by", "value": "", "type": "query", "description": "Field to sort by" } ] }, "docs": "Lists the groups for an agent." }, { "info": { "name": "Preview Model Request", "type": "http" }, "http": { "method": "POST", "url": "https://api.letta.com/v1/agents/:agent_id/messages/preview-raw-payload", "params": [ { "name": "agent_id", "value": "", "type": "path", "description": "The ID of the agent in the format 'agent-'" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Inspect the raw LLM request payload without sending it.\n\nThis endpoint processes the message through the agent loop up until\nthe LLM request, then returns the raw request payload that would\nbe sent to the LLM provider. Useful for debugging and inspection." }, { "info": { "name": "Summarize Messages", "type": "http" }, "http": { "method": "POST", "url": "https://api.letta.com/v1/agents/:agent_id/summarize", "params": [ { "name": "agent_id", "value": "", "type": "path", "description": "The ID of the agent in the format 'agent-'" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Summarize an agent's conversation history." }, { "info": { "name": "Search Deployed Agents", "type": "http" }, "http": { "method": "POST", "url": "https://api.letta.com/v1/agents/search", "body": { "type": "json", "data": "{}" } }, "docs": "Search deployed agents" }, { "info": { "name": "Count Deployed Agents", "type": "http" }, "http": { "method": "GET", "url": "https://api.letta.com/v1/agents/search/count", "params": [ { "name": "search", "value": "", "type": "query" }, { "name": "project_id", "value": "", "type": "query" }, { "name": "combinator", "value": "", "type": "query" } ] }, "docs": "Count deployed agents matching search criteria" }, { "info": { "name": "Retrieve Memory Variables", "type": "http" }, "http": { "method": "GET", "url": "https://api.letta.com/v1/agents/:agent_id/core-memory/variables", "params": [ { "name": "agent_id", "value": "", "type": "path" } ] }, "docs": "Get the variables associated with an agent" } ] } ], "bundled": true }