:doc:`ChimeSDKMessaging <../../chime-sdk-messaging>` / Client / get_channel_message_status

**************************
get_channel_message_status
**************************



.. py:method:: ChimeSDKMessaging.Client.get_channel_message_status(**kwargs)

  

  Gets message status for a specified ``messageId``. Use this API to determine the intermediate status of messages going through channel flow processing. The API provides an alternative to retrieving message status if the event was not received because a client wasn't connected to a websocket.

   

  Messages can have any one of these statuses.

    SENT  

  Message processed successfully

    PENDING  

  Ongoing processing

    FAILED  

  Processing failed

    DENIED  

  Message denied by the processor

     

  .. note::

    

    
    * This API does not return statuses for denied messages, because we don't store them once the processor denies them.
     
    * Only the message sender can invoke this API.
     
    * The ``x-amz-chime-bearer`` request header is mandatory. Use the ARN of the ``AppInstanceUser`` or ``AppInstanceBot`` that makes the API call as the value in the header.
    

    

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/chime-sdk-messaging-2021-05-15/GetChannelMessageStatus>`_  


  **Request Syntax**
  ::

    response = client.get_channel_message_status(
        ChannelArn='string',
        MessageId='string',
        ChimeBearer='string',
        SubChannelId='string'
    )
    
  :type ChannelArn: string
  :param ChannelArn: **[REQUIRED]** 

    The ARN of the channel

    

  
  :type MessageId: string
  :param MessageId: **[REQUIRED]** 

    The ID of the message.

    

  
  :type ChimeBearer: string
  :param ChimeBearer: **[REQUIRED]** 

    The ``AppInstanceUserArn`` of the user making the API call.

    

  
  :type SubChannelId: string
  :param SubChannelId: 

    The ID of the SubChannel in the request.

     

    .. note::

      

      Only required when getting message status in a SubChannel that the user belongs to.

      

    

  
  
  :rtype: dict
  :returns: 
    
    **Response Syntax**

    
    ::

      {
          'Status': {
              'Value': 'SENT'|'PENDING'|'FAILED'|'DENIED',
              'Detail': 'string'
          }
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **Status** *(dict) --* 

        The message status and details.

        
        

        - **Value** *(string) --* 

          The message status value.

          
        

        - **Detail** *(string) --* 

          Contains more details about the message status.

          
    
  
  **Exceptions**
  
  *   :py:class:`ChimeSDKMessaging.Client.exceptions.BadRequestException`

  
  *   :py:class:`ChimeSDKMessaging.Client.exceptions.ForbiddenException`

  
  *   :py:class:`ChimeSDKMessaging.Client.exceptions.UnauthorizedClientException`

  
  *   :py:class:`ChimeSDKMessaging.Client.exceptions.ThrottledClientException`

  
  *   :py:class:`ChimeSDKMessaging.Client.exceptions.ServiceUnavailableException`

  
  *   :py:class:`ChimeSDKMessaging.Client.exceptions.ServiceFailureException`

  