diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,14 @@
 
+50200.15.0
+==========
+
+API changes:
+ * The `Post` data type got a new `postMetadata` field of type
+   `PostMetadata` which carries the `metadata` JSON data that the server
+   provides in API responses. As of this implementation, only the file
+   list (`files`) and reactions (`reactions`) are parsed from the post
+   metdata.
+
 50200.14.0
 ==========
 
diff --git a/mattermost-api.cabal b/mattermost-api.cabal
--- a/mattermost-api.cabal
+++ b/mattermost-api.cabal
@@ -1,5 +1,5 @@
 name:                mattermost-api
-version:             50200.14.0
+version:             50200.15.0
 synopsis:            Client API for Mattermost chat system
 
 description:         Client API for Mattermost chat system.  Mattermost is a
diff --git a/src/Network/Mattermost/Types.hs b/src/Network/Mattermost/Types.hs
--- a/src/Network/Mattermost/Types.hs
+++ b/src/Network/Mattermost/Types.hs
@@ -808,6 +808,7 @@
   , postChannelId     :: ChannelId
   , postHasReactions  :: Bool
   , postPinned        :: Maybe Bool
+  , postMetadata      :: PostMetadata
   } deriving (Read, Show, Eq)
 
 instance HasId Post PostId where
@@ -832,6 +833,7 @@
     postChannelId     <- v .: "channel_id"
     postHasReactions  <- v .:? "has_reactions" .!= False
     postPinned        <- v .:? "is_pinned"
+    postMetadata      <- (v .: "metadata") <|> (return $ PostMetadata mempty mempty)
     return Post { .. }
 
 instance A.ToJSON Post where
@@ -852,7 +854,25 @@
     , "channel_id"      .= postChannelId
     , "has_reactions"   .= postHasReactions
     , "is_pinned"       .= postPinned
+    , "metadata"        .= postMetadata
     ]
+
+data PostMetadata =
+    PostMetadata { postMetadataFiles :: Seq FileInfo
+                 , postMetadataReactions :: Seq Reaction
+                 }
+                 deriving (Read, Show, Eq)
+
+instance A.FromJSON PostMetadata where
+    parseJSON = A.withObject "PostMetadata" $ \o -> do
+        PostMetadata <$> (o A..: "files" <|> return mempty)
+                     <*> (o A..: "reactions" <|> return mempty)
+
+instance A.ToJSON PostMetadata where
+    toJSON pm =
+        A.object [ "files" A..= postMetadataFiles pm
+                 , "reactions" A..= postMetadataReactions pm
+                 ]
 
 data PendingPost
   = PendingPost
