diff --git a/briar_wrapper/models/private_chat.py b/briar_wrapper/models/private_chat.py
index d9bf4fe47a0179f0857faab0b41ee25b27782554..5790d9ca07a5b218f1eb49d24d5a44b329afde43 100644
--- a/briar_wrapper/models/private_chat.py
+++ b/briar_wrapper/models/private_chat.py
@@ -50,3 +50,16 @@ class PrivateChat(Model):
         url = urljoin(BASE_HTTP_URL,
                       self._API_ENDPOINT + str(self._contact_id))
         requests.post(url, headers=self._headers, json={"text": message})
+
+    def mark_read(self, messageId):
+        # pylint: disable=line-too-long
+        """
+        Marks message as read
+
+        [Upstream documentation](https://code.briarproject.org/briar/briar/blob/master/briar-headless/README.md#marking-messages-as-read)
+
+        .. versionadded:: 0.0.4
+        """
+        url = urljoin(BASE_HTTP_URL,
+                      self._API_ENDPOINT + "read/" + str(self._contact_id))
+        requests.post(url, headers=self._headers, json={"messageId": messageId})