Get messages in a conversation
GET /api/conversations/{id}/messages
Returns the 50 most recent messages in the conversation, oldest first. Includes messages from all participants (customer, AI agent, human agent, system). For email conversations, the content contains the parsed email body.
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”The unique identifier of the conversation.
Responses
Section titled “ Responses ”Returns the 50 most recent messages in the conversation, oldest first.
Chronologically ordered list of messages in a conversation.
A single message in a conversation.
object
Unique identifier for the message.
Whether the message came from the customer (inbound) or was sent by oHallo (outbound).
Who produced the message. On voice channels every message is inbound, so use this to distinguish the caller from the assistant.
The message text.
When the message was sent.
The conversation turn this message belongs to. Present when the message is part of a turn.
Sender address, when the channel provides one.
The channel the message arrived on or was sent through.
Subject line, for channels that have one such as email.
No conversation exists with the given ID in the authenticated tenant. An API key restricted to a brand or workspace receives the same answer for a conversation in a workspace outside its restriction.
Standard error response returned by all endpoints on failure.
object
A human-readable error message describing what went wrong.
Example
Conversation not foundA machine-readable reason on some refusals, for example ‘key_lock’ when an API key’s brand or workspace restriction does not cover the action.
Example
key_lockOn a 403 for an API key without a scope the endpoint requires: the scopes the key lacks.
Example
[ "mcp:write"]On a 409 with code duplicate_question or duplicate_rule_text: the knowledge base entry or policy that already holds the question or rule text.
Example
11223344-5566-4788-99aa-bbccddeeff00On a 422 about one MCP connection a request names, from an assignment or an agent create or update (a connection that does not exist, one listed twice, or one that does not declare a tool named): the connection, as the request named it.
On the same 422: the tool names the connection does not declare.
Example
[ "get_orders"]On the same 422: the tools the connection declares.
Example
[ "get_order", "search_orders"]