Messages
List All Messages
Search All Messages
ModelsExpand Collapse
MessageSearchRequest = object { query, end_date, limit, 2 more }
query: string
Text query for full-text search
end_date: optional string
Filter messages created on or before this date
limit: optional number
Maximum number of results to return
search_mode: optional "vector" or "fts" or "hybrid"
Search mode to use
start_date: optional string
Filter messages created after this date
MessageSearchResult = object { embedded_text, message, rrf_score, 2 more }
Result from a message search operation with scoring details.
embedded_text: string
The embedded content (LLM-friendly)
The raw message object
id: string
The human-friendly ID of the Message
The role of the participant.
agent_id: optional string
The unique identifier of the agent.
approval_request_id: optional string
The id of the approval request if this message is associated with a tool call request.
approvals: optional array of ApprovalReturn { approve, tool_call_id, reason, type } or object { status, func_response, stderr, 2 more }
The list of approvals for this message.
ApprovalReturn = object { approve, tool_call_id, reason, type }
approve: boolean
Whether the tool has been approved
tool_call_id: string
The ID of the tool call that corresponds to this approval
reason: optional string
An optional explanation for the provided approval status
type: optional "approval"
The message type to be created.
LettaSchemasMessageToolReturn = object { status, func_response, stderr, 2 more }
status: "success" or "error"
The status of the tool call
func_response: optional string
The function response string
stderr: optional array of string
Captured stderr from the tool invocation
stdout: optional array of string
Captured stdout (e.g. prints, logs) from the tool invocation
tool_call_id: optional unknown
The ID for the tool call
approve: optional boolean
Whether tool call is approved.
batch_item_id: optional string
The id of the LLMBatchItem that this message is associated with
content: optional array of TextContent { text, signature, type } or ImageContent { source, type } or ToolCallContent { id, input, name, 2 more } or 5 more
The content of the message.
TextContent = object { text, signature, type }
text: string
The text content of the message.
signature: optional string
Stores a unique identifier for any reasoning associated with this text content.
type: optional "text"
The type of the message.
ImageContent = object { source, type }
source: object { url, type } or object { data, media_type, detail, type } or object { file_id, data, detail, 2 more }
The source of the image.
URL = object { url, type }
url: string
The URL of the image.
type: optional "url"
The source type for the image.
Base64 = object { data, media_type, detail, type }
data: string
The base64 encoded image data.
media_type: string
The media type for the image.
detail: optional string
What level of detail to use when processing and understanding the image (low, high, or auto to let the model decide)
type: optional "base64"
The source type for the image.
Letta = object { file_id, data, detail, 2 more }
file_id: string
The unique identifier of the image file persisted in storage.
data: optional string
The base64 encoded image data.
detail: optional string
What level of detail to use when processing and understanding the image (low, high, or auto to let the model decide)
media_type: optional string
The media type for the image.
type: optional "letta"
The source type for the image.
type: optional "image"
The type of the message.
ToolCallContent = object { id, input, name, 2 more }
id: string
A unique identifier for this specific tool call instance.
input: map[unknown]
The parameters being passed to the tool, structured as a dictionary of parameter names to values.
name: string
The name of the tool being called.
signature: optional string
Stores a unique identifier for any reasoning associated with this tool call.
type: optional "tool_call"
Indicates this content represents a tool call event.
ToolReturnContent = object { content, is_error, tool_call_id, type }
content: string
The content returned by the tool execution.
is_error: boolean
Indicates whether the tool execution resulted in an error.
tool_call_id: string
References the ID of the ToolCallContent that initiated this tool call.
type: optional "tool_return"
Indicates this content represents a tool return event.
ReasoningContent = object { is_native, reasoning, signature, type }
Sent via the Anthropic Messages API
is_native: boolean
Whether the reasoning content was generated by a reasoner model that processed this step.
reasoning: string
The intermediate reasoning or thought process content.
signature: optional string
A unique identifier for this reasoning step.
type: optional "reasoning"
Indicates this is a reasoning/intermediate step.
RedactedReasoningContent = object { data, type }
Sent via the Anthropic Messages API
data: string
The redacted or filtered intermediate reasoning content.
type: optional "redacted_reasoning"
Indicates this is a redacted thinking step.
OmittedReasoningContent = object { signature, type }
A placeholder for reasoning content we know is present, but isn't returned by the provider (e.g. OpenAI GPT-5 on ChatCompletions)
signature: optional string
A unique identifier for this reasoning step.
type: optional "omitted_reasoning"
Indicates this is an omitted reasoning step.
SummarizedReasoning = object { id, summary, encrypted_content, type }
The style of reasoning content returned by the OpenAI Responses API
id: string
The unique identifier for this reasoning step.
summary: array of object { index, text }
Summaries of the reasoning content.
index: number
The index of the summary part.
text: string
The text of the summary part.
encrypted_content: optional string
The encrypted reasoning content.
type: optional "summarized_reasoning"
Indicates this is a summarized reasoning step.
created_at: optional string
The timestamp when the object was created.
created_by_id: optional string
The id of the user that made this object.
denial_reason: optional string
The reason the tool call request was denied.
group_id: optional string
The multi-agent group that the message was sent in
is_err: optional boolean
Whether this message is part of an error step. Used only for debugging purposes.
last_updated_by_id: optional string
The id of the user that made this object.
model: optional string
The model used to make the function call.
name: optional string
For role user/assistant: the (optional) name of the participant. For role tool/function: the name of the function called.
otid: optional string
The offline threading id associated with this message
run_id: optional string
The id of the run that this message was created in.
sender_id: optional string
The id of the sender of the message, can be an identity id or agent id
step_id: optional string
The id of the step that this message was created in.
tool_call_id: optional string
The ID of the tool call. Only applicable for role tool.
tool_calls: optional array of object { id, function, type }
The list of tool calls requested. Only applicable for role assistant.
function: object { arguments, name }
type: "function"
tool_returns: optional array of object { status, func_response, stderr, 2 more }
Tool execution return information for prior tool calls
status: "success" or "error"
The status of the tool call
func_response: optional string
The function response string
stderr: optional array of string
Captured stderr from the tool invocation
stdout: optional array of string
Captured stdout (e.g. prints, logs) from the tool invocation
tool_call_id: optional unknown
The ID for the tool call
updated_at: optional string
The timestamp when the object was last updated.
rrf_score: number
Reciprocal Rank Fusion combined score
fts_rank: optional number
Full-text search rank position if FTS was used
vector_rank: optional number
Vector search rank position if vector search was used