> ## Documentation Index > Fetch the complete documentation index at: https://developer.rocket.chat/llms.txt > Use this file to discover all available pages before exploring further. # Get Thread Messages > Get thread messages. Use `aroundId` to load the replies surrounding a specific message. When you provide `aroundId`, the server calculates the page offset around that message instead of using the requested `offset`, and returns the calculated value in the response. Hidden message-history records are excluded from the returned messages and pagination totals. ### Changelog | Version | Description | | ------------ | ------------| | 8.8.0 | Added the `aroundId` parameter and excluded hidden message-history records from results and pagination totals | | 1.2.0 | Remove `tlm` field which is not supported | | 1.1.0 | Update example results - original message in thread is not returned | | 1.0.0 | Added | ## OpenAPI ````json GET /api/v1/chat.getThreadMessages { "openapi": "3.0.0", "info": { "version": "1.0.0", "title": "Messaging" }, "servers": [ { "url": "https://apiexplorer.support.rocket.chat" } ], "tags": [ { "name": "Chat" }, { "name": "Direct Messages" }, { "name": "Auto-Translate" } ], "paths": { "/api/v1/chat.getThreadMessages": { "get": { "tags": [ "Chat" ], "summary": "Get Thread Messages", "description": "Get thread messages.\n\nUse `aroundId` to load the replies surrounding a specific message. When you provide `aroundId`, the server calculates the page offset around that message instead of using the requested `offset`, and returns the calculated value in the response. Hidden message-history records are excluded from the returned messages and pagination totals.\n\n### Changelog\n| Version | Description | \n| ------------ | ------------|\n| 8.8.0 | Added the `aroundId` parameter and excluded hidden message-history records from results and pagination totals |\n| 1.2.0 | Remove `tlm` field which is not supported |\n| 1.1.0 | Update example results - original message in thread is not returned |\n| 1.0.0 | Added |", "operationId": "get-api-v1-chat.getThreadMessages", "parameters": [ { "$ref": "#/components/parameters/Auth-Token" }, { "$ref": "#/components/parameters/UserId" }, { "$ref": "#/components/parameters/offset" }, { "$ref": "#/components/parameters/count" }, { "$ref": "#/components/parameters/sort" }, { "$ref": "#/components/parameters/query" }, { "$ref": "#/components/parameters/fields" }, { "name": "tmid", "in": "query", "description": "The thread message ID.", "required": "true", "schema": { "type": "string" }, "example": "7aDSXtjMA3KPLxLjt" }, { "name": "aroundId", "in": "query", "description": "The ID of the thread's main message or one of its replies. The endpoint returns a page of replies surrounding this message. When you provide this parameter, the server calculates the page offset and ignores the requested `offset` value. The message must belong to the thread specified by `tmid`.", "required": "false", "schema": { "type": "string" }, "example": "GfhiiJjcjKFyYMuMY" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "messages": { "type": "array", "items": { "type": "object", "properties": { "_id": { "type": "string" }, "rid": { "type": "string" }, "msg": { "type": "string" }, "ts": { "type": "string" }, "u": { "type": "object", "properties": { "_id": { "type": "string" }, "username": { "type": "string" }, "name": { "type": "string" } } }, "_updatedAt": { "type": "string" }, "mentions": { "type": "array", "items": { "type": "object" } }, "channels": { "type": "array", "items": { "type": "object" } }, "replies": { "type": "array", "items": { "type": "string" } }, "tcount": { "type": "integer" }, "tlm": { "type": "string" }, "tmid": { "type": "string" } } } }, "count": { "type": "integer", "description": "The number of visible replies returned in this response." }, "offset": { "type": "integer", "description": "The starting offset of the returned page. When you provide `aroundId`, this is the offset calculated by the server." }, "total": { "type": "integer", "description": "The total number of visible replies in the thread. Hidden message-history records are excluded." }, "success": { "type": "boolean" } } }, "examples": { "Example": { "value": { "messages": [ { "_id": "gcGai9bRREqokjyPc", "rid": "GENERAL", "msg": "Test", "ts": "2019-04-08T13:15:52.017Z", "u": { "_id": "p4a8YxvLQEHmiBKTS", "username": "marc.dev", "name": "Marc Dev" }, "_updatedAt": "2019-04-08T14:40:27.789Z", "mentions": [], "channels": [], "replies": [ "p4a8YxvLQEHmiBKTS" ], "tcount": "5", "tlm": "2019-04-08T14:40:27.724Z" }, { "_id": "GfhiiJjcjKFyYMuMY", "rid": "GENERAL", "tmid": "gcGai9bRREqokjyPc", "msg": "This is a test!", "ts": "2019-04-08T13:20:22.238Z", "u": { "_id": "p4a8YxvLQEHmiBKTS", "username": "marc.dev", "name": "Marc Dev" }, "_updatedAt": "2019-04-08T13:20:22.265Z", "mentions": [], "channels": [] } ], "count": "2", "offset": "0", "total": "2", "success": "true" } } } } } }, "401": { "$ref": "#/components/responses/authorizationError" }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean" }, "error": { "type": "string" }, "errorType": { "type": "string" } } }, "examples": { "Missing parameter": { "value": { "success": "false", "error": "The required \"tmid\" query param is missing. [error-invalid-params]", "errorType": "error-invalid-params" } }, "Invalid Message": { "value": { "success": "false", "error": "Invalid Message [error-invalid-message]", "errorType": "error-invalid-message" } }, "Invalid aroundId": { "value": { "success": "false", "error": "The provided \"aroundId\" does not belong to the thread [error-invalid-message]", "errorType": "error-invalid-message" } } } } } } } } } }, "components": { "parameters": { "Auth-Token": { "name": "X-Auth-Token", "in": "header", "description": "The `authToken` of the authenticated user.", "required": "true", "schema": { "type": "string" }, "example": "RScctEHSmLGZGywfIhWyRpyofhKOiMoUIpimhvheU3f" }, "UserId": { "name": "X-User-Id", "in": "header", "description": "The `userId` of the authenticated user.", "required": "true", "schema": { "type": "string" }, "example": "rbAXPnMktTFbNpwtJ" }, "offset": { "name": "offset", "in": "query", "description": "Number of items to \"skip\" in the query, i.e. requests return count items, skipping the first offset items. Refer to the [official documentation](https://developer.rocket.chat/apidocs/query-parameters#pagination) to learn more.", "required": "false", "schema": { "type": "integer" }, "example": "50" }, "count": { "name": "count", "in": "query", "description": "The number of items to return. Refer to the [official documentation](https://developer.rocket.chat/apidocs/query-parameters#pagination) to learn more.", "required": "false", "schema": { "type": "integer" }, "example": "50" }, "sort": { "name": "sort", "in": "query", "description": "List of fields to order by, and in which direction. This is a JSON object, with properties listed in desired order, with values of 1 for ascending, or -1 for descending. For example, `{ \"value\": -1, \"_id\": 1 }`. Refer to the [official documentation](https://developer.rocket.chat/apidocs/query-parameters#pagination) to learn more.", "required": "false", "schema": {} }, "query": { "name": "query", "in": "query", "description": "This parameter allows you to use MongoDB query operators to search for specific data. For example, to query users with a name that contains the letter \"g\": query=`{ \"name\": { \"$regex\": \"g\" }}`. Refer to the [official documentation](https://developer.rocket.chat/apidocs/query-parameters#query-and-fields) to learn more.", "required": "false", "schema": {} }, "fields": { "name": "fields", "in": "query", "description": "This parameter accepts a JSON object with properties that have a value of 1 or 0 to include or exclude them in the response. For example, to only retrieve the usernames of users: fields=`{ \"username\": 1 }`. Refer to the [official documentation](https://developer.rocket.chat/apidocs/query-parameters#query-and-fields) to learn more.", "required": "false", "schema": { "type": "string" } } }, "responses": { "authorizationError": { "description": "Unauthorized", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "string" }, "message": { "type": "string" } } }, "examples": { "Authorization Error": { "value": { "status": "error", "message": "You must be logged in to do this." } } } } } } } } } ````