> Fetch clean Markdown by appending `.md` to any page URL under https://signalwire.com/docs or requesting it with the HTTP header `Accept: text/markdown`. The root index at https://signalwire.com/docs/llms.txt lists the available documentation indexes.

# log

> Read a conversation's message history and call timeline.

[ref-aichatclient]: /docs/server-sdks/reference/typescript/agents/ai-chat-client

Read the conversation back. This changes nothing about the conversation.

## **Parameters**

**`conversationId`** `string` — required

The conversation to read.

---

## **Returns**

`Promise<ChatLog>` -- carries `messages` and `callTimeline`.

Messages contain the fields returned by the service. Code that displays a
transcript should not assume every entry has a timestamp. `callTimeline`
contains any structured timeline entries returned for the conversation.

`messages` can include your prompt and other non-dialogue entries. Filter to
`user` and `assistant` roles before displaying a transcript.

## **Example**

```typescript {5-8}
import { AIChatClient } from '@signalwire/sdk';

const client = new AIChatClient({ space: 'your-space' });

const { messages } = await client.log('chat-8f21');
for (const m of messages) {
  if (m.role === 'user' || m.role === 'assistant') console.log(m.role, m.content);
}
```