# Retrieve channel-based chat history

> Learn how to retrieve chat history for specific channels.

To retrieve the channel-based chat history, you need to sign in and connect to at least one channel. You can then use vx\_req\_session\_chat\_history\_query to make a request.

vx\_req\_session\_chat\_history\_query will return 10 messages by default. You can increase the number of messages that are returned by increasing the max value in the request. The maximum number of messages that we store per channel is 5000, with a maximum age of 7 days.

You will receive a vx\_evt\_account\_archive\_message event for every message.

The following code is an example of how to retrieve the last 20 messages for the specific channel:

```plaintext
vx_req_session_chat_history_query *req;
vx_req_session_chat_history_query_create(&req);
req->session_handle = vx_strdup("mychannel");
req->max = 20;
vx_issue_request2(&req->base);
```

After you get these messages, the game must then process two types of event messages:

* vx\_evt\_session\_archive\_message
* vx\_evt\_session\_archive\_query\_end\_t

```plaintext
void HandleSessionChatHistoryMessage(vx_evt_session_archive_message
 *evt)
{
    // Use information in events to display messages
    …
}
 
void HandleSessionChatHistoryEnd(vx_evt_session_archive_query_end_t *resp)
{
    if (resp != nullptr && resp->return_code == 0) {
    // Ended abnormally
    } else {
        // Ended properly
    }
}
```
