---
title: "Get message"
method: GET
path: "/messages/{messageId}"
tags: ["messages"]
---

# Get message

`GET /messages/{messageId}`

## Request

- Base URL: `https://botapi.tamtam.chat`
- URL: `https://botapi.tamtam.chat/messages/{messageId}`
- Auth: API key in query parameter `access_token`

Returns single message by its identifier.

## Path parameters

- `messageId` string, required

## Response `200`

Returns single message

- Message: Message in chat
  - `sender` User
    - `user_id` integer, required: Users identifier
    - `name` string, required: Users visible name
    - `username` string, nullable, required: Unique public user name. Can be `null` if user is not accessible or it is not set
    - `is_bot` boolean, required: `true` if user is bot
    - `last_activity_time` integer, required: Time of last user activity in TamTam (Unix timestamp in milliseconds). Can be outdated if user disabled its "online" status in settings
  - `recipient` Recipient, required: New message recipient. Could be user or chat
    - `chat_id` integer, nullable, required: Chat identifier
    - `chat_type` 'dialog' | 'chat' | 'channel', required: Type of chat. Dialog (one-on-one), chat or channel
    - `user_id` integer, nullable, required: User identifier, if message was sent to user
  - `timestamp` integer, required: Unix-time when message was created
  - `link` LinkedMessage
    - `type` 'forward' | 'reply', required: Type of linked message
    - `sender` User
      - `user_id` integer, required: Users identifier
      - `name` string, required: Users visible name
      - `username` string, nullable, required: Unique public user name. Can be `null` if user is not accessible or it is not set
      - `is_bot` boolean, required: `true` if user is bot
      - `last_activity_time` integer, required: Time of last user activity in TamTam (Unix timestamp in milliseconds). Can be outdated if user disabled its "online" status in settings
    - `chat_id` integer: Chat where message has been originally posted. For forwarded messages only
    - `message` MessageBody, required: Schema representing body of message
      - `mid` string, required: Unique identifier of message
      - `seq` integer, required: Sequence identifier of message in chat
      - `text` string, nullable, required: Message text
      - `attachments` Attachment[], nullable, required: Message attachments. Could be one of `Attachment` type. See description of this schema
        - `type` string, required
      - `markup` MarkupElement[], nullable: Message text markup. See [Formatting](#section/About/Text-formatting) section for more info
        - `type` string, required: Type of the markup element. Can be **strong**, *emphasized*, ~strikethrough~, ++underline++, `monospaced`, link or user_mention
        - `from` integer, required: Element start index (zero-based) in text
        - `length` integer, required: Length of the markup element
  - `body` MessageBody, required: Schema representing body of message
    - `mid` string, required: Unique identifier of message
    - `seq` integer, required: Sequence identifier of message in chat
    - `text` string, nullable, required: Message text
    - `attachments` Attachment[], nullable, required: Message attachments. Could be one of `Attachment` type. See description of this schema
      - `type` string, required
    - `markup` MarkupElement[], nullable: Message text markup. See [Formatting](#section/About/Text-formatting) section for more info
      - `type` string, required: Type of the markup element. Can be **strong**, *emphasized*, ~strikethrough~, ++underline++, `monospaced`, link or user_mention
      - `from` integer, required: Element start index (zero-based) in text
      - `length` integer, required: Length of the markup element
  - `stat` MessageStat: Message statistics
    - `views` integer, required
  - `url` string, nullable: Message public URL. Can be `null` for dialogs or non-public chats/channels
  - `constructor` User
    - `user_id` integer, required: Users identifier
    - `name` string, required: Users visible name
    - `username` string, nullable, required: Unique public user name. Can be `null` if user is not accessible or it is not set
    - `is_bot` boolean, required: `true` if user is bot
    - `last_activity_time` integer, required: Time of last user activity in TamTam (Unix timestamp in milliseconds). Can be outdated if user disabled its "online" status in settings

## Other responses

- `401`: Authorization Error. No `access_token` provided or token is invalid
- `404`: In case when message is not found or bot has no access to it
- `500`: Internal Server Error

## Changes

- **2021-06-02** `137e3d1e0b4f`: 4 info
  - added `highlighted` discriminator mapping keys to the `body/allOf[#/components/schemas/MessageBody]/markup/items/` response property for the response status `200`
  - added `highlighted` discriminator mapping keys to the `link/allOf[#/components/schemas/LinkedMessage]/message/allOf[#/components/schemas/MessageBody]/markup/items/` response property for the response status `200`
  - removed `code` discriminator mapping keys from the `body/allOf[#/components/schemas/MessageBody]/markup/items/` response property for the response status `200`
  - removed `code` discriminator mapping keys from the `link/allOf[#/components/schemas/LinkedMessage]/message/allOf[#/components/schemas/MessageBody]/markup/items/` response property for the response status `200`
- **2021-05-31** `dc45288cfedc`: 5 info
  - added the optional property `body/allOf[#/components/schemas/MessageBody]/markup` to the response with the `200` status
  - added the optional property `link/allOf[#/components/schemas/LinkedMessage]/message/allOf[#/components/schemas/MessageBody]/markup` to the response with the `200` status
  - added the required property `constructor/allOf[#/components/schemas/User]/last_activity_time` to the response with the `200` status
  - added the required property `link/allOf[#/components/schemas/LinkedMessage]/sender/allOf[#/components/schemas/User]/last_activity_time` to the response with the `200` status
  - …1 more
- …earlier changes not shown

[Operation history](https://skmtc.dev/tamtam/apis/tamtam-bot-api/changes/messages/:messageId/get.md)

---

[API](https://skmtc.dev/tamtam/apis/tamtam-bot-api.md) - [All operations](https://skmtc.dev/tamtam/apis/tamtam-bot-api/llms.txt) - [OpenAPI document](https://skmtc.dev/tamtam/apis/tamtam-bot-api/revisions/fa85402ea716?raw)
