{
  "opencollection": "1.0.0",
  "info": {
    "name": "Letta API",
    "version": "1.0.0"
  },
  "request": {
    "auth": {
      "type": "bearer",
      "token": "{{bearerToken}}"
    }
  },
  "items": [
    {
      "info": {
        "name": "Archives",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List Archives",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/archives/",
            "params": [
              {
                "name": "before",
                "value": "",
                "type": "query",
                "description": "Archive ID cursor for pagination. Returns archives that come before this archive ID in the specified sort order"
              },
              {
                "name": "after",
                "value": "",
                "type": "query",
                "description": "Archive ID cursor for pagination. Returns archives that come after this archive ID in the specified sort order"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Maximum number of archives to return"
              },
              {
                "name": "order",
                "value": "",
                "type": "query",
                "description": "Sort order for archives by creation time. 'asc' for oldest first, 'desc' for newest first"
              },
              {
                "name": "order_by",
                "value": "",
                "type": "query",
                "description": "Field to sort by"
              },
              {
                "name": "name",
                "value": "",
                "type": "query",
                "description": "Filter by archive name (exact match)"
              },
              {
                "name": "agent_id",
                "value": "",
                "type": "query",
                "description": "Only archives attached to this agent ID"
              }
            ]
          },
          "docs": "Get a list of all archives for the current organization with optional filters and pagination."
        },
        {
          "info": {
            "name": "Create Archive",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/archives/",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Create a new archive."
        },
        {
          "info": {
            "name": "Retrieve Archive",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/archives/:archive_id",
            "params": [
              {
                "name": "archive_id",
                "value": "",
                "type": "path",
                "description": "The ID of the archive in the format 'archive-<uuid4>'"
              }
            ]
          },
          "docs": "Get a single archive by its ID."
        },
        {
          "info": {
            "name": "Modify Archive",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://api.letta.com/v1/archives/:archive_id",
            "params": [
              {
                "name": "archive_id",
                "value": "",
                "type": "path",
                "description": "The ID of the archive in the format 'archive-<uuid4>'"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Update an existing archive's name and/or description."
        },
        {
          "info": {
            "name": "Delete Archive",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://api.letta.com/v1/archives/:archive_id",
            "params": [
              {
                "name": "archive_id",
                "value": "",
                "type": "path",
                "description": "The ID of the archive in the format 'archive-<uuid4>'"
              }
            ]
          },
          "docs": "Delete an archive by its ID."
        },
        {
          "info": {
            "name": "List Agents for Archive",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/archives/:archive_id/agents",
            "params": [
              {
                "name": "archive_id",
                "value": "",
                "type": "path",
                "description": "The ID of the archive in the format 'archive-<uuid4>'"
              },
              {
                "name": "before",
                "value": "",
                "type": "query",
                "description": "Agent ID cursor for pagination. Returns agents that come before this agent ID in the specified sort order"
              },
              {
                "name": "after",
                "value": "",
                "type": "query",
                "description": "Agent ID cursor for pagination. Returns agents that come after this agent ID in the specified sort order"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Maximum number of agents to return"
              },
              {
                "name": "order",
                "value": "",
                "type": "query",
                "description": "Sort order for agents by creation time. 'asc' for oldest first, 'desc' for newest first"
              },
              {
                "name": "include",
                "value": "",
                "type": "query",
                "description": "Specify which relational fields to include in the response. No relationships are included by default."
              }
            ]
          },
          "docs": "Get a list of agents that have access to an archive with pagination support."
        },
        {
          "info": {
            "name": "Create Passage in Archive",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/archives/:archive_id/passages",
            "params": [
              {
                "name": "archive_id",
                "value": "",
                "type": "path",
                "description": "The ID of the archive in the format 'archive-<uuid4>'"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Create a new passage in an archive.\n\nThis adds a passage to the archive and creates embeddings for vector storage."
        },
        {
          "info": {
            "name": "Create Passages in Archive",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/archives/:archive_id/passages/batch",
            "params": [
              {
                "name": "archive_id",
                "value": "",
                "type": "path",
                "description": "The ID of the archive in the format 'archive-<uuid4>'"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Create multiple passages in an archive.\n\nThis adds passages to the archive and creates embeddings for vector storage."
        },
        {
          "info": {
            "name": "Delete Passage from Archive",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://api.letta.com/v1/archives/:archive_id/passages/:passage_id",
            "params": [
              {
                "name": "archive_id",
                "value": "",
                "type": "path",
                "description": "The ID of the archive in the format 'archive-<uuid4>'"
              },
              {
                "name": "passage_id",
                "value": "",
                "type": "path",
                "description": "The ID of the passage in the format 'passage-<uuid4>'"
              }
            ]
          },
          "docs": "Delete a passage from an archive.\n\nThis permanently removes the passage from both the database and vector storage (if applicable)."
        }
      ]
    },
    {
      "info": {
        "name": "Tools",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Retrieve Tool",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/tools/:tool_id",
            "params": [
              {
                "name": "tool_id",
                "value": "",
                "type": "path",
                "description": "The ID of the tool in the format 'tool-<uuid4>'"
              }
            ]
          },
          "docs": "Get a tool by ID"
        },
        {
          "info": {
            "name": "Modify Tool",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://api.letta.com/v1/tools/:tool_id",
            "params": [
              {
                "name": "tool_id",
                "value": "",
                "type": "path",
                "description": "The ID of the tool in the format 'tool-<uuid4>'"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Update an existing tool"
        },
        {
          "info": {
            "name": "Delete Tool",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://api.letta.com/v1/tools/:tool_id",
            "params": [
              {
                "name": "tool_id",
                "value": "",
                "type": "path",
                "description": "The ID of the tool in the format 'tool-<uuid4>'"
              }
            ]
          },
          "docs": "Delete a tool by name"
        },
        {
          "info": {
            "name": "Count Tools",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/tools/count",
            "params": [
              {
                "name": "name",
                "value": "",
                "type": "query"
              },
              {
                "name": "names",
                "value": "",
                "type": "query",
                "description": "Filter by specific tool names"
              },
              {
                "name": "tool_ids",
                "value": "",
                "type": "query",
                "description": "Filter by specific tool IDs - accepts repeated params or comma-separated values"
              },
              {
                "name": "search",
                "value": "",
                "type": "query",
                "description": "Search tool names (case-insensitive partial match)"
              },
              {
                "name": "tool_types",
                "value": "",
                "type": "query",
                "description": "Filter by tool type(s) - accepts repeated params or comma-separated values"
              },
              {
                "name": "exclude_tool_types",
                "value": "",
                "type": "query",
                "description": "Tool type(s) to exclude - accepts repeated params or comma-separated values"
              },
              {
                "name": "return_only_letta_tools",
                "value": "",
                "type": "query",
                "description": "Count only tools with tool_type starting with 'letta_'"
              },
              {
                "name": "exclude_letta_tools",
                "value": "",
                "type": "query",
                "description": "Exclude built-in Letta tools from the count"
              }
            ]
          },
          "docs": "Get a count of all tools available to agents belonging to the org of the user."
        },
        {
          "info": {
            "name": "List Tools",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/tools/",
            "params": [
              {
                "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"
              },
              {
                "name": "name",
                "value": "",
                "type": "query",
                "description": "Filter by single tool name"
              },
              {
                "name": "names",
                "value": "",
                "type": "query",
                "description": "Filter by specific tool names"
              },
              {
                "name": "tool_ids",
                "value": "",
                "type": "query",
                "description": "Filter by specific tool IDs - accepts repeated params or comma-separated values"
              },
              {
                "name": "search",
                "value": "",
                "type": "query",
                "description": "Search tool names (case-insensitive partial match)"
              },
              {
                "name": "tool_types",
                "value": "",
                "type": "query",
                "description": "Filter by tool type(s) - accepts repeated params or comma-separated values"
              },
              {
                "name": "exclude_tool_types",
                "value": "",
                "type": "query",
                "description": "Tool type(s) to exclude - accepts repeated params or comma-separated values"
              },
              {
                "name": "return_only_letta_tools",
                "value": "",
                "type": "query",
                "description": "Return only tools with tool_type starting with 'letta_'"
              }
            ]
          },
          "docs": "Get a list of all tools available to agents."
        },
        {
          "info": {
            "name": "Create Tool",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/tools/",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Create a new tool"
        },
        {
          "info": {
            "name": "Upsert Tool",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "https://api.letta.com/v1/tools/",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Create or update a tool"
        },
        {
          "info": {
            "name": "Search Tools",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/tools/search",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Search tools using semantic search.\n\nRequires tool embedding to be enabled (embed_tools=True). Uses vector search,\nfull-text search, or hybrid mode to find tools matching the query.\n\nReturns tools ranked by relevance with their search scores."
        },
        {
          "info": {
            "name": "Upsert Base Tools",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/tools/add-base-tools"
          },
          "docs": "Upsert base tools"
        },
        {
          "info": {
            "name": "Run Tool from Source",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/tools/run",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Attempt to build a tool from source, then run it on the provided arguments"
        },
        {
          "info": {
            "name": "List MCP Servers",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/tools/mcp/servers"
          },
          "docs": "Get a list of all configured MCP servers"
        },
        {
          "info": {
            "name": "Add MCP Server to Config",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "https://api.letta.com/v1/tools/mcp/servers",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Add a new MCP server to the Letta MCP server config"
        },
        {
          "info": {
            "name": "List MCP Tools by Server",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/tools/mcp/servers/:mcp_server_name/tools",
            "params": [
              {
                "name": "mcp_server_name",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Get a list of all tools for a specific MCP server"
        },
        {
          "info": {
            "name": "Resync MCP Server Tools",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/tools/mcp/servers/:mcp_server_name/resync",
            "params": [
              {
                "name": "mcp_server_name",
                "value": "",
                "type": "path"
              },
              {
                "name": "agent_id",
                "value": "",
                "type": "query"
              }
            ]
          },
          "docs": "Resync tools for an MCP server by:\n1. Fetching current tools from the MCP server\n2. Deleting tools that no longer exist on the server\n3. Updating schemas for existing tools\n4. Adding new tools from the server\n\nReturns a summary of changes made."
        },
        {
          "info": {
            "name": "Add MCP Tool",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/tools/mcp/servers/:mcp_server_name/:mcp_tool_name",
            "params": [
              {
                "name": "mcp_server_name",
                "value": "",
                "type": "path"
              },
              {
                "name": "mcp_tool_name",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Register a new MCP tool as a Letta server by MCP server + tool name"
        },
        {
          "info": {
            "name": "Update MCP Server",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://api.letta.com/v1/tools/mcp/servers/:mcp_server_name",
            "params": [
              {
                "name": "mcp_server_name",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Update an existing MCP server configuration"
        },
        {
          "info": {
            "name": "Delete MCP Server from Config",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://api.letta.com/v1/tools/mcp/servers/:mcp_server_name",
            "params": [
              {
                "name": "mcp_server_name",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Delete a MCP server configuration"
        },
        {
          "info": {
            "name": "Test MCP Server",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/tools/mcp/servers/test",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Test connection to an MCP server without adding it.\nReturns the list of available tools if successful."
        },
        {
          "info": {
            "name": "Connect MCP Server",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/tools/mcp/servers/connect",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Connect to an MCP server with support for OAuth via SSE.\nReturns a stream of events handling authorization state and exchange if OAuth is required."
        },
        {
          "info": {
            "name": "Execute MCP Tool",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/tools/mcp/servers/:mcp_server_name/tools/:tool_name/execute",
            "params": [
              {
                "name": "mcp_server_name",
                "value": "",
                "type": "path"
              },
              {
                "name": "tool_name",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Execute a specific MCP tool from a configured server.\nReturns the tool execution result."
        },
        {
          "info": {
            "name": "MCP Oauth Callback",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/tools/mcp/oauth/callback",
            "params": [
              {
                "name": "code",
                "value": "",
                "type": "query",
                "description": "OAuth authorization code"
              },
              {
                "name": "state",
                "value": "",
                "type": "query",
                "description": "OAuth state parameter"
              },
              {
                "name": "error",
                "value": "",
                "type": "query",
                "description": "OAuth error"
              },
              {
                "name": "error_description",
                "value": "",
                "type": "query",
                "description": "OAuth error description"
              }
            ]
          },
          "docs": "Handle OAuth callback for MCP server authentication.\nSession is identified via the state parameter instead of URL path."
        }
      ]
    },
    {
      "info": {
        "name": "Sources",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Count Sources",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/sources/count"
          },
          "docs": "Count all data sources created by a user."
        },
        {
          "info": {
            "name": "Retrieve Source",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/sources/:source_id",
            "params": [
              {
                "name": "source_id",
                "value": "",
                "type": "path",
                "description": "The ID of the source in the format 'source-<uuid4>'"
              }
            ]
          },
          "docs": "Get all sources"
        },
        {
          "info": {
            "name": "Modify Source",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://api.letta.com/v1/sources/:source_id",
            "params": [
              {
                "name": "source_id",
                "value": "",
                "type": "path",
                "description": "The ID of the source in the format 'source-<uuid4>'"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Update the name or documentation of an existing data source."
        },
        {
          "info": {
            "name": "Delete Source",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://api.letta.com/v1/sources/:source_id",
            "params": [
              {
                "name": "source_id",
                "value": "",
                "type": "path",
                "description": "The ID of the source in the format 'source-<uuid4>'"
              }
            ]
          },
          "docs": "Delete a data source."
        },
        {
          "info": {
            "name": "Get Source ID by Name",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/sources/name/:source_name",
            "params": [
              {
                "name": "source_name",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Get a source by name"
        },
        {
          "info": {
            "name": "Get Sources Metadata",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/sources/metadata",
            "params": [
              {
                "name": "include_detailed_per_source_metadata",
                "value": "",
                "type": "query"
              }
            ]
          },
          "docs": "Get aggregated metadata for all sources in an organization.\n\nReturns structured metadata including:\n- Total number of sources\n- Total number of files across all sources\n- Total size of all files\n- Per-source breakdown with file details (file_name, file_size per file) if include_detailed_per_source_metadata is True"
        },
        {
          "info": {
            "name": "List Sources",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/sources/"
          },
          "docs": "List all data sources created by a user."
        },
        {
          "info": {
            "name": "Create Source",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/sources/",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Create a new data source."
        },
        {
          "info": {
            "name": "Upload File to Source",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/sources/:source_id/upload",
            "params": [
              {
                "name": "source_id",
                "value": "",
                "type": "path",
                "description": "The ID of the source in the format 'source-<uuid4>'"
              },
              {
                "name": "duplicate_handling",
                "value": "",
                "type": "query",
                "description": "How to handle duplicate filenames"
              },
              {
                "name": "name",
                "value": "",
                "type": "query",
                "description": "Optional custom name to override the uploaded file's name"
              }
            ],
            "body": {
              "type": "multipart-form",
              "data": []
            }
          },
          "docs": "Upload a file to a data source."
        },
        {
          "info": {
            "name": "Get Agents for Source",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/sources/:source_id/agents",
            "params": [
              {
                "name": "source_id",
                "value": "",
                "type": "path",
                "description": "The ID of the source in the format 'source-<uuid4>'"
              }
            ]
          },
          "docs": "Get all agent IDs that have the specified source attached."
        },
        {
          "info": {
            "name": "List Source Passages",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/sources/:source_id/passages",
            "params": [
              {
                "name": "source_id",
                "value": "",
                "type": "path",
                "description": "The ID of the source in the format 'source-<uuid4>'"
              },
              {
                "name": "after",
                "value": "",
                "type": "query",
                "description": "Message after which to retrieve the returned messages."
              },
              {
                "name": "before",
                "value": "",
                "type": "query",
                "description": "Message before which to retrieve the returned messages."
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Maximum number of messages to retrieve."
              }
            ]
          },
          "docs": "List all passages associated with a data source."
        },
        {
          "info": {
            "name": "List Source Files",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/sources/:source_id/files",
            "params": [
              {
                "name": "source_id",
                "value": "",
                "type": "path",
                "description": "The ID of the source in the format 'source-<uuid4>'"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Number of files to return"
              },
              {
                "name": "after",
                "value": "",
                "type": "query",
                "description": "Pagination cursor to fetch the next set of results"
              },
              {
                "name": "include_content",
                "value": "",
                "type": "query",
                "description": "Whether to include full file content"
              },
              {
                "name": "check_status_updates",
                "value": "",
                "type": "query",
                "description": "Whether to check and update file processing status (from the vector db service). If False, will not fetch and update the status, which may lead to performance gains."
              }
            ]
          },
          "docs": "List paginated files associated with a data source."
        },
        {
          "info": {
            "name": "Get File Metadata",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/sources/:source_id/files/:file_id",
            "params": [
              {
                "name": "source_id",
                "value": "",
                "type": "path",
                "description": "The ID of the source in the format 'source-<uuid4>'"
              },
              {
                "name": "file_id",
                "value": "",
                "type": "path",
                "description": "The ID of the file in the format 'file-<uuid4>'"
              },
              {
                "name": "include_content",
                "value": "",
                "type": "query",
                "description": "Whether to include full file content"
              }
            ]
          },
          "docs": "Retrieve metadata for a specific file by its ID."
        },
        {
          "info": {
            "name": "Delete File from Source",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://api.letta.com/v1/sources/:source_id/:file_id",
            "params": [
              {
                "name": "source_id",
                "value": "",
                "type": "path",
                "description": "The ID of the source in the format 'source-<uuid4>'"
              },
              {
                "name": "file_id",
                "value": "",
                "type": "path",
                "description": "The ID of the file in the format 'file-<uuid4>'"
              }
            ]
          },
          "docs": "Delete a data source."
        }
      ]
    },
    {
      "info": {
        "name": "Folders",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Count Folders",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/folders/count"
          },
          "docs": "Count all data folders created by a user."
        },
        {
          "info": {
            "name": "Retrieve Folder",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/folders/:folder_id",
            "params": [
              {
                "name": "folder_id",
                "value": "",
                "type": "path",
                "description": "The ID of the source in the format 'source-<uuid4>'"
              }
            ]
          },
          "docs": "Get a folder by ID"
        },
        {
          "info": {
            "name": "Modify Folder",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://api.letta.com/v1/folders/:folder_id",
            "params": [
              {
                "name": "folder_id",
                "value": "",
                "type": "path",
                "description": "The ID of the source in the format 'source-<uuid4>'"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Update the name or documentation of an existing data folder."
        },
        {
          "info": {
            "name": "Delete Folder",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://api.letta.com/v1/folders/:folder_id",
            "params": [
              {
                "name": "folder_id",
                "value": "",
                "type": "path",
                "description": "The ID of the source in the format 'source-<uuid4>'"
              }
            ]
          },
          "docs": "Delete a data folder."
        },
        {
          "info": {
            "name": "Get Folder by Name",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/folders/name/:folder_name",
            "params": [
              {
                "name": "folder_name",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "**Deprecated**: Please use the list endpoint `GET /v1/folders?name=` instead.\n\n\nGet a folder by name."
        },
        {
          "info": {
            "name": "Retrieve Metadata",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/folders/metadata",
            "params": [
              {
                "name": "include_detailed_per_source_metadata",
                "value": "",
                "type": "query"
              }
            ]
          },
          "docs": "Get aggregated metadata for all folders in an organization.\n\nReturns structured metadata including:\n- Total number of folders\n- Total number of files across all folders\n- Total size of all files\n- Per-source breakdown with file details (file_name, file_size per file) if include_detailed_per_source_metadata is True"
        },
        {
          "info": {
            "name": "List Folders",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/folders/",
            "params": [
              {
                "name": "before",
                "value": "",
                "type": "query",
                "description": "Folder ID cursor for pagination. Returns folders that come before this folder ID in the specified sort order"
              },
              {
                "name": "after",
                "value": "",
                "type": "query",
                "description": "Folder ID cursor for pagination. Returns folders that come after this folder ID in the specified sort order"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Maximum number of folders to return"
              },
              {
                "name": "order",
                "value": "",
                "type": "query",
                "description": "Sort order for folders by creation time. 'asc' for oldest first, 'desc' for newest first"
              },
              {
                "name": "order_by",
                "value": "",
                "type": "query",
                "description": "Field to sort by"
              },
              {
                "name": "name",
                "value": "",
                "type": "query",
                "description": "Folder name to filter by"
              }
            ]
          },
          "docs": "List all data folders created by a user."
        },
        {
          "info": {
            "name": "Create Folder",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/folders/",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Create a new data folder."
        },
        {
          "info": {
            "name": "Upload File to Folder",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/folders/:folder_id/upload",
            "params": [
              {
                "name": "folder_id",
                "value": "",
                "type": "path",
                "description": "The ID of the source in the format 'source-<uuid4>'"
              },
              {
                "name": "duplicate_handling",
                "value": "",
                "type": "query",
                "description": "How to handle duplicate filenames"
              },
              {
                "name": "name",
                "value": "",
                "type": "query",
                "description": "Optional custom name to override the uploaded file's name"
              }
            ],
            "body": {
              "type": "multipart-form",
              "data": []
            }
          },
          "docs": "Upload a file to a data folder."
        },
        {
          "info": {
            "name": "List Agents for Folder",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/folders/:folder_id/agents",
            "params": [
              {
                "name": "folder_id",
                "value": "",
                "type": "path",
                "description": "The ID of the source in the format 'source-<uuid4>'"
              },
              {
                "name": "before",
                "value": "",
                "type": "query",
                "description": "Agent ID cursor for pagination. Returns agents that come before this agent ID in the specified sort order"
              },
              {
                "name": "after",
                "value": "",
                "type": "query",
                "description": "Agent ID cursor for pagination. Returns agents that come after this agent ID in the specified sort order"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Maximum number of agents to return"
              },
              {
                "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"
              }
            ]
          },
          "docs": "Get all agent IDs that have the specified folder attached."
        },
        {
          "info": {
            "name": "List Folder Passages",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/folders/:folder_id/passages",
            "params": [
              {
                "name": "folder_id",
                "value": "",
                "type": "path",
                "description": "The ID of the source in the format 'source-<uuid4>'"
              },
              {
                "name": "before",
                "value": "",
                "type": "query",
                "description": "Passage ID cursor for pagination. Returns passages that come before this passage ID in the specified sort order"
              },
              {
                "name": "after",
                "value": "",
                "type": "query",
                "description": "Passage ID cursor for pagination. Returns passages that come after this passage ID in the specified sort order"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Maximum number of passages to return"
              },
              {
                "name": "order",
                "value": "",
                "type": "query",
                "description": "Sort order for passages by creation time. 'asc' for oldest first, 'desc' for newest first"
              },
              {
                "name": "order_by",
                "value": "",
                "type": "query",
                "description": "Field to sort by"
              }
            ]
          },
          "docs": "List all passages associated with a data folder."
        },
        {
          "info": {
            "name": "List Files for Folder",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/folders/:folder_id/files",
            "params": [
              {
                "name": "folder_id",
                "value": "",
                "type": "path",
                "description": "The ID of the source in the format 'source-<uuid4>'"
              },
              {
                "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": "include_content",
                "value": "",
                "type": "query",
                "description": "Whether to include full file content"
              }
            ]
          },
          "docs": "List paginated files associated with a data folder."
        },
        {
          "info": {
            "name": "Retrieve File",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/folders/:folder_id/files/:file_id",
            "params": [
              {
                "name": "folder_id",
                "value": "",
                "type": "path",
                "description": "The ID of the source in the format 'source-<uuid4>'"
              },
              {
                "name": "file_id",
                "value": "",
                "type": "path",
                "description": "The ID of the file in the format 'file-<uuid4>'"
              },
              {
                "name": "include_content",
                "value": "",
                "type": "query",
                "description": "Whether to include full file content"
              }
            ]
          },
          "docs": "Retrieve a file from a folder by ID."
        },
        {
          "info": {
            "name": "Delete File from Folder",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://api.letta.com/v1/folders/:folder_id/:file_id",
            "params": [
              {
                "name": "folder_id",
                "value": "",
                "type": "path",
                "description": "The ID of the source in the format 'source-<uuid4>'"
              },
              {
                "name": "file_id",
                "value": "",
                "type": "path",
                "description": "The ID of the file in the format 'file-<uuid4>'"
              }
            ]
          },
          "docs": "Delete a file from a folder."
        }
      ]
    },
    {
      "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-<uuid4>'"
              },
              {
                "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-<uuid4>'"
              },
              {
                "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-<uuid4>'"
              }
            ],
            "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-<uuid4>'"
              }
            ]
          },
          "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-<uuid4>'"
              },
              {
                "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-<uuid4>'"
              },
              {
                "name": "agent_id",
                "value": "",
                "type": "path",
                "description": "The ID of the agent in the format 'agent-<uuid4>'"
              }
            ]
          },
          "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-<uuid4>'"
              },
              {
                "name": "agent_id",
                "value": "",
                "type": "path",
                "description": "The ID of the agent in the format 'agent-<uuid4>'"
              }
            ]
          },
          "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-<uuid4>'"
              },
              {
                "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-<uuid4>'"
              },
              {
                "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-<uuid4>'"
              },
              {
                "name": "agent_id",
                "value": "",
                "type": "path",
                "description": "The ID of the agent in the format 'agent-<uuid4>'"
              }
            ]
          },
          "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-<uuid4>'"
              },
              {
                "name": "agent_id",
                "value": "",
                "type": "path",
                "description": "The ID of the agent in the format 'agent-<uuid4>'"
              }
            ]
          },
          "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-<uuid4>'"
              },
              {
                "name": "agent_id",
                "value": "",
                "type": "path",
                "description": "The ID of the agent in the format 'agent-<uuid4>'"
              }
            ]
          },
          "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-<uuid4>'"
              },
              {
                "name": "agent_id",
                "value": "",
                "type": "path",
                "description": "The ID of the agent in the format 'agent-<uuid4>'"
              }
            ]
          },
          "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-<uuid4>'"
              }
            ]
          },
          "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-<uuid4>'"
              },
              {
                "name": "agent_id",
                "value": "",
                "type": "path",
                "description": "The ID of the agent in the format 'agent-<uuid4>'"
              }
            ]
          },
          "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-<uuid4>'"
              },
              {
                "name": "agent_id",
                "value": "",
                "type": "path",
                "description": "The ID of the agent in the format 'agent-<uuid4>'"
              }
            ]
          },
          "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-<uuid4>'"
              },
              {
                "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-<uuid4>'"
              },
              {
                "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-<uuid4>'"
              },
              {
                "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-<uuid4>'"
              }
            ]
          },
          "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-<uuid4>'"
              }
            ]
          },
          "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-<uuid4>'"
              }
            ],
            "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-<uuid4>'"
              },
              {
                "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-<uuid4>'"
              },
              {
                "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-<uuid4>'"
              },
              {
                "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-<uuid4>'"
              },
              {
                "name": "agent_id",
                "value": "",
                "type": "path",
                "description": "The ID of the agent in the format 'agent-<uuid4>'"
              }
            ]
          },
          "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-<uuid4>'"
              },
              {
                "name": "agent_id",
                "value": "",
                "type": "path",
                "description": "The ID of the agent in the format 'agent-<uuid4>'"
              }
            ]
          },
          "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-<uuid4>'"
              }
            ]
          },
          "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-<uuid4>'"
              }
            ]
          },
          "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-<uuid4>'"
              }
            ]
          },
          "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-<uuid4>'"
              }
            ]
          },
          "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-<uuid4>'"
              },
              {
                "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-<uuid4>'"
              }
            ],
            "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-<uuid4>'"
              },
              {
                "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-<uuid4>'"
              }
            ]
          },
          "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-<uuid4>'"
              },
              {
                "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-<uuid4>'"
              }
            ],
            "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-<uuid4>'"
              },
              {
                "name": "message_id",
                "value": "",
                "type": "path",
                "description": "The ID of the message in the format 'message-<uuid4>'"
              }
            ],
            "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-<uuid4>'"
              }
            ],
            "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-<uuid4>'"
              }
            ],
            "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-<uuid4>'"
              }
            ],
            "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-<uuid4>'"
              }
            ],
            "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-<uuid4>'"
              }
            ],
            "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-<uuid4>'"
              },
              {
                "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-<uuid4>'"
              }
            ],
            "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-<uuid4>'"
              }
            ],
            "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"
        }
      ]
    },
    {
      "info": {
        "name": "Conversations",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List Conversations",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/conversations/",
            "params": [
              {
                "name": "agent_id",
                "value": "",
                "type": "query",
                "description": "The agent ID to list conversations for (optional - returns all conversations if not provided)"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Maximum number of conversations to return"
              },
              {
                "name": "after",
                "value": "",
                "type": "query",
                "description": "Cursor for pagination (conversation ID)"
              },
              {
                "name": "summary_search",
                "value": "",
                "type": "query",
                "description": "Search for text within conversation summaries"
              },
              {
                "name": "order",
                "value": "",
                "type": "query",
                "description": "Sort order for conversations. 'asc' for oldest first, 'desc' for newest first"
              },
              {
                "name": "order_by",
                "value": "",
                "type": "query",
                "description": "Field to sort by"
              }
            ]
          },
          "docs": "List all conversations for an agent (or all conversations if agent_id not provided)."
        },
        {
          "info": {
            "name": "Create Conversation",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/conversations/",
            "params": [
              {
                "name": "agent_id",
                "value": "",
                "type": "query",
                "description": "The agent ID to create a conversation for"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Create a new conversation for an agent."
        },
        {
          "info": {
            "name": "Retrieve Conversation",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/conversations/:conversation_id",
            "params": [
              {
                "name": "conversation_id",
                "value": "",
                "type": "path",
                "description": "The ID of the conv in the format 'conv-<uuid4>'"
              }
            ]
          },
          "docs": "Retrieve a specific conversation."
        },
        {
          "info": {
            "name": "Update Conversation",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://api.letta.com/v1/conversations/:conversation_id",
            "params": [
              {
                "name": "conversation_id",
                "value": "",
                "type": "path",
                "description": "The ID of the conv in the format 'conv-<uuid4>'"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Update a conversation."
        },
        {
          "info": {
            "name": "Delete Conversation",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://api.letta.com/v1/conversations/:conversation_id",
            "params": [
              {
                "name": "conversation_id",
                "value": "",
                "type": "path",
                "description": "The ID of the conv in the format 'conv-<uuid4>'"
              }
            ]
          },
          "docs": "Delete a conversation (soft delete).\n\nThis marks the conversation as deleted but does not permanently remove it from the database.\nThe conversation will no longer appear in list operations.\nAny isolated blocks associated with the conversation will be permanently deleted."
        },
        {
          "info": {
            "name": "Fork Conversation",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/conversations/:conversation_id/fork",
            "params": [
              {
                "name": "conversation_id",
                "value": "",
                "type": "path",
                "description": "The conversation identifier. Can be a conversation ID ('conv-<uuid4>'), 'default' for agent-direct mode (with agent_id parameter), or an agent ID ('agent-<uuid4>') for backwards compatibility (deprecated)."
              },
              {
                "name": "agent_id",
                "value": "",
                "type": "query",
                "description": "Agent ID for agent-direct mode with 'default' conversation"
              }
            ]
          },
          "docs": "Fork an existing conversation.\n\nCreates a new conversation that shares the same in-context messages as the source\nconversation, but with a newly compiled system message reflecting the latest memory\nblock values. The forked conversation belongs to the same agent as the source.\n\n**Agent-direct mode**: Pass conversation_id=\"default\" with agent_id query parameter\nto fork the agent's default (agent-direct) message history into a new conversation.\n\n**Deprecated**: Passing an agent ID as conversation_i"
        },
        {
          "info": {
            "name": "List Conversation Messages",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/conversations/:conversation_id/messages",
            "params": [
              {
                "name": "conversation_id",
                "value": "",
                "type": "path",
                "description": "The conversation identifier. Can be a conversation ID ('conv-<uuid4>'), 'default' for agent-direct mode (with agent_id parameter), or an agent ID ('agent-<uuid4>') for backwards compatibility (deprecated)."
              },
              {
                "name": "agent_id",
                "value": "",
                "type": "query",
                "description": "Agent ID for agent-direct mode with 'default' conversation"
              },
              {
                "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": "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": "List all messages in a conversation.\n\nReturns LettaMessage objects (UserMessage, AssistantMessage, etc.) for all\nmessages in the conversation, with support for cursor-based pagination.\n\n**Agent-direct mode**: Pass conversation_id=\"default\" with agent_id parameter\nto list messages from the agent's default conversation.\n\n**Deprecated**: Passing an agent ID as conversation_id still works but will be removed."
        },
        {
          "info": {
            "name": "Send Conversation Message",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/conversations/:conversation_id/messages",
            "params": [
              {
                "name": "conversation_id",
                "value": "",
                "type": "path",
                "description": "The conversation identifier. Can be a conversation ID ('conv-<uuid4>'), 'default' for agent-direct mode (with agent_id parameter), or an agent ID ('agent-<uuid4>') for backwards compatibility (deprecated)."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Send a message to a conversation and get a response.\n\nThis endpoint sends a message to an existing conversation.\nBy default (streaming=true), returns a streaming response (Server-Sent Events).\nSet streaming=false to get a complete JSON response.\n\n**Agent-direct mode**: Pass conversation_id=\"default\" with agent_id in request body\nto send messages to the agent's default conversation with locking.\n\n**Deprecated**: Passing an agent ID as conversation_id still works but will be removed."
        },
        {
          "info": {
            "name": "Preview Conversation Model Request",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/conversations/:conversation_id/messages/preview-raw-payload",
            "params": [
              {
                "name": "conversation_id",
                "value": "",
                "type": "path",
                "description": "The conversation identifier. Can be a conversation ID ('conv-<uuid4>'), 'default' for agent-direct mode (with agent_id parameter), or an agent ID ('agent-<uuid4>') for backwards compatibility (deprecated)."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Inspect the raw LLM request payload for a conversation message without sending it.\n\nThis endpoint processes the message through the same path as send_conversation_message\n(including conversation-scoped messages, isolated blocks, model overrides, and\nclient tools/skills) but stops before the LLM call and returns the raw request\npayload. Useful for debugging and verifying what the LLM will actually see."
        },
        {
          "info": {
            "name": "Retrieve Conversation Stream",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/conversations/:conversation_id/stream",
            "params": [
              {
                "name": "conversation_id",
                "value": "",
                "type": "path",
                "description": "The conversation identifier. Can be a conversation ID ('conv-<uuid4>'), 'default' for agent-direct mode (with agent_id parameter), or an agent ID ('agent-<uuid4>') for backwards compatibility (deprecated)."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Resume the stream for the most recent active run in a conversation.\n\nThis endpoint allows you to reconnect to an active background stream\nfor a conversation, enabling recovery from network interruptions.\n\n**Agent-direct mode**: Pass conversation_id=\"default\" with agent_id in request body\nto retrieve the stream for the agent's most recent active run.\n\n**Direct run access**: Pass run_id directly to skip run lookup entirely.\nUseful for recovery from duplicate request 409 errors.\n\n**OTID lookup**: P"
        },
        {
          "info": {
            "name": "Cancel Conversation",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/conversations/:conversation_id/cancel",
            "params": [
              {
                "name": "conversation_id",
                "value": "",
                "type": "path",
                "description": "The conversation identifier. Can be a conversation ID ('conv-<uuid4>'), 'default' for agent-direct mode (with agent_id parameter), or an agent ID ('agent-<uuid4>') for backwards compatibility (deprecated)."
              },
              {
                "name": "agent_id",
                "value": "",
                "type": "query",
                "description": "Agent ID for agent-direct mode with 'default' conversation"
              }
            ]
          },
          "docs": "Cancel runs associated with a conversation.\n\nNote: To cancel active runs, Redis is required.\n\n**Agent-direct mode**: Pass conversation_id=\"default\" with agent_id query parameter\nto cancel runs for the agent's default conversation.\n\n**Deprecated**: Passing an agent ID as conversation_id still works but will be removed."
        },
        {
          "info": {
            "name": "Recompile Conversation",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/conversations/:conversation_id/recompile",
            "params": [
              {
                "name": "conversation_id",
                "value": "",
                "type": "path",
                "description": "The conversation identifier. Can be a conversation ID ('conv-<uuid4>'), 'default' for agent-direct mode (with agent_id parameter), or an agent ID ('agent-<uuid4>') for backwards compatibility (deprecated)."
              },
              {
                "name": "dry_run",
                "value": "",
                "type": "query",
                "description": "If True, do not persist changes; still returns the compiled system prompt."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Manually trigger system prompt recompilation for a conversation."
        },
        {
          "info": {
            "name": "Compact Conversation",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/conversations/:conversation_id/compact",
            "params": [
              {
                "name": "conversation_id",
                "value": "",
                "type": "path",
                "description": "The conversation identifier. Can be a conversation ID ('conv-<uuid4>'), 'default' for agent-direct mode (with agent_id parameter), or an agent ID ('agent-<uuid4>') for backwards compatibility (deprecated)."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Compact (summarize) a conversation's message history.\n\nThis endpoint summarizes the in-context messages for a specific conversation,\nreducing the message count while preserving important context.\n\n**Agent-direct mode**: Pass conversation_id=\"default\" with agent_id in request body\nto compact the agent's default conversation messages.\n\n**Deprecated**: Passing an agent ID as conversation_id still works but will be removed."
        }
      ]
    },
    {
      "info": {
        "name": "Chat",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Create Chat Completion",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/chat/completions",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Create a chat completion using a Letta agent (OpenAI-compatible).\n\nThis endpoint provides full OpenAI API compatibility. The agent is selected based on:\n- The 'model' parameter in the request (should contain an agent ID in format 'agent-...')\n\nWhen streaming is enabled (stream=true), the response will be Server-Sent Events\nwith ChatCompletionChunk objects."
        }
      ]
    },
    {
      "info": {
        "name": "Groups",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List Groups",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/groups/",
            "params": [
              {
                "name": "manager_type",
                "value": "",
                "type": "query",
                "description": "Search groups by manager type"
              },
              {
                "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"
              },
              {
                "name": "project_id",
                "value": "",
                "type": "query",
                "description": "Search groups by project id"
              }
            ]
          },
          "docs": "Fetch all multi-agent groups matching query."
        },
        {
          "info": {
            "name": "Create Group",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/groups/",
            "headers": [
              {
                "name": "X-Project",
                "value": ""
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Create a new multi-agent group with the specified configuration."
        },
        {
          "info": {
            "name": "Count Groups",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/groups/count"
          },
          "docs": "Get the count of all groups associated with a given user."
        },
        {
          "info": {
            "name": "Retrieve Group",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/groups/:group_id",
            "params": [
              {
                "name": "group_id",
                "value": "",
                "type": "path",
                "description": "The ID of the group in the format 'group-<uuid4>'"
              }
            ]
          },
          "docs": "Retrieve the group by id."
        },
        {
          "info": {
            "name": "Modify Group",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://api.letta.com/v1/groups/:group_id",
            "headers": [
              {
                "name": "X-Project",
                "value": ""
              }
            ],
            "params": [
              {
                "name": "group_id",
                "value": "",
                "type": "path",
                "description": "The ID of the group in the format 'group-<uuid4>'"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Create a new multi-agent group with the specified configuration."
        },
        {
          "info": {
            "name": "Delete Group",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://api.letta.com/v1/groups/:group_id",
            "params": [
              {
                "name": "group_id",
                "value": "",
                "type": "path",
                "description": "The ID of the group in the format 'group-<uuid4>'"
              }
            ]
          },
          "docs": "Delete a multi-agent group."
        },
        {
          "info": {
            "name": "Modify Group Message",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://api.letta.com/v1/groups/:group_id/messages/:message_id",
            "params": [
              {
                "name": "group_id",
                "value": "",
                "type": "path",
                "description": "The ID of the group in the format 'group-<uuid4>'"
              },
              {
                "name": "message_id",
                "value": "",
                "type": "path",
                "description": "The ID of the message in the format 'message-<uuid4>'"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Update the details of a message associated with an agent."
        },
        {
          "info": {
            "name": "List Group Messages",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/groups/:group_id/messages",
            "params": [
              {
                "name": "group_id",
                "value": "",
                "type": "path",
                "description": "The ID of the group in the format 'group-<uuid4>'"
              },
              {
                "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 retrieve"
              },
              {
                "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": "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_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": "Reset Group Messages",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://api.letta.com/v1/groups/:group_id/reset-messages",
            "params": [
              {
                "name": "group_id",
                "value": "",
                "type": "path",
                "description": "The ID of the group in the format 'group-<uuid4>'"
              }
            ]
          },
          "docs": "Delete the group messages for all agents that are part of the multi-agent group."
        },
        {
          "info": {
            "name": "Attach Block to Group",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://api.letta.com/v1/groups/:group_id/blocks/attach/:block_id",
            "params": [
              {
                "name": "block_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "group_id",
                "value": "",
                "type": "path",
                "description": "The ID of the group in the format 'group-<uuid4>'"
              }
            ]
          },
          "docs": "Attach a block to a group.\nThis will add the block to the group and all agents within the group."
        },
        {
          "info": {
            "name": "Detach Block from Group",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://api.letta.com/v1/groups/:group_id/blocks/detach/:block_id",
            "params": [
              {
                "name": "block_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "group_id",
                "value": "",
                "type": "path",
                "description": "The ID of the group in the format 'group-<uuid4>'"
              }
            ]
          },
          "docs": "Detach a block from a group.\nThis will remove the block from the group and all agents within the group."
        }
      ]
    },
    {
      "info": {
        "name": "Identities",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List Identities",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/identities/",
            "params": [
              {
                "name": "name",
                "value": "",
                "type": "query"
              },
              {
                "name": "project_id",
                "value": "",
                "type": "query",
                "description": "[DEPRECATED: Use X-Project-Id header instead] Filter identities by project ID"
              },
              {
                "name": "identifier_key",
                "value": "",
                "type": "query"
              },
              {
                "name": "identity_type",
                "value": "",
                "type": "query"
              },
              {
                "name": "before",
                "value": "",
                "type": "query",
                "description": "Identity ID cursor for pagination. Returns identities that come before this identity ID in the specified sort order"
              },
              {
                "name": "after",
                "value": "",
                "type": "query",
                "description": "Identity ID cursor for pagination. Returns identities that come after this identity ID in the specified sort order"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Maximum number of identities to return"
              },
              {
                "name": "order",
                "value": "",
                "type": "query",
                "description": "Sort order for identities by creation time. 'asc' for oldest first, 'desc' for newest first"
              },
              {
                "name": "order_by",
                "value": "",
                "type": "query",
                "description": "Field to sort by"
              }
            ]
          },
          "docs": "Get a list of all identities in the database"
        },
        {
          "info": {
            "name": "Create Identity",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/identities/",
            "headers": [
              {
                "name": "X-Project",
                "value": ""
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Create Identity"
        },
        {
          "info": {
            "name": "Upsert Identity",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "https://api.letta.com/v1/identities/",
            "headers": [
              {
                "name": "X-Project",
                "value": ""
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Upsert Identity"
        },
        {
          "info": {
            "name": "Count Identities",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/identities/count"
          },
          "docs": "Get count of all identities for a user"
        },
        {
          "info": {
            "name": "Retrieve Identity",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/identities/:identity_id",
            "params": [
              {
                "name": "identity_id",
                "value": "",
                "type": "path",
                "description": "The ID of the identity in the format 'identity-<uuid4>'"
              }
            ]
          },
          "docs": "Retrieve Identity"
        },
        {
          "info": {
            "name": "Modify Identity",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://api.letta.com/v1/identities/:identity_id",
            "params": [
              {
                "name": "identity_id",
                "value": "",
                "type": "path",
                "description": "The ID of the identity in the format 'identity-<uuid4>'"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Modify Identity"
        },
        {
          "info": {
            "name": "Delete Identity",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://api.letta.com/v1/identities/:identity_id",
            "params": [
              {
                "name": "identity_id",
                "value": "",
                "type": "path",
                "description": "The ID of the identity in the format 'identity-<uuid4>'"
              }
            ]
          },
          "docs": "Delete an identity by its identifier key"
        },
        {
          "info": {
            "name": "Upsert Properties for Identity",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "https://api.letta.com/v1/identities/:identity_id/properties",
            "params": [
              {
                "name": "identity_id",
                "value": "",
                "type": "path",
                "description": "The ID of the identity in the format 'identity-<uuid4>'"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Upsert Properties for Identity"
        },
        {
          "info": {
            "name": "List Agents for Identity",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/identities/:identity_id/agents",
            "params": [
              {
                "name": "identity_id",
                "value": "",
                "type": "path",
                "description": "The ID of the identity in the format 'identity-<uuid4>'"
              },
              {
                "name": "before",
                "value": "",
                "type": "query",
                "description": "Agent ID cursor for pagination. Returns agents that come before this agent ID in the specified sort order"
              },
              {
                "name": "after",
                "value": "",
                "type": "query",
                "description": "Agent ID cursor for pagination. Returns agents that come after this agent ID in the specified sort order"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Maximum number of agents to return"
              },
              {
                "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": "include",
                "value": "",
                "type": "query",
                "description": "Specify which relational fields to include in the response. No relationships are included by default."
              }
            ]
          },
          "docs": "Get all agents associated with the specified identity."
        },
        {
          "info": {
            "name": "List Blocks for Identity",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/identities/:identity_id/blocks",
            "params": [
              {
                "name": "identity_id",
                "value": "",
                "type": "path",
                "description": "The ID of the identity in the format 'identity-<uuid4>'"
              },
              {
                "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": "Get all blocks associated with the specified identity."
        }
      ]
    },
    {
      "info": {
        "name": "Internal Agents",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Count Agents",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/_internal_agents/count",
            "params": [
              {
                "name": "exclude_hidden",
                "value": "",
                "type": "query",
                "description": "If True, excludes hidden agents from the count. If False, includes all agents."
              }
            ]
          },
          "docs": "Get the total number of agents for a user, with option to exclude hidden agents."
        },
        {
          "info": {
            "name": "Modify Block for Agent",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://api.letta.com/v1/_internal_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-<uuid4>'"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Updates a core memory block of an agent."
        }
      ]
    },
    {
      "info": {
        "name": "Internal Blocks",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List Blocks",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/_internal_blocks/",
            "params": [
              {
                "name": "label",
                "value": "",
                "type": "query",
                "description": "Label to include (alphanumeric, hyphens, underscores, forward slashes)"
              },
              {
                "name": "templates_only",
                "value": "",
                "type": "query",
                "description": "Whether to include only templates"
              },
              {
                "name": "name",
                "value": "",
                "type": "query",
                "description": "Name filter (alphanumeric, spaces, hyphens, underscores)"
              },
              {
                "name": "identity_id",
                "value": "",
                "type": "query",
                "description": "The ID of the identity in the format 'identity-<uuid4>'"
              },
              {
                "name": "identifier_keys",
                "value": "",
                "type": "query",
                "description": "Search agents by identifier keys"
              },
              {
                "name": "project_id",
                "value": "",
                "type": "query",
                "description": "Search blocks by project id"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Number of blocks to return"
              },
              {
                "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": "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"
              },
              {
                "name": "label_search",
                "value": "",
                "type": "query",
                "description": "Search blocks by label. If provided, returns blocks whose label matches the search query. This is a full-text search on block labels."
              },
              {
                "name": "description_search",
                "value": "",
                "type": "query",
                "description": "Search blocks by description. If provided, returns blocks whose description matches the search query. This is a full-text search on block descriptions."
              },
              {
                "name": "value_search",
                "value": "",
                "type": "query",
                "description": "Search blocks by value. If provided, returns blocks whose value matches the search query. This is a full-text search on block values."
              },
              {
                "name": "connected_to_agents_count_gt",
                "value": "",
                "type": "query",
                "description": "Filter blocks by the number of connected agents. If provided, returns blocks that have more than this number of connected agents."
              },
              {
                "name": "connected_to_agents_count_lt",
                "value": "",
                "type": "query",
                "description": "Filter blocks by the number of connected agents. If provided, returns blocks that have less than this number of connected agents."
              },
              {
                "name": "connected_to_agents_count_eq",
                "value": "",
                "type": "query",
                "description": "Filter blocks by the exact number of connected agents. If provided, returns blocks that have exactly this number of connected agents."
              }
            ]
          },
          "docs": "List Blocks"
        },
        {
          "info": {
            "name": "Create Block",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/_internal_blocks/",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Create Block"
        },
        {
          "info": {
            "name": "Delete Block",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://api.letta.com/v1/_internal_blocks/:block_id",
            "params": [
              {
                "name": "block_id",
                "value": "",
                "type": "path",
                "description": "The ID of the block in the format 'block-<uuid4>'"
              }
            ]
          },
          "docs": "Delete Block"
        },
        {
          "info": {
            "name": "List Agents for Block",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/_internal_blocks/:block_id/agents",
            "params": [
              {
                "name": "block_id",
                "value": "",
                "type": "path",
                "description": "The ID of the block in the format 'block-<uuid4>'"
              },
              {
                "name": "before",
                "value": "",
                "type": "query",
                "description": "Agent ID cursor for pagination. Returns agents that come before this agent ID in the specified sort order"
              },
              {
                "name": "after",
                "value": "",
                "type": "query",
                "description": "Agent ID cursor for pagination. Returns agents that come after this agent ID in the specified sort order"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Maximum number of agents to return"
              },
              {
                "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": "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": "Retrieves all agents associated with the specified block.\nRaises a 404 if the block does not exist."
        }
      ]
    },
    {
      "info": {
        "name": "Internal Runs",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List Runs",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/_internal_runs/",
            "params": [
              {
                "name": "run_id",
                "value": "",
                "type": "query",
                "description": "Filter by a specific run ID."
              },
              {
                "name": "agent_id",
                "value": "",
                "type": "query",
                "description": "The unique identifier of the agent associated with the run."
              },
              {
                "name": "agent_ids",
                "value": "",
                "type": "query",
                "description": "The unique identifiers of the agents associated with the run. Deprecated in favor of agent_id field."
              },
              {
                "name": "statuses",
                "value": "",
                "type": "query",
                "description": "Filter runs by status. Can specify multiple statuses."
              },
              {
                "name": "background",
                "value": "",
                "type": "query",
                "description": "If True, filters for runs that were created in background mode."
              },
              {
                "name": "stop_reason",
                "value": "",
                "type": "query",
                "description": "Filter runs by stop reason."
              },
              {
                "name": "template_family",
                "value": "",
                "type": "query",
                "description": "Filter runs by template family (base_template_id)."
              },
              {
                "name": "step_count",
                "value": "",
                "type": "query",
                "description": "Filter runs by step count. Must be provided with step_count_operator."
              },
              {
                "name": "step_count_operator",
                "value": "",
                "type": "query",
                "description": "Operator for step_count filter: 'eq' for equals, 'gte' for greater than or equal, 'lte' for less than or equal."
              },
              {
                "name": "tools_used",
                "value": "",
                "type": "query",
                "description": "Filter runs that used any of the specified tools."
              },
              {
                "name": "before",
                "value": "",
                "type": "query",
                "description": "Run ID cursor for pagination. Returns runs that come before this run ID in the specified sort order"
              },
              {
                "name": "after",
                "value": "",
                "type": "query",
                "description": "Run ID cursor for pagination. Returns runs that come after this run ID in the specified sort order"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Maximum number of runs to return"
              },
              {
                "name": "order",
                "value": "",
                "type": "query",
                "description": "Sort order for runs by creation time. 'asc' for oldest first, 'desc' for newest first"
              },
              {
                "name": "order_by",
                "value": "",
                "type": "query",
                "description": "Field to sort by"
              },
              {
                "name": "active",
                "value": "",
                "type": "query",
                "description": "Filter for active runs."
              },
              {
                "name": "ascending",
                "value": "",
                "type": "query",
                "description": "Whether to sort agents oldest to newest (True) or newest to oldest (False, default). Deprecated in favor of order field."
              },
              {
                "name": "project_id",
                "value": "",
                "type": "query",
                "description": "Filter runs by project ID."
              },
              {
                "name": "conversation_id",
                "value": "",
                "type": "query",
                "description": "Filter runs by conversation ID."
              },
              {
                "name": "duration_percentile",
                "value": "",
                "type": "query",
                "description": "Filter runs by duration percentile (1-100). Returns runs slower than this percentile."
              },
              {
                "name": "duration_value",
                "value": "",
                "type": "query",
                "description": "Duration value in nanoseconds for filtering. Must be used with duration_operator."
              },
              {
                "name": "duration_operator",
                "value": "",
                "type": "query",
                "description": "Comparison operator for duration filter: 'gt' (greater than), 'lt' (less than), 'eq' (equals)."
              },
              {
                "name": "start_date",
                "value": "",
                "type": "query",
                "description": "Filter runs created on or after this date (ISO 8601 format)."
              },
              {
                "name": "end_date",
                "value": "",
                "type": "query",
                "description": "Filter runs created on or before this date (ISO 8601 format)."
              }
            ]
          },
          "docs": "List all runs."
        }
      ]
    },
    {
      "info": {
        "name": "Internal Templates",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Create Group",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/_internal_templates/groups",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Create a new multi-agent group with the specified configuration."
        },
        {
          "info": {
            "name": "Create Agent",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/_internal_templates/agents",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Create a new agent with template-related fields."
        },
        {
          "info": {
            "name": "Create Block",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/_internal_templates/blocks",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Create a new block with template-related fields."
        },
        {
          "info": {
            "name": "Create Blocks Batch",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/_internal_templates/blocks/batch",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Create multiple blocks with template-related fields."
        },
        {
          "info": {
            "name": "List Deployment Entities",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/_internal_templates/deployment/:deployment_id",
            "params": [
              {
                "name": "deployment_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "entity_types",
                "value": "",
                "type": "query",
                "description": "Filter by entity types (block, agent, group)"
              }
            ]
          },
          "docs": "List all entities (blocks, agents, groups) with the specified deployment_id.\nOptionally filter by entity types."
        },
        {
          "info": {
            "name": "Delete Deployment",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://api.letta.com/v1/_internal_templates/deployment/:deployment_id",
            "params": [
              {
                "name": "deployment_id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Delete all entities (blocks, agents, groups) with the specified deployment_id.\nDeletion order: blocks -> agents -> groups to maintain referential integrity."
        }
      ]
    },
    {
      "info": {
        "name": "Models",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List LLM Models",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/models/",
            "params": [
              {
                "name": "provider_category",
                "value": "",
                "type": "query"
              },
              {
                "name": "provider_name",
                "value": "",
                "type": "query"
              },
              {
                "name": "provider_type",
                "value": "",
                "type": "query"
              }
            ]
          },
          "docs": "List available LLM models using the asynchronous implementation for improved performance.\n\nReturns Model format which extends LLMConfig with additional metadata fields.\nLegacy LLMConfig fields are marked as deprecated but still available for backward compatibility."
        },
        {
          "info": {
            "name": "List Embedding Models",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/models/embedding"
          },
          "docs": "List available embedding models using the asynchronous implementation for improved performance.\n\nReturns EmbeddingModel format which extends EmbeddingConfig with additional metadata fields.\nLegacy EmbeddingConfig fields are marked as deprecated but still available for backward compatibility."
        },
        {
          "info": {
            "name": "models.listEmbeddingModels",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/models/embeddings"
          }
        }
      ]
    },
    {
      "info": {
        "name": "MCP Servers",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List MCP Servers",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/mcp-servers/"
          },
          "docs": "Get a list of all configured MCP servers"
        },
        {
          "info": {
            "name": "Create MCP Server",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/mcp-servers/",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Add a new MCP server to the Letta MCP server config"
        },
        {
          "info": {
            "name": "Retrieve MCP Server",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/mcp-servers/:mcp_server_id",
            "params": [
              {
                "name": "mcp_server_id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Get a specific MCP server"
        },
        {
          "info": {
            "name": "Update MCP Server",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://api.letta.com/v1/mcp-servers/:mcp_server_id",
            "params": [
              {
                "name": "mcp_server_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Update an existing MCP server configuration"
        },
        {
          "info": {
            "name": "Delete MCP Server",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://api.letta.com/v1/mcp-servers/:mcp_server_id",
            "params": [
              {
                "name": "mcp_server_id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Delete an MCP server by its ID"
        },
        {
          "info": {
            "name": "List Tools for MCP Server",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/mcp-servers/:mcp_server_id/tools",
            "params": [
              {
                "name": "mcp_server_id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Get a list of all tools for a specific MCP server"
        },
        {
          "info": {
            "name": "Retrieve MCP Tool",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/mcp-servers/:mcp_server_id/tools/:tool_id",
            "params": [
              {
                "name": "mcp_server_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "tool_id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Get a specific MCP tool by its ID"
        },
        {
          "info": {
            "name": "Run MCP Tool",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/mcp-servers/:mcp_server_id/tools/:tool_id/run",
            "params": [
              {
                "name": "mcp_server_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "tool_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Execute a specific MCP tool\n\nThe request body should contain the tool arguments in the ToolExecuteRequest format."
        },
        {
          "info": {
            "name": "Refresh MCP Server Tools",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://api.letta.com/v1/mcp-servers/:mcp_server_id/refresh",
            "params": [
              {
                "name": "mcp_server_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "agent_id",
                "value": "",
                "type": "query"
              }
            ]
          },
          "docs": "Refresh tools for an MCP server by:\n1. Fetching current tools from the MCP server\n2. Deleting tools that no longer exist on the server\n3. Updating schemas for existing tools\n4. Adding new tools from the server\n\nReturns a summary of changes made."
        },
        {
          "info": {
            "name": "Connect MCP Server",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/mcp-servers/connect/:mcp_server_id",
            "params": [
              {
                "name": "mcp_server_id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Connect to an MCP server with support for OAuth via SSE.\nReturns a stream of events handling authorization state and exchange if OAuth is required."
        }
      ]
    },
    {
      "info": {
        "name": "Blocks",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List Blocks",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/blocks/",
            "params": [
              {
                "name": "label",
                "value": "",
                "type": "query",
                "description": "Label to include (alphanumeric, hyphens, underscores, forward slashes)"
              },
              {
                "name": "templates_only",
                "value": "",
                "type": "query",
                "description": "Whether to include only templates"
              },
              {
                "name": "name",
                "value": "",
                "type": "query",
                "description": "Name filter (alphanumeric, spaces, hyphens, underscores)"
              },
              {
                "name": "identity_id",
                "value": "",
                "type": "query",
                "description": "The ID of the identity in the format 'identity-<uuid4>'"
              },
              {
                "name": "identifier_keys",
                "value": "",
                "type": "query",
                "description": "Search agents by identifier keys"
              },
              {
                "name": "project_id",
                "value": "",
                "type": "query",
                "description": "Search blocks by project id"
              },
              {
                "name": "tags",
                "value": "",
                "type": "query",
                "description": "List of tags to filter blocks by"
              },
              {
                "name": "match_all_tags",
                "value": "",
                "type": "query",
                "description": "If True, only returns blocks that match ALL given tags. Otherwise, return blocks that have ANY of the passed-in tags."
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Number of blocks to return"
              },
              {
                "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": "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"
              },
              {
                "name": "label_search",
                "value": "",
                "type": "query",
                "description": "Search blocks by label. If provided, returns blocks whose label matches the search query. This is a full-text search on block labels."
              },
              {
                "name": "description_search",
                "value": "",
                "type": "query",
                "description": "Search blocks by description. If provided, returns blocks whose description matches the search query. This is a full-text search on block descriptions."
              },
              {
                "name": "value_search",
                "value": "",
                "type": "query",
                "description": "Search blocks by value. If provided, returns blocks whose value matches the search query. This is a full-text search on block values."
              },
              {
                "name": "connected_to_agents_count_gt",
                "value": "",
                "type": "query",
                "description": "Filter blocks by the number of connected agents. If provided, returns blocks that have more than this number of connected agents."
              },
              {
                "name": "connected_to_agents_count_lt",
                "value": "",
                "type": "query",
                "description": "Filter blocks by the number of connected agents. If provided, returns blocks that have less than this number of connected agents."
              },
              {
                "name": "connected_to_agents_count_eq",
                "value": "",
                "type": "query",
                "description": "Filter blocks by the exact number of connected agents. If provided, returns blocks that have exactly this number of connected agents."
              }
            ]
          },
          "docs": "List Blocks"
        },
        {
          "info": {
            "name": "Create Block",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/blocks/",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Create Block"
        },
        {
          "info": {
            "name": "Count Blocks",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/blocks/count",
            "params": [
              {
                "name": "label",
                "value": "",
                "type": "query",
                "description": "Label to include (alphanumeric, hyphens, underscores, forward slashes)"
              },
              {
                "name": "templates_only",
                "value": "",
                "type": "query",
                "description": "Whether to include only templates"
              },
              {
                "name": "name",
                "value": "",
                "type": "query",
                "description": "Name filter (alphanumeric, spaces, hyphens, underscores)"
              },
              {
                "name": "tags",
                "value": "",
                "type": "query",
                "description": "List of tags to filter blocks by"
              },
              {
                "name": "match_all_tags",
                "value": "",
                "type": "query",
                "description": "If True, only counts blocks that match ALL given tags. Otherwise, counts blocks that have ANY of the passed-in tags."
              },
              {
                "name": "project_id",
                "value": "",
                "type": "query",
                "description": "Search blocks by project id"
              }
            ]
          },
          "docs": "Count all blocks with optional filtering.\nSupports the same filters as list_blocks for consistent querying."
        },
        {
          "info": {
            "name": "Retrieve Block",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/blocks/:block_id",
            "params": [
              {
                "name": "block_id",
                "value": "",
                "type": "path",
                "description": "The ID of the block in the format 'block-<uuid4>'"
              }
            ]
          },
          "docs": "Retrieve Block"
        },
        {
          "info": {
            "name": "Modify Block",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://api.letta.com/v1/blocks/:block_id",
            "params": [
              {
                "name": "block_id",
                "value": "",
                "type": "path",
                "description": "The ID of the block in the format 'block-<uuid4>'"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Modify Block"
        },
        {
          "info": {
            "name": "Delete Block",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://api.letta.com/v1/blocks/:block_id",
            "params": [
              {
                "name": "block_id",
                "value": "",
                "type": "path",
                "description": "The ID of the block in the format 'block-<uuid4>'"
              }
            ]
          },
          "docs": "Delete Block"
        },
        {
          "info": {
            "name": "List Agents for Block",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/blocks/:block_id/agents",
            "params": [
              {
                "name": "block_id",
                "value": "",
                "type": "path",
                "description": "The ID of the block in the format 'block-<uuid4>'"
              },
              {
                "name": "before",
                "value": "",
                "type": "query",
                "description": "Agent ID cursor for pagination. Returns agents that come before this agent ID in the specified sort order"
              },
              {
                "name": "after",
                "value": "",
                "type": "query",
                "description": "Agent ID cursor for pagination. Returns agents that come after this agent ID in the specified sort order"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Maximum number of agents to return"
              },
              {
                "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": "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": "Retrieves all agents associated with the specified block.\nRaises a 404 if the block does not exist."
        },
        {
          "info": {
            "name": "Attach Identity to Block",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://api.letta.com/v1/blocks/:block_id/identities/attach/:identity_id",
            "params": [
              {
                "name": "identity_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "block_id",
                "value": "",
                "type": "path",
                "description": "The ID of the block in the format 'block-<uuid4>'"
              }
            ]
          },
          "docs": "Attach an identity to a block."
        },
        {
          "info": {
            "name": "Detach Identity from Block",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://api.letta.com/v1/blocks/:block_id/identities/detach/:identity_id",
            "params": [
              {
                "name": "identity_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "block_id",
                "value": "",
                "type": "path",
                "description": "The ID of the block in the format 'block-<uuid4>'"
              }
            ]
          },
          "docs": "Detach an identity from a block."
        }
      ]
    },
    {
      "info": {
        "name": "Jobs",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List Jobs",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/jobs/",
            "params": [
              {
                "name": "source_id",
                "value": "",
                "type": "query",
                "description": "Deprecated: Use `folder_id` parameter instead. Only list jobs associated with the source."
              },
              {
                "name": "before",
                "value": "",
                "type": "query",
                "description": "Job ID cursor for pagination. Returns jobs that come before this job ID in the specified sort order"
              },
              {
                "name": "after",
                "value": "",
                "type": "query",
                "description": "Job ID cursor for pagination. Returns jobs that come after this job ID in the specified sort order"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Maximum number of jobs to return"
              },
              {
                "name": "order",
                "value": "",
                "type": "query",
                "description": "Sort order for jobs by creation time. 'asc' for oldest first, 'desc' for newest first"
              },
              {
                "name": "order_by",
                "value": "",
                "type": "query",
                "description": "Field to sort by"
              },
              {
                "name": "active",
                "value": "",
                "type": "query",
                "description": "Filter for active jobs."
              },
              {
                "name": "ascending",
                "value": "",
                "type": "query",
                "description": "Whether to sort jobs oldest to newest (True, default) or newest to oldest (False). Deprecated in favor of order field."
              }
            ]
          },
          "docs": "List all jobs."
        },
        {
          "info": {
            "name": "List Active Jobs",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/jobs/active",
            "params": [
              {
                "name": "source_id",
                "value": "",
                "type": "query",
                "description": "Deprecated: Use `folder_id` parameter instead. Only list jobs associated with the source."
              },
              {
                "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": "ascending",
                "value": "",
                "type": "query",
                "description": "Whether to sort jobs oldest to newest (True, default) or newest to oldest (False)"
              }
            ]
          },
          "docs": "List all active jobs."
        },
        {
          "info": {
            "name": "Retrieve Job",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/jobs/:job_id",
            "params": [
              {
                "name": "job_id",
                "value": "",
                "type": "path",
                "description": "The ID of the job in the format 'job-<uuid4>'"
              }
            ]
          },
          "docs": "Get the status of a job."
        },
        {
          "info": {
            "name": "Delete Job",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://api.letta.com/v1/jobs/:job_id",
            "params": [
              {
                "name": "job_id",
                "value": "",
                "type": "path",
                "description": "The ID of the job in the format 'job-<uuid4>'"
              }
            ]
          },
          "docs": "Delete a job by its job_id."
        },
        {
          "info": {
            "name": "Cancel Job",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://api.letta.com/v1/jobs/:job_id/cancel",
            "params": [
              {
                "name": "job_id",
                "value": "",
                "type": "path",
                "description": "The ID of the job in the format 'job-<uuid4>'"
              }
            ]
          },
          "docs": "Cancel a job by its job_id.\n\nThis endpoint marks a job as cancelled, which will cause any associated\nagent execution to terminate as soon as possible."
        }
      ]
    },
    {
      "info": {
        "name": "Health",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Check Health",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/health/"
          },
          "docs": "Liveness endpoint; returns 200 when process is responsive."
        },
        {
          "info": {
            "name": "Check Readiness",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/ready/"
          },
          "docs": "Readiness endpoint gated by internal readiness state when enforcement is enabled."
        }
      ]
    },
    {
      "info": {
        "name": "Providers",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List Providers",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/providers/",
            "params": [
              {
                "name": "before",
                "value": "",
                "type": "query",
                "description": "Provider ID cursor for pagination. Returns providers that come before this provider ID in the specified sort order"
              },
              {
                "name": "after",
                "value": "",
                "type": "query",
                "description": "Provider ID cursor for pagination. Returns providers that come after this provider ID in the specified sort order"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Maximum number of providers to return"
              },
              {
                "name": "order",
                "value": "",
                "type": "query",
                "description": "Sort order for providers by creation time. 'asc' for oldest first, 'desc' for newest first"
              },
              {
                "name": "order_by",
                "value": "",
                "type": "query",
                "description": "Field to sort by"
              },
              {
                "name": "name",
                "value": "",
                "type": "query",
                "description": "Filter providers by name"
              },
              {
                "name": "provider_type",
                "value": "",
                "type": "query",
                "description": "Filter providers by type"
              }
            ]
          },
          "docs": "Get a list of all custom providers."
        },
        {
          "info": {
            "name": "Create Provider",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/providers/",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Create a new custom provider."
        },
        {
          "info": {
            "name": "Retrieve Provider",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/providers/:provider_id",
            "params": [
              {
                "name": "provider_id",
                "value": "",
                "type": "path",
                "description": "The ID of the provider in the format 'provider-<uuid4>'"
              }
            ]
          },
          "docs": "Get a provider by ID."
        },
        {
          "info": {
            "name": "Modify Provider",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://api.letta.com/v1/providers/:provider_id",
            "params": [
              {
                "name": "provider_id",
                "value": "",
                "type": "path",
                "description": "The ID of the provider in the format 'provider-<uuid4>'"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Update an existing custom provider."
        },
        {
          "info": {
            "name": "Delete Provider",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://api.letta.com/v1/providers/:provider_id",
            "params": [
              {
                "name": "provider_id",
                "value": "",
                "type": "path",
                "description": "The ID of the provider in the format 'provider-<uuid4>'"
              }
            ]
          },
          "docs": "Delete an existing custom provider."
        },
        {
          "info": {
            "name": "Check Provider",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/providers/check",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Verify the API key and additional parameters for a provider."
        },
        {
          "info": {
            "name": "Check Existing Provider",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/providers/:provider_id/check",
            "params": [
              {
                "name": "provider_id",
                "value": "",
                "type": "path",
                "description": "The ID of the provider in the format 'provider-<uuid4>'"
              }
            ]
          },
          "docs": "Verify the API key and additional parameters for an existing provider."
        },
        {
          "info": {
            "name": "Refresh Provider Models",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://api.letta.com/v1/providers/:provider_id/refresh",
            "params": [
              {
                "name": "provider_id",
                "value": "",
                "type": "path",
                "description": "The ID of the provider in the format 'provider-<uuid4>'"
              }
            ]
          },
          "docs": "Refresh models for a BYOK provider by querying the provider's API.\nAdds new models and removes ones no longer available."
        }
      ]
    },
    {
      "info": {
        "name": "Runs",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List Runs",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/runs/",
            "params": [
              {
                "name": "agent_id",
                "value": "",
                "type": "query",
                "description": "The unique identifier of the agent associated with the run."
              },
              {
                "name": "agent_ids",
                "value": "",
                "type": "query",
                "description": "The unique identifiers of the agents associated with the run. Deprecated in favor of agent_id field."
              },
              {
                "name": "statuses",
                "value": "",
                "type": "query",
                "description": "Filter runs by status. Can specify multiple statuses."
              },
              {
                "name": "background",
                "value": "",
                "type": "query",
                "description": "If True, filters for runs that were created in background mode."
              },
              {
                "name": "stop_reason",
                "value": "",
                "type": "query",
                "description": "Filter runs by stop reason."
              },
              {
                "name": "conversation_id",
                "value": "",
                "type": "query",
                "description": "Filter runs by conversation ID."
              },
              {
                "name": "before",
                "value": "",
                "type": "query",
                "description": "Run ID cursor for pagination. Returns runs that come before this run ID in the specified sort order"
              },
              {
                "name": "after",
                "value": "",
                "type": "query",
                "description": "Run ID cursor for pagination. Returns runs that come after this run ID in the specified sort order"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Maximum number of runs to return"
              },
              {
                "name": "order",
                "value": "",
                "type": "query",
                "description": "Sort order for runs by creation time. 'asc' for oldest first, 'desc' for newest first"
              },
              {
                "name": "order_by",
                "value": "",
                "type": "query",
                "description": "Field to sort by"
              },
              {
                "name": "active",
                "value": "",
                "type": "query",
                "description": "Filter for active runs."
              },
              {
                "name": "ascending",
                "value": "",
                "type": "query",
                "description": "Whether to sort agents oldest to newest (True) or newest to oldest (False, default). Deprecated in favor of order field."
              }
            ]
          },
          "docs": "List all runs."
        },
        {
          "info": {
            "name": "List Active Runs",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/runs/active",
            "params": [
              {
                "name": "agent_id",
                "value": "",
                "type": "query",
                "description": "The unique identifier of the agent associated with the run."
              },
              {
                "name": "background",
                "value": "",
                "type": "query",
                "description": "If True, filters for runs that were created in background mode."
              }
            ]
          },
          "docs": "List all active runs."
        },
        {
          "info": {
            "name": "Retrieve Run",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/runs/:run_id",
            "params": [
              {
                "name": "run_id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Get the status of a run."
        },
        {
          "info": {
            "name": "Delete Run",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://api.letta.com/v1/runs/:run_id",
            "params": [
              {
                "name": "run_id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Delete a run by its run_id."
        },
        {
          "info": {
            "name": "List Messages for Run",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/runs/:run_id/messages",
            "params": [
              {
                "name": "run_id",
                "value": "",
                "type": "path"
              },
              {
                "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"
              }
            ]
          },
          "docs": "Get response messages associated with a run."
        },
        {
          "info": {
            "name": "Retrieve Usage for Run",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/runs/:run_id/usage",
            "params": [
              {
                "name": "run_id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Get usage statistics for a run."
        },
        {
          "info": {
            "name": "Retrieve Metrics for Run",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/runs/:run_id/metrics",
            "params": [
              {
                "name": "run_id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Get run metrics by run ID."
        },
        {
          "info": {
            "name": "List Steps for Run",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/runs/:run_id/steps",
            "params": [
              {
                "name": "run_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "before",
                "value": "",
                "type": "query",
                "description": "Cursor for pagination"
              },
              {
                "name": "after",
                "value": "",
                "type": "query",
                "description": "Cursor for pagination"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Maximum number of messages to return"
              },
              {
                "name": "order",
                "value": "",
                "type": "query",
                "description": "Sort order for steps by creation time. 'asc' for oldest first, 'desc' for newest first"
              },
              {
                "name": "order_by",
                "value": "",
                "type": "query",
                "description": "Field to sort by"
              }
            ]
          },
          "docs": "Get steps associated with a run with filtering options."
        },
        {
          "info": {
            "name": "Retrieve Trace for Run",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/runs/:run_id/trace",
            "params": [
              {
                "name": "run_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Maximum number of spans to return"
              }
            ]
          },
          "docs": "Retrieve OTEL trace spans for a run.\n\nReturns a filtered set of spans relevant for observability:\n- agent_step: Individual agent reasoning steps\n- tool executions: Tool call spans\n- Root span: The top-level request span\n- time_to_first_token: TTFT measurement span\n\nRequires ClickHouse to be configured for trace storage."
        },
        {
          "info": {
            "name": "Retrieve Stream for Run",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/runs/:run_id/stream",
            "params": [
              {
                "name": "run_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Retrieve Stream for Run"
        }
      ]
    },
    {
      "info": {
        "name": "Steps",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List Steps",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/steps/",
            "headers": [
              {
                "name": "X-Project",
                "value": ""
              }
            ],
            "params": [
              {
                "name": "before",
                "value": "",
                "type": "query",
                "description": "Return steps before this step ID"
              },
              {
                "name": "after",
                "value": "",
                "type": "query",
                "description": "Return steps after this step ID"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Maximum number of steps to return"
              },
              {
                "name": "order",
                "value": "",
                "type": "query",
                "description": "Sort order for steps by creation time. 'asc' for oldest first, 'desc' for newest first"
              },
              {
                "name": "order_by",
                "value": "",
                "type": "query",
                "description": "Field to sort by"
              },
              {
                "name": "start_date",
                "value": "",
                "type": "query",
                "description": "Return steps after this ISO datetime (e.g. \"2025-01-29T15:01:19-08:00\")"
              },
              {
                "name": "end_date",
                "value": "",
                "type": "query",
                "description": "Return steps before this ISO datetime (e.g. \"2025-01-29T15:01:19-08:00\")"
              },
              {
                "name": "model",
                "value": "",
                "type": "query",
                "description": "Filter by the name of the model used for the step"
              },
              {
                "name": "agent_id",
                "value": "",
                "type": "query",
                "description": "Filter by the ID of the agent that performed the step"
              },
              {
                "name": "trace_ids",
                "value": "",
                "type": "query",
                "description": "Filter by trace ids returned by the server"
              },
              {
                "name": "feedback",
                "value": "",
                "type": "query",
                "description": "Filter by feedback"
              },
              {
                "name": "has_feedback",
                "value": "",
                "type": "query",
                "description": "Filter by whether steps have feedback (true) or not (false)"
              },
              {
                "name": "tags",
                "value": "",
                "type": "query",
                "description": "Filter by tags"
              },
              {
                "name": "project_id",
                "value": "",
                "type": "query",
                "description": "Filter by the project ID that is associated with the step (cloud only)."
              }
            ]
          },
          "docs": "List steps with optional pagination and date filters."
        },
        {
          "info": {
            "name": "Retrieve Step",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/steps/:step_id",
            "params": [
              {
                "name": "step_id",
                "value": "",
                "type": "path",
                "description": "The ID of the step in the format 'step-<uuid4>'"
              }
            ]
          },
          "docs": "Get a step by ID."
        },
        {
          "info": {
            "name": "Retrieve Metrics for Step",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/steps/:step_id/metrics",
            "params": [
              {
                "name": "step_id",
                "value": "",
                "type": "path",
                "description": "The ID of the step in the format 'step-<uuid4>'"
              }
            ]
          },
          "docs": "Get step metrics by step ID."
        },
        {
          "info": {
            "name": "Retrieve Trace for Step",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/steps/:step_id/trace",
            "params": [
              {
                "name": "step_id",
                "value": "",
                "type": "path",
                "description": "The ID of the step in the format 'step-<uuid4>'"
              }
            ]
          },
          "docs": "Retrieve Trace for Step"
        },
        {
          "info": {
            "name": "Modify Feedback for Step",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://api.letta.com/v1/steps/:step_id/feedback",
            "params": [
              {
                "name": "step_id",
                "value": "",
                "type": "path",
                "description": "The ID of the step in the format 'step-<uuid4>'"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Modify feedback for a given step."
        },
        {
          "info": {
            "name": "List Messages for Step",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/steps/:step_id/messages",
            "params": [
              {
                "name": "step_id",
                "value": "",
                "type": "path",
                "description": "The ID of the step in the format 'step-<uuid4>'"
              },
              {
                "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": "Sort by field"
              }
            ]
          },
          "docs": "List messages for a given step."
        }
      ]
    },
    {
      "info": {
        "name": "Tag",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List Tags",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/tags/",
            "params": [
              {
                "name": "before",
                "value": "",
                "type": "query",
                "description": "Tag cursor for pagination. Returns tags that come before this tag in the specified sort order"
              },
              {
                "name": "after",
                "value": "",
                "type": "query",
                "description": "Tag cursor for pagination. Returns tags that come after this tag in the specified sort order"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Maximum number of tags to return"
              },
              {
                "name": "order",
                "value": "",
                "type": "query",
                "description": "Sort order for tags. 'asc' for alphabetical order, 'desc' for reverse alphabetical order"
              },
              {
                "name": "order_by",
                "value": "",
                "type": "query",
                "description": "Field to sort by"
              },
              {
                "name": "query_text",
                "value": "",
                "type": "query",
                "description": "Filter tags by text search. Deprecated, please use name field instead"
              },
              {
                "name": "name",
                "value": "",
                "type": "query",
                "description": "Filter tags by name"
              }
            ]
          },
          "docs": "Get the list of all tags (from agents and blocks) that have been created."
        }
      ]
    },
    {
      "info": {
        "name": "Telemetry",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Retrieve Provider Trace",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/telemetry/:step_id",
            "params": [
              {
                "name": "step_id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "**DEPRECATED**: Use `GET /steps/{step_id}/trace` instead.\n\nRetrieve provider trace by step ID."
        }
      ]
    },
    {
      "info": {
        "name": "Messages",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List All Messages",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/messages/",
            "params": [
              {
                "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": "conversation_id",
                "value": "",
                "type": "query",
                "description": "Conversation ID to filter messages by"
              },
              {
                "name": "include_return_message_types",
                "value": "",
                "type": "query",
                "description": "Message types to include in response. When null, all message types are returned."
              }
            ]
          },
          "docs": "List messages across all agents for the current user."
        },
        {
          "info": {
            "name": "Search All Messages",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/messages/search",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Search messages across the organization with optional agent filtering.\nReturns messages with FTS/vector ranks and total RRF score.\n\n\nThis is a cloud-only feature."
        },
        {
          "info": {
            "name": "List Batches",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/messages/batches",
            "params": [
              {
                "name": "before",
                "value": "",
                "type": "query",
                "description": "Job ID cursor for pagination. Returns jobs that come before this job ID in the specified sort order"
              },
              {
                "name": "after",
                "value": "",
                "type": "query",
                "description": "Job ID cursor for pagination. Returns jobs that come after this job ID in the specified sort order"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Maximum number of jobs to return"
              },
              {
                "name": "order",
                "value": "",
                "type": "query",
                "description": "Sort order for jobs by creation time. 'asc' for oldest first, 'desc' for newest first"
              },
              {
                "name": "order_by",
                "value": "",
                "type": "query",
                "description": "Field to sort by"
              }
            ]
          },
          "docs": "List all batch runs."
        },
        {
          "info": {
            "name": "Create Batch",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/messages/batches",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Submit a batch of agent runs for asynchronous processing.\n\nCreates a job that will fan out messages to all listed agents and process them in parallel.\nThe request will be rejected if it exceeds 256MB."
        },
        {
          "info": {
            "name": "Retrieve Batch",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/messages/batches/:batch_id",
            "params": [
              {
                "name": "batch_id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Retrieve the status and details of a batch run."
        },
        {
          "info": {
            "name": "List Messages for Batch",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/messages/batches/:batch_id/messages",
            "params": [
              {
                "name": "batch_id",
                "value": "",
                "type": "path"
              },
              {
                "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": "agent_id",
                "value": "",
                "type": "query",
                "description": "Filter messages by agent ID"
              }
            ]
          },
          "docs": "Get response messages for a specific batch job."
        },
        {
          "info": {
            "name": "Cancel Batch",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://api.letta.com/v1/messages/batches/:batch_id/cancel",
            "params": [
              {
                "name": "batch_id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Cancel a batch run."
        },
        {
          "info": {
            "name": "Retrieve Message",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/messages/:message_id",
            "params": [
              {
                "name": "message_id",
                "value": "",
                "type": "path",
                "description": "The ID of the message in the format 'message-<uuid4>'"
              }
            ]
          },
          "docs": "Retrieve a message by ID."
        }
      ]
    },
    {
      "info": {
        "name": "Passages",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Search Passages",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/passages/search",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Search passages across the organization with optional agent and archive filtering.\nReturns passages with relevance scores.\n\nThis endpoint supports semantic search through passages:\n- If neither agent_id nor archive_id is provided, searches ALL passages in the organization\n- If agent_id is provided, searches passages across all archives attached to that agent\n- If archive_id is provided, searches passages within that specific archive\n- If both are provided, agent_id takes precedence"
        }
      ]
    },
    {
      "info": {
        "name": "Voice",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Create Voice Chat Completions",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/voice-beta/:agent_id/chat/completions",
            "params": [
              {
                "name": "agent_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "DEPRECATED: This voice-beta endpoint has been deprecated.\n\nThe voice functionality has been integrated into the main chat completions endpoint.\nPlease use the standard /v1/agents/{agent_id}/messages endpoint instead.\n\nThis endpoint will be removed in a future version."
        }
      ]
    },
    {
      "info": {
        "name": "Embeddings",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get Embeddings Total Storage Size",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/embeddings/total_storage_size",
            "headers": [
              {
                "name": "storage-unit",
                "value": ""
              }
            ]
          },
          "docs": "Get the total size of all embeddings in the database for a user in the storage unit given."
        }
      ]
    },
    {
      "info": {
        "name": "Templates",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Create Agents from Template",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/templates/:project_id/:template_version/agents",
            "params": [
              {
                "name": "project_id",
                "value": "",
                "type": "path",
                "description": "The project id"
              },
              {
                "name": "template_version",
                "value": "",
                "type": "path",
                "description": "The template version, formatted as {template-name}:{version-number} or {template-name}:latest. This endpoint is not available for self-hosted Letta."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Creates an Agent or multiple Agents from a template"
        },
        {
          "info": {
            "name": "Create Agents from Template",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/templates/:template_version/agents",
            "params": [
              {
                "name": "template_version",
                "value": "",
                "type": "path",
                "description": "The template version, formatted as {template-name}:{version-number} or {template-name}:latest. This endpoint is not available for self-hosted Letta."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Creates an Agent or multiple Agents from a template"
        },
        {
          "info": {
            "name": "List Templates (Cloud-only)",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/templates",
            "params": [
              {
                "name": "offset",
                "value": "",
                "type": "query"
              },
              {
                "name": "exact",
                "value": "",
                "type": "query",
                "description": "Whether to search for an exact name match"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              },
              {
                "name": "version",
                "value": "",
                "type": "query",
                "description": "Specify the version you want to return, otherwise will return the latest version"
              },
              {
                "name": "template_id",
                "value": "",
                "type": "query"
              },
              {
                "name": "name",
                "value": "",
                "type": "query"
              },
              {
                "name": "search",
                "value": "",
                "type": "query"
              },
              {
                "name": "project_slug",
                "value": "",
                "type": "query"
              },
              {
                "name": "project_id",
                "value": "",
                "type": "query"
              },
              {
                "name": "sort_by",
                "value": "",
                "type": "query"
              }
            ]
          },
          "docs": "List all templates"
        },
        {
          "info": {
            "name": "Create Template (Cloud-only)",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/templates",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Creates a new template from an existing agent or agent file"
        },
        {
          "info": {
            "name": "Save Template Version (Cloud-only)",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/templates/:template_name/save",
            "params": [
              {
                "name": "template_name",
                "value": "",
                "type": "path",
                "description": "The template version, formatted as {template-name}, any version appended will be ignored"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Saves the current version of the template as a new version"
        },
        {
          "info": {
            "name": "Save Template Version (Cloud-only)",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/templates/:project_id/:template_name",
            "params": [
              {
                "name": "project_id",
                "value": "",
                "type": "path",
                "description": "The project id"
              },
              {
                "name": "template_name",
                "value": "",
                "type": "path",
                "description": "The template version, formatted as {template-name}, any version appended will be ignored"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Saves the current version of the template as a new version"
        },
        {
          "info": {
            "name": "Delete Template (Cloud-only)",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://api.letta.com/v1/templates/:project_id/:template_name",
            "params": [
              {
                "name": "project_id",
                "value": "",
                "type": "path",
                "description": "The project id"
              },
              {
                "name": "template_name",
                "value": "",
                "type": "path",
                "description": "The template name (without version)"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Deletes all versions of a template with the specified name"
        },
        {
          "info": {
            "name": "Get Template Snapshot (Cloud-only)",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/templates/:project_id/:template_version/snapshot",
            "params": [
              {
                "name": "project_id",
                "value": "",
                "type": "path",
                "description": "The project id"
              },
              {
                "name": "template_version",
                "value": "",
                "type": "path",
                "description": "The template version, formatted as {template-name}:{version-number} or {template-name}:latest"
              }
            ]
          },
          "docs": "Get a snapshot of the template version, this will return the template state at a specific version"
        },
        {
          "info": {
            "name": "Set Current Template from Snapshot (Cloud-only)",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "https://api.letta.com/v1/templates/:project_id/:template_version/snapshot",
            "params": [
              {
                "name": "project_id",
                "value": "",
                "type": "path",
                "description": "The project id"
              },
              {
                "name": "template_version",
                "value": "",
                "type": "path",
                "description": "The template name with :dev version (e.g., my-template:dev)"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Updates the current working version of a template from a snapshot"
        },
        {
          "info": {
            "name": "Fork Template (Cloud-only)",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/templates/:project_id/:template_version/fork",
            "params": [
              {
                "name": "project_id",
                "value": "",
                "type": "path",
                "description": "The project id"
              },
              {
                "name": "template_version",
                "value": "",
                "type": "path",
                "description": "The template version, formatted as {template-name}:{version-number} or {template-name}:latest"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Forks a template version into a new template"
        },
        {
          "info": {
            "name": "Create Template (Cloud-only)",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/templates/:project_id",
            "params": [
              {
                "name": "project_id",
                "value": "",
                "type": "path",
                "description": "The project id"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Creates a new template from an existing agent or agent file"
        },
        {
          "info": {
            "name": "Update Current Template from Agent File (Cloud-only)",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://api.letta.com/v1/templates/:template_name",
            "params": [
              {
                "name": "template_name",
                "value": "",
                "type": "path",
                "description": "The template name (without version)"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Updates the current working version of a template from an agent file"
        },
        {
          "info": {
            "name": "Delete Template (Cloud-only)",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://api.letta.com/v1/templates/:template_name",
            "params": [
              {
                "name": "template_name",
                "value": "",
                "type": "path",
                "description": "The template name (without version)"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Deletes all versions of a template with the specified name"
        },
        {
          "info": {
            "name": "Rename Template (Cloud-only)",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://api.letta.com/v1/templates/:project_id/:template_name/name",
            "params": [
              {
                "name": "project_id",
                "value": "",
                "type": "path",
                "description": "The project id"
              },
              {
                "name": "template_name",
                "value": "",
                "type": "path",
                "description": "The current template name (version will be automatically stripped if included)"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Renames all versions of a template with the specified name. Versions are automatically stripped from the current template name if accidentally included."
        },
        {
          "info": {
            "name": "Update Template Description (Cloud-only)",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://api.letta.com/v1/templates/:project_id/:template_name/description",
            "params": [
              {
                "name": "project_id",
                "value": "",
                "type": "path",
                "description": "The project id"
              },
              {
                "name": "template_name",
                "value": "",
                "type": "path",
                "description": "The template name (version will be automatically stripped if included)"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Updates the description for all versions of a template with the specified name. Versions are automatically stripped from the current template name if accidentally included."
        },
        {
          "info": {
            "name": "List Template Versions (Cloud-only)",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/templates/:project_id/:name/versions",
            "params": [
              {
                "name": "project_id",
                "value": "",
                "type": "path",
                "description": "The project id"
              },
              {
                "name": "name",
                "value": "",
                "type": "path",
                "description": "The template name (without version)"
              },
              {
                "name": "offset",
                "value": "",
                "type": "query"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              }
            ]
          },
          "docs": "List all versions of a specific template"
        },
        {
          "info": {
            "name": "Migrate Deployment to Template Version (Cloud-only)",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/templates/:project_id/:template_name/deployments/:deployment_id/migrate",
            "params": [
              {
                "name": "project_id",
                "value": "",
                "type": "path",
                "description": "The project id"
              },
              {
                "name": "template_name",
                "value": "",
                "type": "path",
                "description": "The template name (without version)"
              },
              {
                "name": "deployment_id",
                "value": "",
                "type": "path",
                "description": "The deployment ID to migrate"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Migrates a deployment to a specific template version"
        },
        {
          "info": {
            "name": "Rollback Template to Previous Version (Cloud-only)",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/templates/:template_name/rollback",
            "params": [
              {
                "name": "template_name",
                "value": "",
                "type": "path",
                "description": "The template name (without version)"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Rollback the current working version of a template to a previous saved version. If the current version has unsaved changes, they will be automatically saved as a new version before rollback."
        },
        {
          "info": {
            "name": "Rollback Template to Previous Version (Cloud-only)",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/templates/:project_id/:template_name/rollback",
            "params": [
              {
                "name": "project_id",
                "value": "",
                "type": "path",
                "description": "The project id"
              },
              {
                "name": "template_name",
                "value": "",
                "type": "path",
                "description": "The template name (without version)"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Rollback the current working version of a template to a previous saved version. If the current version has unsaved changes, they will be automatically saved as a new version before rollback."
        },
        {
          "info": {
            "name": "Update Current Template from Agent File (Cloud-only)",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "https://api.letta.com/v1/templates/:project_id/:template_name/agent-file",
            "params": [
              {
                "name": "project_id",
                "value": "",
                "type": "path",
                "description": "The project id"
              },
              {
                "name": "template_name",
                "value": "",
                "type": "path",
                "description": "The template name (without version)"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Updates the current working version of a template from an agent file"
        },
        {
          "info": {
            "name": "Migrate Template from Legacy Project (Cloud-only)",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/legacy-templates/:templateId/migrates",
            "params": [
              {
                "name": "templateId",
                "value": "",
                "type": "path",
                "description": "The template ID"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Migrates a template from a legacy project to the default project. Only works if the template is currently in a legacy project."
        }
      ]
    },
    {
      "info": {
        "name": "Client-Side Access Tokens",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List Tokens (Cloud-only)",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/client-side-access-tokens",
            "params": [
              {
                "name": "agentId",
                "value": "",
                "type": "query",
                "description": "The agent ID to filter tokens by. If provided, only tokens for this agent will be returned."
              },
              {
                "name": "offset",
                "value": "",
                "type": "query",
                "description": "The offset for pagination. Defaults to 0."
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "The number of tokens to return per page. Defaults to 10."
              }
            ]
          },
          "docs": "List all client side access tokens for the current account. This is only available for cloud users."
        },
        {
          "info": {
            "name": "Create Token (Cloud-only)",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/client-side-access-tokens",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Create a new client side access token with the specified configuration."
        },
        {
          "info": {
            "name": "Delete Token (Cloud-only)",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://api.letta.com/v1/client-side-access-tokens/:token",
            "params": [
              {
                "name": "token",
                "value": "",
                "type": "path",
                "description": "The access token to delete"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Delete a client side access token."
        }
      ]
    },
    {
      "info": {
        "name": "Projects",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List Projects (Cloud-only)",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/projects",
            "params": [
              {
                "name": "name",
                "value": "",
                "type": "query"
              },
              {
                "name": "offset",
                "value": "",
                "type": "query"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              }
            ]
          },
          "docs": "List all projects"
        },
        {
          "info": {
            "name": "Create Project (Cloud-only)",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/projects",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Create a new project"
        },
        {
          "info": {
            "name": "Delete Project (Cloud-only)",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://api.letta.com/v1/projects/:projectId",
            "params": [
              {
                "name": "projectId",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Delete a project by ID"
        }
      ]
    },
    {
      "info": {
        "name": "Metadata",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Retrieve Current Organization Balance",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/metadata/balance"
          },
          "docs": "Retrieve the current usage balances for the organization."
        },
        {
          "info": {
            "name": "Send User Feedback",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/metadata/feedback",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Send feedback from users to improve our services."
        },
        {
          "info": {
            "name": "Send Telemetry Event",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/metadata/telemetry",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Send telemetry events for usage tracking and analysis."
        },
        {
          "info": {
            "name": "Gets Your Letta Cloud Status",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/metadata/status"
          },
          "docs": "Gets Your Letta Cloud Status"
        },
        {
          "info": {
            "name": "Get Current User Information",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/metadata/user"
          },
          "docs": "Retrieve information about the current authenticated user including email, name, organization, and current project."
        }
      ]
    },
    {
      "info": {
        "name": "Scheduled Messages",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List Scheduled Agent Messages",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/agents/:agent_id/schedule",
            "params": [
              {
                "name": "agent_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              },
              {
                "name": "after",
                "value": "",
                "type": "query"
              }
            ]
          },
          "docs": "List all scheduled messages for a specific agent."
        },
        {
          "info": {
            "name": "Schedule Agent Message",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/agents/:agent_id/schedule",
            "params": [
              {
                "name": "agent_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Schedule a message to be sent by the agent at a specified time or on a recurring basis."
        },
        {
          "info": {
            "name": "Retrieve Scheduled Agent Message",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/agents/:agent_id/schedule/:scheduled_message_id",
            "params": [
              {
                "name": "agent_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "scheduled_message_id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Retrieve a scheduled message by its ID for a specific agent."
        },
        {
          "info": {
            "name": "Delete Scheduled Agent Message",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://api.letta.com/v1/agents/:agent_id/schedule/:scheduled_message_id",
            "params": [
              {
                "name": "agent_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "scheduled_message_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Delete a scheduled message by its ID for a specific agent."
        }
      ]
    },
    {
      "info": {
        "name": "Feeds",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List Feeds",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/feeds",
            "params": [
              {
                "name": "project_id",
                "value": "",
                "type": "query"
              },
              {
                "name": "name",
                "value": "",
                "type": "query"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              },
              {
                "name": "offset",
                "value": "",
                "type": "query"
              }
            ]
          },
          "docs": "List all feeds with optional filters and pagination"
        },
        {
          "info": {
            "name": "Create Feed",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/feeds",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Create a new feed in a project"
        },
        {
          "info": {
            "name": "Get Feed",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/feeds/:feed_id",
            "params": [
              {
                "name": "feed_id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Retrieve feed details by ID"
        },
        {
          "info": {
            "name": "Delete Feed",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://api.letta.com/v1/feeds/:feed_id",
            "params": [
              {
                "name": "feed_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Soft delete a feed and clean up its sequence"
        },
        {
          "info": {
            "name": "List Feed Messages",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/feeds/:feed_id/messages",
            "params": [
              {
                "name": "feed_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "after_sequence",
                "value": "",
                "type": "query"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              }
            ]
          },
          "docs": "List messages from a feed (for debugging/inspection)"
        },
        {
          "info": {
            "name": "Publish Messages",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/feeds/:feed_id/messages",
            "params": [
              {
                "name": "feed_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Batch insert messages into a feed (up to 10,000 per request)"
        },
        {
          "info": {
            "name": "Get Feed Message",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/feeds/:feed_id/messages/:message_id",
            "params": [
              {
                "name": "feed_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "message_id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Get full content of a feed message"
        },
        {
          "info": {
            "name": "Subscribe Agent to Feed",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/feeds/:feed_id/subscribe",
            "params": [
              {
                "name": "feed_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Subscribe an agent to a feed with polling configuration"
        },
        {
          "info": {
            "name": "Update Subscription",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://api.letta.com/v1/feeds/:feed_id/subscriptions/:subscription_id",
            "params": [
              {
                "name": "feed_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "subscription_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Update subscription configuration (cron schedule, enable/disable)"
        },
        {
          "info": {
            "name": "Delete Subscription",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://api.letta.com/v1/feeds/:feed_id/subscriptions/:subscription_id",
            "params": [
              {
                "name": "feed_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "subscription_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Remove agent subscription from a feed (by subscription_id)"
        },
        {
          "info": {
            "name": "Unsubscribe Agent from Feed",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/feeds/:feed_id/unsubscribe",
            "params": [
              {
                "name": "feed_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Remove agent subscription from a feed (by agent_id)"
        },
        {
          "info": {
            "name": "Trigger Subscription",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/feeds/:feed_id/subscriptions/:subscription_id/trigger",
            "params": [
              {
                "name": "feed_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "subscription_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Immediately trigger a subscription to process pending messages"
        },
        {
          "info": {
            "name": "Backfill Subscription",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/feeds/:feed_id/subscriptions/:subscription_id/backfill",
            "params": [
              {
                "name": "feed_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "subscription_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Start a background job to send historical messages to an agent subscription. Returns immediately with workflow ID. Does not update last_consumed_sequence."
        },
        {
          "info": {
            "name": "List Subscription History",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/feeds/:feed_id/subscriptions/:subscription_id/history",
            "params": [
              {
                "name": "feed_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "subscription_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "page_size",
                "value": "",
                "type": "query"
              },
              {
                "name": "next_page_token",
                "value": "",
                "type": "query"
              }
            ]
          },
          "docs": "List the run history for a subscription including scheduled runs, manual triggers, and backfills."
        },
        {
          "info": {
            "name": "Update All Subscriptions Cron Schedule",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://api.letta.com/v1/feeds/:feed_id/subscriptions/cron",
            "params": [
              {
                "name": "feed_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Update the cron schedule for all subscriptions of a feed"
        },
        {
          "info": {
            "name": "List Feed Subscriptions",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/feeds/:feed_id/subscriptions",
            "params": [
              {
                "name": "feed_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              },
              {
                "name": "offset",
                "value": "",
                "type": "query"
              },
              {
                "name": "agent_id",
                "value": "",
                "type": "query"
              }
            ]
          },
          "docs": "List all agent subscriptions for a feed"
        }
      ]
    },
    {
      "info": {
        "name": "Memory Files",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List Directory",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/agents/:agent_id/memory-files/directory",
            "params": [
              {
                "name": "agent_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "path",
                "value": "",
                "type": "query",
                "description": "Directory path to list. Empty for root."
              },
              {
                "name": "depth",
                "value": "",
                "type": "query",
                "description": "Depth of directory listing (default: 1)."
              },
              {
                "name": "ref",
                "value": "",
                "type": "query",
                "description": "Git ref (default: HEAD)."
              }
            ]
          },
          "docs": "List immediate children of a directory in the agent memory repo (single level)."
        },
        {
          "info": {
            "name": "Get File History",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/agents/:agent_id/memory-files/history",
            "params": [
              {
                "name": "agent_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "file_path",
                "value": "",
                "type": "query",
                "description": "Path to the file (e.g. \"blocks/persona.md\")."
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Max commits to return (default: 50)."
              }
            ]
          },
          "docs": "Get commit history for a specific file in the agent memory repo."
        },
        {
          "info": {
            "name": "Read File Content",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/agents/:agent_id/memory-files/content",
            "params": [
              {
                "name": "agent_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "file_path",
                "value": "",
                "type": "query",
                "description": "Path to the file (e.g. \"blocks/persona.md\")."
              },
              {
                "name": "ref",
                "value": "",
                "type": "query",
                "description": "Git ref (default: HEAD)."
              }
            ]
          },
          "docs": "Read a single file content at a specific git ref from the agent memory repo."
        }
      ]
    },
    {
      "info": {
        "name": "Pipelines",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List Pipelines",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/pipelines",
            "params": [
              {
                "name": "search",
                "value": "",
                "type": "query"
              },
              {
                "name": "integration_type",
                "value": "",
                "type": "query"
              },
              {
                "name": "integration_id",
                "value": "",
                "type": "query"
              },
              {
                "name": "offset",
                "value": "",
                "type": "query"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              }
            ]
          },
          "docs": "List all pipelines for the organization with optional filtering"
        },
        {
          "info": {
            "name": "Create Pipeline",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/pipelines",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Create a new pipeline (producer + feed + optionally subscribers)"
        },
        {
          "info": {
            "name": "Count Pipelines",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/pipelines/count",
            "params": [
              {
                "name": "search",
                "value": "",
                "type": "query"
              },
              {
                "name": "integration_type",
                "value": "",
                "type": "query"
              },
              {
                "name": "integration_id",
                "value": "",
                "type": "query"
              }
            ]
          },
          "docs": "Get the total count of pipelines, optionally filtered by project and search"
        },
        {
          "info": {
            "name": "Get Pipeline",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/pipelines/:pipeline_id",
            "params": [
              {
                "name": "pipeline_id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Get a single pipeline with details"
        },
        {
          "info": {
            "name": "Update Pipeline",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://api.letta.com/v1/pipelines/:pipeline_id",
            "params": [
              {
                "name": "pipeline_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Update pipeline name or disable/enable it"
        },
        {
          "info": {
            "name": "Delete Pipeline",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://api.letta.com/v1/pipelines/:pipeline_id",
            "params": [
              {
                "name": "pipeline_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Soft delete a pipeline and cascade to feed + subscriptions"
        },
        {
          "info": {
            "name": "Update Pipeline Producer Config",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "https://api.letta.com/v1/pipelines/:pipeline_id/config",
            "params": [
              {
                "name": "pipeline_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Update the producer configuration for a pipeline (e.g., Slack channels)"
        },
        {
          "info": {
            "name": "Preview Pipeline",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/pipelines/preview",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Fetch sample messages from integration to preview what agents will receive"
        },
        {
          "info": {
            "name": "Sync Pipeline",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/pipelines/:pipeline_id/sync",
            "params": [
              {
                "name": "pipeline_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Manually trigger a pipeline sync to fetch new messages immediately"
        },
        {
          "info": {
            "name": "List Pipeline Sync History",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/pipelines/:pipeline_id/sync/history",
            "params": [
              {
                "name": "pipeline_id",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "List the sync run history for a pipeline from Temporal with error details"
        }
      ]
    },
    {
      "info": {
        "name": "Environments",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Register Environment",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/environments/register",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Register a new listener connection and get connectionId for WebSocket"
        },
        {
          "info": {
            "name": "Get Environment Connection",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/environments/:deviceId",
            "params": [
              {
                "name": "deviceId",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Get a specific environment connection by deviceId"
        },
        {
          "info": {
            "name": "List Environment Connections",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/environments",
            "params": [
              {
                "name": "limit",
                "value": "",
                "type": "query"
              },
              {
                "name": "after",
                "value": "",
                "type": "query"
              },
              {
                "name": "userId",
                "value": "",
                "type": "query"
              },
              {
                "name": "onlineOnly",
                "value": "",
                "type": "query"
              }
            ]
          },
          "docs": "List all active environment connections for the organization"
        },
        {
          "info": {
            "name": "Send Message to Environment",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/environments/:connectionId/messages",
            "params": [
              {
                "name": "connectionId",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Send a message to a specific environment connection"
        },
        {
          "info": {
            "name": "Delete Environment",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://api.letta.com/v1/environments/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Removes environment from list of environments"
        }
      ]
    },
    {
      "info": {
        "name": "Sandboxes",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List Sandboxes",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/sandboxes",
            "params": [
              {
                "name": "agentId",
                "value": "",
                "type": "query"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              }
            ]
          },
          "docs": "List all sandboxes for the organization"
        },
        {
          "info": {
            "name": "Create Sandbox",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/sandboxes",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Create a new Modal Sandbox that runs letta remote automatically"
        },
        {
          "info": {
            "name": "Terminate Sandbox",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://api.letta.com/v1/sandboxes/:sandboxId/terminate",
            "params": [
              {
                "name": "sandboxId",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Terminate a Modal Sandbox"
        }
      ]
    },
    {
      "info": {
        "name": "Device Storage",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get Device Storage Key",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://api.letta.com/v1/device-storage-key",
            "params": [
              {
                "name": "deviceId",
                "value": "",
                "type": "query"
              }
            ]
          },
          "docs": "Returns an HMAC-derived AES-256-GCM key scoped to the authenticated user and device. Used to encrypt/decrypt local IndexedDB caches on the client."
        }
      ]
    }
  ],
  "bundled": true
}