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

# Get message

`GET /messages/{MessageID}`

The method returns a message from any chat by message id.

## Path parameters

- `MessageID` string, required — Message ID

## Query parameters

- `resync` boolean

## Response `200`

OK

- Message
  - `id` string, required — Message ID
  - `type` 'text' | 'image' | 'video' | 'gif' | 'audio' | 'voice' | 'short' | 'document' | 'documentWithCaption' | 'link_preview' | 'location' | 'live_location' | 'contact' | 'contact_list' | 'sticker' | 'system' | 'call' | 'unknown' | 'action' | 'group_invite' | 'newsletter_invite' | 'admin_invite' | 'product' | 'catalog' | 'interactive' | 'reply' | 'poll' | 'quiz' | 'question' | 'hsm' | 'order' | 'story' | 'event' | 'buttons' | 'list' | 'pin' | 'carousel' | 'album', required — Message type
  - `subtype` string — Message subtype
  - `chat_id` string, required — Chat ID
  - `chat_name` string — Chat name
  - `from` string — WhatsApp ID of the sender
  - `phone` string — Phone number of the sender
  - `from_me` boolean, required — Is message from me
  - `from_name` string — Pushname of the sender
  - `source` 'web' | 'mobile' | 'api' | 'system' | 'business_api' | 'unknown' — Message source
  - `timestamp` number, required — Message timestamp
  - `device_id` number — Device ID, if the message was not sent through the app
  - `status` 'failed' | 'pending' | 'sent' | 'delivered' | 'read' | 'played' | 'deleted' — Message ack status
  - `text` MessageContentText
    - `body` string, required — Message text
    - `buttons` Button[]
      - `type` 'quick_reply' | 'call' | 'copy' | 'url', required — Type of button
      - `title` string, required — Button text
      - `id` string, required — Button ID
      - `copy_code` string — Button code for copy type
      - `phone_number` string — Button phone number for call type
      - `url` string — Button url for url type
      - `merchant_url` string — Button merchant_url for url type
    - `sections` object[] — Section of the message
      - `title` string — Title of the section
      - `rows` object[] — Rows of the section
        - `title` string — Title of the row
        - `description` string — Description of the row
        - `id` string — Row ID
      - `product_items` object[] — Product items of the section
        - `catalog_id` string — Catalog ID
        - `product_id` string — Product ID
    - `button` string — Button text for list of message
    - `view_once` boolean — Is view once
  - `image` MessageContentImage
    - `id` string, required — Media ID
    - `link` string — Optional. Link to media
    - `mime_type` string, required — Mime type of media
    - `file_size` integer, required — File size in bytes
    - `file_name` string — Optional. File name
    - `sha256` string — Checksum
    - `timestamp` number — Created at
    - `caption` string — Optional. Text caption under the media.
    - `preview` string — Optional. Base64 encoded preview of the media. In JPEG format.
    - `width` integer — Width of the media in pixels
    - `height` integer — Height of the media in pixels
    - `buttons` Button[]
      - `type` 'quick_reply' | 'call' | 'copy' | 'url', required — Type of button
      - `title` string, required — Button text
      - `id` string, required — Button ID
      - `copy_code` string — Button code for copy type
      - `phone_number` string — Button phone number for call type
      - `url` string — Button url for url type
      - `merchant_url` string — Button merchant_url for url type
    - `view_once` boolean — Is view once
  - `video` MessageContentVideo
    - `id` string, required — Media ID
    - `link` string — Optional. Link to media
    - `mime_type` string, required — Mime type of media
    - `file_size` integer, required — File size in bytes
    - `file_name` string — Optional. File name
    - `sha256` string — Checksum
    - `timestamp` number — Created at
    - `caption` string — Optional. Text caption under the media.
    - `preview` string — Optional. Base64 encoded preview of the media. In JPEG format.
    - `width` integer — Width of the media in pixels
    - `height` integer — Height of the media in pixels
    - `seconds` integer — Optional. For video files, this field indicates the duration of the video file in seconds.
    - `autoplay` boolean — Optional. If the media is a GIF, this field indicates whether the GIF should be played automatically when the message is received.
    - `buttons` Button[]
      - `type` 'quick_reply' | 'call' | 'copy' | 'url', required — Type of button
      - `title` string, required — Button text
      - `id` string, required — Button ID
      - `copy_code` string — Button code for copy type
      - `phone_number` string — Button phone number for call type
      - `url` string — Button url for url type
      - `merchant_url` string — Button merchant_url for url type
    - `view_once` boolean — Is view once
  - `short` MessageContentVideo
    - `id` string, required — Media ID
    - `link` string — Optional. Link to media
    - `mime_type` string, required — Mime type of media
    - `file_size` integer, required — File size in bytes
    - `file_name` string — Optional. File name
    - `sha256` string — Checksum
    - `timestamp` number — Created at
    - `caption` string — Optional. Text caption under the media.
    - `preview` string — Optional. Base64 encoded preview of the media. In JPEG format.
    - `width` integer — Width of the media in pixels
    - `height` integer — Height of the media in pixels
    - `seconds` integer — Optional. For video files, this field indicates the duration of the video file in seconds.
    - `autoplay` boolean — Optional. If the media is a GIF, this field indicates whether the GIF should be played automatically when the message is received.
    - `buttons` Button[]
      - `type` 'quick_reply' | 'call' | 'copy' | 'url', required — Type of button
      - `title` string, required — Button text
      - `id` string, required — Button ID
      - `copy_code` string — Button code for copy type
      - `phone_number` string — Button phone number for call type
      - `url` string — Button url for url type
      - `merchant_url` string — Button merchant_url for url type
    - `view_once` boolean — Is view once
  - `gif` MessageContentVideo
    - `id` string, required — Media ID
    - `link` string — Optional. Link to media
    - `mime_type` string, required — Mime type of media
    - `file_size` integer, required — File size in bytes
    - `file_name` string — Optional. File name
    - `sha256` string — Checksum
    - `timestamp` number — Created at
    - `caption` string — Optional. Text caption under the media.
    - `preview` string — Optional. Base64 encoded preview of the media. In JPEG format.
    - `width` integer — Width of the media in pixels
    - `height` integer — Height of the media in pixels
    - `seconds` integer — Optional. For video files, this field indicates the duration of the video file in seconds.
    - `autoplay` boolean — Optional. If the media is a GIF, this field indicates whether the GIF should be played automatically when the message is received.
    - `buttons` Button[]
      - `type` 'quick_reply' | 'call' | 'copy' | 'url', required — Type of button
      - `title` string, required — Button text
      - `id` string, required — Button ID
      - `copy_code` string — Button code for copy type
      - `phone_number` string — Button phone number for call type
      - `url` string — Button url for url type
      - `merchant_url` string — Button merchant_url for url type
    - `view_once` boolean — Is view once
  - `audio` MessageContentAudio
    - `id` string, required — Media ID
    - `link` string — Optional. Link to media
    - `mime_type` string, required — Mime type of media
    - `file_size` integer, required — File size in bytes
    - `file_name` string — Optional. File name
    - `sha256` string — Checksum
    - `timestamp` number — Created at
    - `seconds` integer — Optional. For audio files, this field indicates the duration of the audio file in seconds.
    - `recording_time` number — Time in seconds to simulate recording voice
    - `waveform` string — Voice message waveform
    - `view_once` boolean — Is view once
  - `voice` MessageContentAudio
    - `id` string, required — Media ID
    - `link` string — Optional. Link to media
    - `mime_type` string, required — Mime type of media
    - `file_size` integer, required — File size in bytes
    - `file_name` string — Optional. File name
    - `sha256` string — Checksum
    - `timestamp` number — Created at
    - `seconds` integer — Optional. For audio files, this field indicates the duration of the audio file in seconds.
    - `recording_time` number — Time in seconds to simulate recording voice
    - `waveform` string — Voice message waveform
    - `view_once` boolean — Is view once
  - `document` MessageContentDocument
    - `id` string, required — Media ID
    - `link` string — Optional. Link to media
    - `mime_type` string, required — Mime type of media
    - `file_size` integer, required — File size in bytes
    - `file_name` string — Optional. File name
    - `sha256` string — Checksum
    - `timestamp` number — Created at
    - `caption` string — Optional. Text caption under the document.
    - `filename` string — Optional. File name
    - `page_count` integer — Optional. Number of pages
    - `preview` string — Optional. Base64 encoded preview of the media. In JPEG format.
    - `buttons` Button[]
      - `type` 'quick_reply' | 'call' | 'copy' | 'url', required — Type of button
      - `title` string, required — Button text
      - `id` string, required — Button ID
      - `copy_code` string — Button code for copy type
      - `phone_number` string — Button phone number for call type
      - `url` string — Button url for url type
      - `merchant_url` string — Button merchant_url for url type
    - `view_once` boolean — Is view once
  - `link_preview` MessageContentLinkPreview — If 'body' contains a link, this props can be used to create custom preview link
    - `body` string, required — Message text
    - `url` string — URL of the link
    - `id` string — Media ID
    - `link` string — Optional. Link to media
    - `sha256` string — Checksum
    - `catalog_id` string — Contact ID
    - `newsletter_id` string — Newsletter ID
    - `invite_code` string — Invite code
    - `title` string, required — Title of the link
    - `description` string — Description of the link
    - `canonical` string — Canonical URL of the link (for example, if the link is shortened)
    - `preview` string — Base64 encoded image for mini version link preview. In JPEG format
    - `view_once` boolean — Is view once
  - `sticker` MessageContentSticker
    - `id` string, required — Media ID
    - `link` string — Optional. Link to media
    - `mime_type` string, required — Mime type of media
    - `file_size` integer, required — File size in bytes
    - `file_name` string — Optional. File name
    - `sha256` string — Checksum
    - `timestamp` number — Created at
    - `animated` boolean — Optional. For stickers, this field indicates whether the sticker is animated.
    - `width` integer — Width of the media in pixels
    - `height` integer — Height of the media in pixels
    - `preview` string — Optional. Base64 encoded preview of the media. In PNG format.
    - `view_once` boolean — Is view once
  - `location` MessageContentLocation
    - `latitude` number, double, required — Latitude of location being sent
    - `longitude` number, double, required — Longitude of location being sent
    - `address` string — Address of the location
    - `name` string — Name of the location
    - `url` string — URL for the website where the user downloaded the location information
    - `preview` string — Optional. Base64 encoded preview of the media. In JPEG format.
    - `accuracy` integer — Accuracy of the location in meters
    - `speed` integer — Speed of the location in meters per second
    - `degrees` integer — Degrees clockwise from true north
    - `comment` string — Optional. Comment for the location
    - `view_once` boolean — Is view once
  - `live_location` MessageContentLiveLocation
    - `latitude` number, double, required — Latitude of live location being sent
    - `longitude` number, double, required — Longitude of live location being sent
    - `accuracy` integer — Accuracy of the live location in meters
    - `speed` integer — Speed of the live location in meters per second
    - `degrees` integer — Degrees clockwise from true north
    - `caption` string — Optional. Text caption under the live location
    - `sequence_number` integer — Optional. Sequence number of the live location for event tracking
    - `time_offset` number — Optional. Time offset of the live location
    - `preview` string — Optional. Base64 encoded preview of the media. In JPEG format.
    - `view_once` boolean — Is view once
  - `contact` MessageContentContact
    - `name` string — Name of contact
    - `vcard` string — Vcard of contact
  - `contact_list` MessageContentContacts
    - `list` VCard[]
      - `name` string — Name of contact
      - `vcard` string — Vcard of contact
  - `interactive` MessageContentInteractive
    - `header` object — Header of interactive
      - `text` string
    - `body` object, required — Body of interactive
      - `text` string — Text of body
    - `footer` object — Footer of interactive
      - `text` string — Text of footer
    - `action` InteractiveAction, required
      - `list` object
        - `sections` object[], required — Section of the message
          - `title` string — Title of the section
          - `rows` object[] — Rows of the section
            - `title` string — Title of the row
            - `description` string — Description of the row
            - `id` string — Row ID
        - `label` string, required — Text for list of message
      - `buttons` Button[] — Buttons
        - `type` 'quick_reply' | 'call' | 'copy' | 'url', required — Type of button
        - `title` string, required — Button text
        - `id` string, required — Button ID
        - `copy_code` string — Button code for copy type
        - `phone_number` string — Button phone number for call type
        - `url` string — Button url for url type
        - `merchant_url` string — Button merchant_url for url type
      - `product` ActionProduct
        - `catalog_id` string — Catalog ID
        - `product_id` string — Product ID
    - `type` 'list' | 'button' | 'product', required — Interactive type
    - `id` string, required — Media ID
    - `link` string — Optional. Link to media
    - `mime_type` string, required — Mime type of media
    - `file_size` integer, required — File size in bytes
    - `file_name` string — Optional. File name
    - `sha256` string — Checksum
    - `timestamp` number — Created at
    - `view_once` boolean — Is view once
  - `poll` MessageContentPoll
    - `title` string, required — Title of poll
    - `options` string[], required — Options of poll
    - `vote_limit` integer — Number of selectable options in poll (1 - can choose only one option, 0 - any number of options)
    - `end_time` integer — Poll end timestamp
    - `hide_participant_name` boolean — Hide participant names in poll results
    - `allow_add_option` boolean — Allow participants to add options
    - `total` integer — Total count of selected options
    - `results` PollResults[]
      - `id` string, required — option ID
      - `name` string, required — option name
      - `count` integer, required — Number of votes for this option
      - `voters` ContactID[], required — List of users who voted for this option
    - `view_once` boolean — Is view once
  - `quiz` MessageContentQuiz
    - `title` string, required — Title of poll
    - `options` string[], required — Options of poll
    - `vote_limit` integer — Number of selectable options in poll (1 - can choose only one option, 0 - any number of options)
    - `end_time` integer — Poll end timestamp
    - `hide_participant_name` boolean — Hide participant names in poll results
    - `allow_add_option` boolean — Allow participants to add options
    - `total` integer — Total count of selected options
    - `correct_answer` string — Correct option for quiz
    - `results` PollResults[]
      - `id` string, required — option ID
      - `name` string, required — option name
      - `count` integer, required — Number of votes for this option
      - `voters` ContactID[], required — List of users who voted for this option
    - `view_once` boolean — Is view once
  - `question` MessageContentQuestion
    - `body` string — Question text
    - `total` integer — Total count of responses
    - `responses` QuestionAnswer[] — Question responses
      - `participant` string — Contact ID
      - `text` string — Answer text
      - `timestamp` integer — Response timestamp
  - `hsm` MessageContentHSM
    - `header` object — Header
      - `type` 'text' | 'image' | 'video' | 'document' | 'location' — Header type
      - `text` MessagePropsText
        - `body` string, required — Message text
      - `image` MediaFile
        - `id` string, required — Media ID
        - `link` string — Optional. Link to media
        - `mime_type` string, required — Mime type of media
        - `file_size` integer, required — File size in bytes
        - `file_name` string — Optional. File name
        - `sha256` string — Checksum
        - `timestamp` number — Created at
      - `video` MediaFile
        - `id` string, required — Media ID
        - `link` string — Optional. Link to media
        - `mime_type` string, required — Mime type of media
        - `file_size` integer, required — File size in bytes
        - `file_name` string — Optional. File name
        - `sha256` string — Checksum
        - `timestamp` number — Created at
      - `document` MediaFile
        - `id` string, required — Media ID
        - `link` string — Optional. Link to media
        - `mime_type` string, required — Mime type of media
        - `file_size` integer, required — File size in bytes
        - `file_name` string — Optional. File name
        - `sha256` string — Checksum
        - `timestamp` number — Created at
      - `location` MessageContentLocation
        - `latitude` number, double, required — Latitude of location being sent
        - `longitude` number, double, required — Longitude of location being sent
        - `address` string — Address of the location
        - `name` string — Name of the location
        - `url` string — URL for the website where the user downloaded the location information
        - `preview` string — Optional. Base64 encoded preview of the media. In JPEG format.
        - `accuracy` integer — Accuracy of the location in meters
        - `speed` integer — Speed of the location in meters per second
        - `degrees` integer — Degrees clockwise from true north
        - `comment` string — Optional. Comment for the location
        - `view_once` boolean — Is view once
    - `body` string — Message text
    - `footer` string — Message footer
    - `buttons` HSMButton[] — Buttons
      - `id` string — ID of the button
      - `type` 'simple' | 'reply' | 'url' | 'phone_number' | 'copy_code' — Type of button
      - `text` string — Button text
      - `url` string — URL
      - `phone_number` string — Phone number
      - `copy_code` string — Code
  - `system` MessageContentSystem
    - `body` string — Message body
  - `order` MessageContentOrder
    - `order_id` string — Order ID
    - `seller` string — Seller ID (Contact ID)
    - `title` string — Order title
    - `text` string — Order message text
    - `token` string — Base64 secret token
    - `item_count` number — Total products count
    - `currency` 'USD' | 'EUR' | 'AED' | 'AFN' | 'ALL' | 'AMD' | 'ANG' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BHD' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BRL' | 'BSD' | 'BTN' | 'BWP' | 'BYN' | 'BZD' | 'CAD' | 'CDF' | 'CHF' | 'CLP' | 'CNY' | 'COP' | 'CRC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'FJD' | 'FKP' | 'GBP' | 'GEL' | 'GGP' | 'GHS' | 'GIP' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HRK' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'IMP' | 'INR' | 'IQD' | 'IRR' | 'ISK' | 'JEP' | 'JMD' | 'JOD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KPW' | 'KRW' | 'KWD' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRU' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SHP' | 'SLL' | 'SOS' | 'SRD' | 'SSP' | 'STN' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'UYU' | 'UZS' | 'VEF' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XCD' | 'XOF' | 'XPF' | 'YER' | 'ZAR' | 'ZMW' | 'ZWL' — Currency
    - `total_price` number — Total order price
    - `status` 'new' | 'accepted' | 'canceled' — Order status
    - `preview` string — Order preview base64 image JPEG
  - `group_invite` MessageContentLinkPreview — If 'body' contains a link, this props can be used to create custom preview link
    - `body` string, required — Message text
    - `url` string — URL of the link
    - `id` string — Media ID
    - `link` string — Optional. Link to media
    - `sha256` string — Checksum
    - `catalog_id` string — Contact ID
    - `newsletter_id` string — Newsletter ID
    - `invite_code` string — Invite code
    - `title` string, required — Title of the link
    - `description` string — Description of the link
    - `canonical` string — Canonical URL of the link (for example, if the link is shortened)
    - `preview` string — Base64 encoded image for mini version link preview. In JPEG format
    - `view_once` boolean — Is view once
  - `newsletter_invite` MessageContentLinkPreview — If 'body' contains a link, this props can be used to create custom preview link
    - `body` string, required — Message text
    - `url` string — URL of the link
    - `id` string — Media ID
    - `link` string — Optional. Link to media
    - `sha256` string — Checksum
    - `catalog_id` string — Contact ID
    - `newsletter_id` string — Newsletter ID
    - `invite_code` string — Invite code
    - `title` string, required — Title of the link
    - `description` string — Description of the link
    - `canonical` string — Canonical URL of the link (for example, if the link is shortened)
    - `preview` string — Base64 encoded image for mini version link preview. In JPEG format
    - `view_once` boolean — Is view once
  - `admin_invite` MessageContentNewsletterAdminInvite
    - `body` string, required — Message text
    - `newsletter_id` string, required — Newsletter ID
    - `newsletter_name` string, required — Newsletter name
    - `expiration` number, required — Expiration timestamp of the invitation
    - `preview` string — Base64 encoded newsletter preview image. In JPEG format
  - `product` MessageContentProduct
    - `catalog_id` string — Catalog ID
    - `product_id` string — Product ID
  - `catalog` MessageContentLinkPreview — If 'body' contains a link, this props can be used to create custom preview link
    - `body` string, required — Message text
    - `url` string — URL of the link
    - `id` string — Media ID
    - `link` string — Optional. Link to media
    - `sha256` string — Checksum
    - `catalog_id` string — Contact ID
    - `newsletter_id` string — Newsletter ID
    - `invite_code` string — Invite code
    - `title` string, required — Title of the link
    - `description` string — Description of the link
    - `canonical` string — Canonical URL of the link (for example, if the link is shortened)
    - `preview` string — Base64 encoded image for mini version link preview. In JPEG format
    - `view_once` boolean — Is view once
  - `product_items` MessageContentProductItems
    - `type` 'list' | 'buttons' — Type of interactive
  - `action` MessageAction
    - `target` string — Target message ID or chat ID
    - `type` 'edited' | 'edit' | 'delete' | 'reaction' | 'ephemeral' | 'vote' | 'result' | 'comment' | 'event_response' | 'answer' | 'pin' | 'unpin' | 'label_change' | 'media_notify' | 'status_notify' | 'group_status_notify', required — Type of action
    - `emoji` string — Action emoji for reaction
    - `ephemeral` integer — Ephemeral message duration
    - `edited_type` 'text' | 'image' | 'video' | 'gif' | 'audio' | 'voice' | 'short' | 'document' | 'documentWithCaption' | 'link_preview' | 'location' | 'live_location' | 'contact' | 'contact_list' | 'sticker' | 'system' | 'call' | 'unknown' | 'action' | 'group_invite' | 'newsletter_invite' | 'admin_invite' | 'product' | 'catalog' | 'interactive' | 'reply' | 'poll' | 'quiz' | 'question' | 'hsm' | 'order' | 'story' | 'event' | 'buttons' | 'list' | 'pin' | 'carousel' | 'album' — Message type
    - `edited_content` union
      - object
        - `body` string, required — Message text
        - `buttons` Button[]
          - `type` 'quick_reply' | 'call' | 'copy' | 'url', required — Type of button
          - `title` string, required — Button text
          - `id` string, required — Button ID
          - `copy_code` string — Button code for copy type
          - `phone_number` string — Button phone number for call type
          - `url` string — Button url for url type
          - `merchant_url` string — Button merchant_url for url type
        - `sections` object[] — Section of the message
          - `title` string — Title of the section
          - `rows` object[] — Rows of the section
            - `title` string — Title of the row
            - `description` string — Description of the row
            - `id` string — Row ID
          - `product_items` object[] — Product items of the section
            - `catalog_id` string — Catalog ID
            - `product_id` string — Product ID
        - `button` string — Button text for list of message
        - `view_once` boolean — Is view once
      - object
        - `id` string, required — Media ID
        - `link` string — Optional. Link to media
        - `mime_type` string, required — Mime type of media
        - `file_size` integer, required — File size in bytes
        - `file_name` string — Optional. File name
        - `sha256` string — Checksum
        - `timestamp` number — Created at
        - `caption` string — Optional. Text caption under the media.
        - `preview` string — Optional. Base64 encoded preview of the media. In JPEG format.
        - `width` integer — Width of the media in pixels
        - `height` integer — Height of the media in pixels
        - `buttons` Button[]
          - `type` 'quick_reply' | 'call' | 'copy' | 'url', required — Type of button
          - `title` string, required — Button text
          - `id` string, required — Button ID
          - `copy_code` string — Button code for copy type
          - `phone_number` string — Button phone number for call type
          - `url` string — Button url for url type
          - `merchant_url` string — Button merchant_url for url type
        - `view_once` boolean — Is view once
      - object
        - `id` string, required — Media ID
        - `link` string — Optional. Link to media
        - `mime_type` string, required — Mime type of media
        - `file_size` integer, required — File size in bytes
        - `file_name` string — Optional. File name
        - `sha256` string — Checksum
        - `timestamp` number — Created at
        - `caption` string — Optional. Text caption under the media.
        - `preview` string — Optional. Base64 encoded preview of the media. In JPEG format.
        - `width` integer — Width of the media in pixels
        - `height` integer — Height of the media in pixels
        - `seconds` integer — Optional. For video files, this field indicates the duration of the video file in seconds.
        - `autoplay` boolean — Optional. If the media is a GIF, this field indicates whether the GIF should be played automatically when the message is received.
        - `buttons` Button[]
          - `type` 'quick_reply' | 'call' | 'copy' | 'url', required — Type of button
          - `title` string, required — Button text
          - `id` string, required — Button ID
          - `copy_code` string — Button code for copy type
          - `phone_number` string — Button phone number for call type
          - `url` string — Button url for url type
          - `merchant_url` string — Button merchant_url for url type
        - `view_once` boolean — Is view once
      - object
        - `id` string, required — Media ID
        - `link` string — Optional. Link to media
        - `mime_type` string, required — Mime type of media
        - `file_size` integer, required — File size in bytes
        - `file_name` string — Optional. File name
        - `sha256` string — Checksum
        - `timestamp` number — Created at
        - `seconds` integer — Optional. For audio files, this field indicates the duration of the audio file in seconds.
        - `recording_time` number — Time in seconds to simulate recording voice
        - `waveform` string — Voice message waveform
        - `view_once` boolean — Is view once
      - object
        - `id` string, required — Media ID
        - `link` string — Optional. Link to media
        - `mime_type` string, required — Mime type of media
        - `file_size` integer, required — File size in bytes
        - `file_name` string — Optional. File name
        - `sha256` string — Checksum
        - `timestamp` number — Created at
        - `caption` string — Optional. Text caption under the document.
        - `filename` string — Optional. File name
        - `page_count` integer — Optional. Number of pages
        - `preview` string — Optional. Base64 encoded preview of the media. In JPEG format.
        - `buttons` Button[]
          - `type` 'quick_reply' | 'call' | 'copy' | 'url', required — Type of button
          - `title` string, required — Button text
          - `id` string, required — Button ID
          - `copy_code` string — Button code for copy type
          - `phone_number` string — Button phone number for call type
          - `url` string — Button url for url type
          - `merchant_url` string — Button merchant_url for url type
        - `view_once` boolean — Is view once
      - object — If 'body' contains a link, this props can be used to create custom preview link
        - `body` string, required — Message text
        - `url` string — URL of the link
        - `id` string — Media ID
        - `link` string — Optional. Link to media
        - `sha256` string — Checksum
        - `catalog_id` string — Contact ID
        - `newsletter_id` string — Newsletter ID
        - `invite_code` string — Invite code
        - `title` string, required — Title of the link
        - `description` string — Description of the link
        - `canonical` string — Canonical URL of the link (for example, if the link is shortened)
        - `preview` string — Base64 encoded image for mini version link preview. In JPEG format
        - `view_once` boolean — Is view once
      - object
        - `body` string, required — Message text
        - `newsletter_id` string, required — Newsletter ID
        - `newsletter_name` string, required — Newsletter name
        - `expiration` number, required — Expiration timestamp of the invitation
        - `preview` string — Base64 encoded newsletter preview image. In JPEG format
      - object
        - `catalog_id` string — Catalog ID
        - `product_id` string — Product ID
      - object
        - `id` string, required — Media ID
        - `link` string — Optional. Link to media
        - `mime_type` string, required — Mime type of media
        - `file_size` integer, required — File size in bytes
        - `file_name` string — Optional. File name
        - `sha256` string — Checksum
        - `timestamp` number — Created at
        - `animated` boolean — Optional. For stickers, this field indicates whether the sticker is animated.
        - `width` integer — Width of the media in pixels
        - `height` integer — Height of the media in pixels
        - `preview` string — Optional. Base64 encoded preview of the media. In PNG format.
        - `view_once` boolean — Is view once
      - object
        - `latitude` number, double, required — Latitude of location being sent
        - `longitude` number, double, required — Longitude of location being sent
        - `address` string — Address of the location
        - `name` string — Name of the location
        - `url` string — URL for the website where the user downloaded the location information
        - `preview` string — Optional. Base64 encoded preview of the media. In JPEG format.
        - `accuracy` integer — Accuracy of the location in meters
        - `speed` integer — Speed of the location in meters per second
        - `degrees` integer — Degrees clockwise from true north
        - `comment` string — Optional. Comment for the location
        - `view_once` boolean — Is view once
      - object
        - `latitude` number, double, required — Latitude of live location being sent
        - `longitude` number, double, required — Longitude of live location being sent
        - `accuracy` integer — Accuracy of the live location in meters
        - `speed` integer — Speed of the live location in meters per second
        - `degrees` integer — Degrees clockwise from true north
        - `caption` string — Optional. Text caption under the live location
        - `sequence_number` integer — Optional. Sequence number of the live location for event tracking
        - `time_offset` number — Optional. Time offset of the live location
        - `preview` string — Optional. Base64 encoded preview of the media. In JPEG format.
        - `view_once` boolean — Is view once
      - VCard
        - `name` string — Name of contact
        - `vcard` string — Vcard of contact
      - object
        - `list` VCard[]
          - `name` string — Name of contact
          - `vcard` string — Vcard of contact
      - object
        - `header` object — Header of interactive
          - `text` string
        - `body` object, required — Body of interactive
          - `text` string — Text of body
        - `footer` object — Footer of interactive
          - `text` string — Text of footer
        - `action` InteractiveAction, required
          - `list` object
            - `sections` object[], required — Section of the message
              - …
            - `label` string, required — Text for list of message
          - `buttons` Button[] — Buttons
            - `type` 'quick_reply' | 'call' | 'copy' | 'url', required — Type of button
            - `title` string, required — Button text
            - `id` string, required — Button ID
            - `copy_code` string — Button code for copy type
            - `phone_number` string — Button phone number for call type
            - `url` string — Button url for url type
            - `merchant_url` string — Button merchant_url for url type
          - `product` ActionProduct
            - `catalog_id` string — Catalog ID
            - `product_id` string — Product ID
        - `type` 'list' | 'button' | 'product', required — Interactive type
        - `id` string, required — Media ID
        - `link` string — Optional. Link to media
        - `mime_type` string, required — Mime type of media
        - `file_size` integer, required — File size in bytes
        - `file_name` string — Optional. File name
        - `sha256` string — Checksum
        - `timestamp` number — Created at
        - `view_once` boolean — Is view once
      - object
        - `title` string, required — Title of poll
        - `options` string[], required — Options of poll
        - `vote_limit` integer — Number of selectable options in poll (1 - can choose only one option, 0 - any number of options)
        - `end_time` integer — Poll end timestamp
        - `hide_participant_name` boolean — Hide participant names in poll results
        - `allow_add_option` boolean — Allow participants to add options
        - `total` integer — Total count of selected options
        - `results` PollResults[]
          - `id` string, required — option ID
          - `name` string, required — option name
          - `count` integer, required — Number of votes for this option
          - `voters` ContactID[], required — List of users who voted for this option
        - `view_once` boolean — Is view once
      - object
        - `title` string, required — Title of poll
        - `options` string[], required — Options of poll
        - `vote_limit` integer — Number of selectable options in poll (1 - can choose only one option, 0 - any number of options)
        - `end_time` integer — Poll end timestamp
        - `hide_participant_name` boolean — Hide participant names in poll results
        - `allow_add_option` boolean — Allow participants to add options
        - `total` integer — Total count of selected options
        - `correct_answer` string — Correct option for quiz
        - `results` PollResults[]
          - `id` string, required — option ID
          - `name` string, required — option name
          - `count` integer, required — Number of votes for this option
          - `voters` ContactID[], required — List of users who voted for this option
        - `view_once` boolean — Is view once
      - object
        - `body` string — Question text
        - `total` integer — Total count of responses
        - `responses` QuestionAnswer[] — Question responses
          - `participant` string — Contact ID
          - `text` string — Answer text
          - `timestamp` integer — Response timestamp
      - object
        - `type` 'list_reply' | 'buttons_reply' — Type of message content
        - `list_reply` ListReply
          - `id` string — Clicked list ID
          - `title` string — Clicked list title
          - `description` string — Clicked list description
        - `buttons_reply` ButtonsReply
          - `id` string — Clicked button ID
          - `title` string — Clicked button text
    - `votes` string[] — List of poll options
    - `result` QuizResult
      - `participant` string — Contact ID
      - `answers` string[] — Selected quiz answers
      - `timestamp` integer — Response timestamp
    - `comment` string — Comment
    - `event_response` EventResponse
      - `participant` string — Contact ID
      - `response` 'UNKNOWN' | 'GOING' | 'NOT_GOING' — Response
      - `timestamp` integer — Response timestamp
    - `answer` QuestionAnswer
      - `participant` string — Contact ID
      - `text` string — Answer text
      - `timestamp` integer — Response timestamp
  - `context` MessageContext
    - `forwarded` boolean — Is forwarding message
    - `forwarding_score` integer — Count fo forwarding message
    - `mentions` string[] — The numbers of the mentioned users
    - `ad` MessageContextAD — Advertisement message from META-business
      - `advertiser_name` string — Name of the advertiser
      - `media_type` 'image' | 'video' | 'gif' | 'audio' | 'voice' | 'document' | 'sticker' — Media message type
      - `preview` string — Base64 encoded preview. In JPEG format.
      - `preview_url` string — URL of the preview
      - `title` string — Title of the advertisement
      - `body` string — Body of the advertisement
      - `media_url` string — URL of the media
      - `source` object
        - `id` string — ID of the advertisement source
        - `type` string — Type of the advertisement source
        - `url` string — URL of the advertisement source
      - `auto_reply` boolean — True if the advertisement contains an auto-reply
      - `attrib` boolean — True if the advertisement shows the attributions
      - `ctwa` string — Call to action
      - `ref` string — Reference
    - `conversion` MessageContextConversion — Message conversion data
      - `source` string — Source of the conversion
      - `data` string — Conversion data in Base64
      - `delay` integer — Delay in seconds
    - `quoted_id` string — ID of quoted message
    - `quoted_type` 'text' | 'image' | 'video' | 'gif' | 'audio' | 'voice' | 'short' | 'document' | 'documentWithCaption' | 'link_preview' | 'location' | 'live_location' | 'contact' | 'contact_list' | 'sticker' | 'system' | 'call' | 'unknown' | 'action' | 'group_invite' | 'newsletter_invite' | 'admin_invite' | 'product' | 'catalog' | 'interactive' | 'reply' | 'poll' | 'quiz' | 'question' | 'hsm' | 'order' | 'story' | 'event' | 'buttons' | 'list' | 'pin' | 'carousel' | 'album' — Message type
    - `quoted_content` union
      - object
        - `body` string, required — Message text
        - `buttons` Button[]
          - `type` 'quick_reply' | 'call' | 'copy' | 'url', required — Type of button
          - `title` string, required — Button text
          - `id` string, required — Button ID
          - `copy_code` string — Button code for copy type
          - `phone_number` string — Button phone number for call type
          - `url` string — Button url for url type
          - `merchant_url` string — Button merchant_url for url type
        - `sections` object[] — Section of the message
          - `title` string — Title of the section
          - `rows` object[] — Rows of the section
            - `title` string — Title of the row
            - `description` string — Description of the row
            - `id` string — Row ID
          - `product_items` object[] — Product items of the section
            - `catalog_id` string — Catalog ID
            - `product_id` string — Product ID
        - `button` string — Button text for list of message
        - `view_once` boolean — Is view once
      - object
        - `id` string, required — Media ID
        - `link` string — Optional. Link to media
        - `mime_type` string, required — Mime type of media
        - `file_size` integer, required — File size in bytes
        - `file_name` string — Optional. File name
        - `sha256` string — Checksum
        - `timestamp` number — Created at
        - `caption` string — Optional. Text caption under the media.
        - `preview` string — Optional. Base64 encoded preview of the media. In JPEG format.
        - `width` integer — Width of the media in pixels
        - `height` integer — Height of the media in pixels
        - `buttons` Button[]
          - `type` 'quick_reply' | 'call' | 'copy' | 'url', required — Type of button
          - `title` string, required — Button text
          - `id` string, required — Button ID
          - `copy_code` string — Button code for copy type
          - `phone_number` string — Button phone number for call type
          - `url` string — Button url for url type
          - `merchant_url` string — Button merchant_url for url type
        - `view_once` boolean — Is view once
      - object
        - `id` string, required — Media ID
        - `link` string — Optional. Link to media
        - `mime_type` string, required — Mime type of media
        - `file_size` integer, required — File size in bytes
        - `file_name` string — Optional. File name
        - `sha256` string — Checksum
        - `timestamp` number — Created at
        - `caption` string — Optional. Text caption under the media.
        - `preview` string — Optional. Base64 encoded preview of the media. In JPEG format.
        - `width` integer — Width of the media in pixels
        - `height` integer — Height of the media in pixels
        - `seconds` integer — Optional. For video files, this field indicates the duration of the video file in seconds.
        - `autoplay` boolean — Optional. If the media is a GIF, this field indicates whether the GIF should be played automatically when the message is received.
        - `buttons` Button[]
          - `type` 'quick_reply' | 'call' | 'copy' | 'url', required — Type of button
          - `title` string, required — Button text
          - `id` string, required — Button ID
          - `copy_code` string — Button code for copy type
          - `phone_number` string — Button phone number for call type
          - `url` string — Button url for url type
          - `merchant_url` string — Button merchant_url for url type
        - `view_once` boolean — Is view once
      - object
        - `id` string, required — Media ID
        - `link` string — Optional. Link to media
        - `mime_type` string, required — Mime type of media
        - `file_size` integer, required — File size in bytes
        - `file_name` string — Optional. File name
        - `sha256` string — Checksum
        - `timestamp` number — Created at
        - `seconds` integer — Optional. For audio files, this field indicates the duration of the audio file in seconds.
        - `recording_time` number — Time in seconds to simulate recording voice
        - `waveform` string — Voice message waveform
        - `view_once` boolean — Is view once
      - object
        - `id` string, required — Media ID
        - `link` string — Optional. Link to media
        - `mime_type` string, required — Mime type of media
        - `file_size` integer, required — File size in bytes
        - `file_name` string — Optional. File name
        - `sha256` string — Checksum
        - `timestamp` number — Created at
        - `caption` string — Optional. Text caption under the document.
        - `filename` string — Optional. File name
        - `page_count` integer — Optional. Number of pages
        - `preview` string — Optional. Base64 encoded preview of the media. In JPEG format.
        - `buttons` Button[]
          - `type` 'quick_reply' | 'call' | 'copy' | 'url', required — Type of button
          - `title` string, required — Button text
          - `id` string, required — Button ID
          - `copy_code` string — Button code for copy type
          - `phone_number` string — Button phone number for call type
          - `url` string — Button url for url type
          - `merchant_url` string — Button merchant_url for url type
        - `view_once` boolean — Is view once
      - object — If 'body' contains a link, this props can be used to create custom preview link
        - `body` string, required — Message text
        - `url` string — URL of the link
        - `id` string — Media ID
        - `link` string — Optional. Link to media
        - `sha256` string — Checksum
        - `catalog_id` string — Contact ID
        - `newsletter_id` string — Newsletter ID
        - `invite_code` string — Invite code
        - `title` string, required — Title of the link
        - `description` string — Description of the link
        - `canonical` string — Canonical URL of the link (for example, if the link is shortened)
        - `preview` string — Base64 encoded image for mini version link preview. In JPEG format
        - `view_once` boolean — Is view once
      - object
        - `body` string, required — Message text
        - `newsletter_id` string, required — Newsletter ID
        - `newsletter_name` string, required — Newsletter name
        - `expiration` number, required — Expiration timestamp of the invitation
        - `preview` string — Base64 encoded newsletter preview image. In JPEG format
      - object
        - `catalog_id` string — Catalog ID
        - `product_id` string — Product ID
      - object
        - `id` string, required — Media ID
        - `link` string — Optional. Link to media
        - `mime_type` string, required — Mime type of media
        - `file_size` integer, required — File size in bytes
        - `file_name` string — Optional. File name
        - `sha256` string — Checksum
        - `timestamp` number — Created at
        - `animated` boolean — Optional. For stickers, this field indicates whether the sticker is animated.
        - `width` integer — Width of the media in pixels
        - `height` integer — Height of the media in pixels
        - `preview` string — Optional. Base64 encoded preview of the media. In PNG format.
        - `view_once` boolean — Is view once
      - object
        - `latitude` number, double, required — Latitude of location being sent
        - `longitude` number, double, required — Longitude of location being sent
        - `address` string — Address of the location
        - `name` string — Name of the location
        - `url` string — URL for the website where the user downloaded the location information
        - `preview` string — Optional. Base64 encoded preview of the media. In JPEG format.
        - `accuracy` integer — Accuracy of the location in meters
        - `speed` integer — Speed of the location in meters per second
        - `degrees` integer — Degrees clockwise from true north
        - `comment` string — Optional. Comment for the location
        - `view_once` boolean — Is view once
      - object
        - `latitude` number, double, required — Latitude of live location being sent
        - `longitude` number, double, required — Longitude of live location being sent
        - `accuracy` integer — Accuracy of the live location in meters
        - `speed` integer — Speed of the live location in meters per second
        - `degrees` integer — Degrees clockwise from true north
        - `caption` string — Optional. Text caption under the live location
        - `sequence_number` integer — Optional. Sequence number of the live location for event tracking
        - `time_offset` number — Optional. Time offset of the live location
        - `preview` string — Optional. Base64 encoded preview of the media. In JPEG format.
        - `view_once` boolean — Is view once
      - VCard
        - `name` string — Name of contact
        - `vcard` string — Vcard of contact
      - object
        - `list` VCard[]
          - `name` string — Name of contact
          - `vcard` string — Vcard of contact
      - object
        - `header` object — Header of interactive
          - `text` string
        - `body` object, required — Body of interactive
          - `text` string — Text of body
        - `footer` object — Footer of interactive
          - `text` string — Text of footer
        - `action` InteractiveAction, required
          - `list` object
            - `sections` object[], required — Section of the message
              - …
            - `label` string, required — Text for list of message
          - `buttons` Button[] — Buttons
            - `type` 'quick_reply' | 'call' | 'copy' | 'url', required — Type of button
            - `title` string, required — Button text
            - `id` string, required — Button ID
            - `copy_code` string — Button code for copy type
            - `phone_number` string — Button phone number for call type
            - `url` string — Button url for url type
            - `merchant_url` string — Button merchant_url for url type
          - `product` ActionProduct
            - `catalog_id` string — Catalog ID
            - `product_id` string — Product ID
        - `type` 'list' | 'button' | 'product', required — Interactive type
        - `id` string, required — Media ID
        - `link` string — Optional. Link to media
        - `mime_type` string, required — Mime type of media
        - `file_size` integer, required — File size in bytes
        - `file_name` string — Optional. File name
        - `sha256` string — Checksum
        - `timestamp` number — Created at
        - `view_once` boolean — Is view once
      - object
        - `title` string, required — Title of poll
        - `options` string[], required — Options of poll
        - `vote_limit` integer — Number of selectable options in poll (1 - can choose only one option, 0 - any number of options)
        - `end_time` integer — Poll end timestamp
        - `hide_participant_name` boolean — Hide participant names in poll results
        - `allow_add_option` boolean — Allow participants to add options
        - `total` integer — Total count of selected options
        - `results` PollResults[]
          - `id` string, required — option ID
          - `name` string, required — option name
          - `count` integer, required — Number of votes for this option
          - `voters` ContactID[], required — List of users who voted for this option
        - `view_once` boolean — Is view once
      - object
        - `title` string, required — Title of poll
        - `options` string[], required — Options of poll
        - `vote_limit` integer — Number of selectable options in poll (1 - can choose only one option, 0 - any number of options)
        - `end_time` integer — Poll end timestamp
        - `hide_participant_name` boolean — Hide participant names in poll results
        - `allow_add_option` boolean — Allow participants to add options
        - `total` integer — Total count of selected options
        - `correct_answer` string — Correct option for quiz
        - `results` PollResults[]
          - `id` string, required — option ID
          - `name` string, required — option name
          - `count` integer, required — Number of votes for this option
          - `voters` ContactID[], required — List of users who voted for this option
        - `view_once` boolean — Is view once
      - object
        - `body` string — Question text
        - `total` integer — Total count of responses
        - `responses` QuestionAnswer[] — Question responses
          - `participant` string — Contact ID
          - `text` string — Answer text
          - `timestamp` integer — Response timestamp
      - object
        - `type` 'list_reply' | 'buttons_reply' — Type of message content
        - `list_reply` ListReply
          - `id` string — Clicked list ID
          - `title` string — Clicked list title
          - `description` string — Clicked list description
        - `buttons_reply` ButtonsReply
          - `id` string — Clicked button ID
          - `title` string — Clicked button text
    - `quoted_author` string — Whatsapp ID of quoted message author
    - `ephemeral` integer — Ephemeral message duration
  - `event` MessageContentEvent
    - `is_canceled` boolean — True if event is canceled
    - `name` string — Event name
    - `description` string — Event description
    - `join_link` string — Join link
    - `start` integer — Chat timestamp
    - `responses` EventResponse[] — Event responses
      - `participant` string — Contact ID
      - `response` 'UNKNOWN' | 'GOING' | 'NOT_GOING' — Response
      - `timestamp` integer — Response timestamp
  - `list` MessageContentList
    - `header` string
    - `body` string
    - `label` string
    - `footer` string
    - `sections` object[]
      - `title` string
      - `rows` object[]
        - `id` string
        - `title` string
        - `description` string
  - `buttons` MessageContentButtons
    - `text` string
    - `footer` string
    - `buttons` object[]
      - `id` string
      - `text` string
      - `type` 'UNKNOWN' | 'RESPONSE' | 'NATIVE_FLOW'
  - `starred` boolean — Is message starred
  - `reactions` MessageReaction[] — Reactions for message
    - `id` string — Reaction ID
    - `emoji` string, required — Reaction text
    - `group_key` string — Reaction group key
    - `t` number — Reaction timestamp
    - `unread` boolean — Is reaction unread
    - `count` number — Reaction count
  - `labels` Label[] — Labels associated with message
    - `id` string, required — Label ID
    - `name` string, required — Label name
    - `color` 'salmon' | 'lightskyblue' | 'gold' | 'plum' | 'silver' | 'mediumturquoise' | 'violet' | 'goldenrod' | 'cornflowerblue' | 'greenyellow' | 'cyan' | 'lightpink' | 'mediumaquamarine' | 'orangered' | 'deepskyblue' | 'limegreen' | 'darkorange' | 'lightsteelblue' | 'mediumpurple' | 'rebeccapurple', required — Label color
    - `count` integer — Number of objects associated with this label

## Other responses

- `400` — Wrong request parameters
- `404` — Specified message not found
- `500` — Internal Error

---

[API](https://skmtc.net/whapi/apis/whatsapp-api.md) · [All operations](https://skmtc.net/whapi/apis/whatsapp-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/whapi/whatsapp-api/revisions/40ab05abffdb/schema)
