diff --git a/postmark.cabal b/postmark.cabal
--- a/postmark.cabal
+++ b/postmark.cabal
@@ -1,5 +1,5 @@
 Name:               postmark
-Version:            0.2.1
+Version:            0.2.2
 License:            BSD3
 License-File:       LICENSE
 Author:             Mark Hibberd <mark@hibberd.id.au>
diff --git a/src/Network/Api/Postmark/Data.hs b/src/Network/Api/Postmark/Data.hs
--- a/src/Network/Api/Postmark/Data.hs
+++ b/src/Network/Api/Postmark/Data.hs
@@ -32,9 +32,18 @@
   , emailText :: Maybe Text
   , emailReplyTo :: Text
   , emailHeaders :: Map Text Text
+  , emailTrackOpens :: Maybe Bool
+  , emailTrackLinks :: Maybe TrackLinks
   , emailAttachments :: [Attachment]
   }
 
+data TrackLinks
+  = None
+  | HtmlAndText
+  | HtmlOnly
+  | TextOnly
+  deriving (Show)
+
 data Attachment = Attachment {
     attachmentName :: Text
   , attachmentContent :: Text
@@ -52,6 +61,8 @@
   , emailTag' :: Maybe Text
   , emailReplyTo' :: Text
   , emailHeaders' :: Map Text Text
+  , emailTrackOpens' :: Maybe Bool
+  , emailTrackLinks' :: Maybe TrackLinks
   , emailAttachments' :: [Attachment]
   }
 
@@ -67,6 +78,8 @@
   , emailText = Nothing
   , emailReplyTo = ""
   , emailHeaders = M.empty
+  , emailTrackOpens = Nothing
+  , emailTrackLinks = Nothing
   , emailAttachments = []
   }
 
@@ -82,6 +95,8 @@
   , emailTag' = Nothing
   , emailReplyTo' = ""
   , emailHeaders' = M.empty
+  , emailTrackOpens' = Nothing
+  , emailTrackLinks' = Nothing
   , emailAttachments' = []
   }
 
@@ -98,9 +113,27 @@
     , oljson "Cc" (emailCc v) (T.intercalate ",")
     , oljson "Bcc" (emailBcc v) (T.intercalate ",")
     , omjson "Headers" (emailHeaders v)
+    , ojson "TrackOpens" (emailTrackOpens v)
+    , ojson "TrackLinks" (emailTrackLinks v)
     , oljson "Attachments" (emailAttachments v) id
     ])
 
+{- The reason we are being explicit here is because the serialized constructors
+   for TrackLinks match the possible values in the Postmark API.
+   We don't want to send values wholesale if new constructors come along.
+-}
+instance ToJSON TrackLinks where
+  toJSON v =
+    toJSON $ case v of
+      None ->
+        "None" :: Text
+      HtmlAndText ->
+        "HtmlAndText"
+      HtmlOnly ->
+        "HtmlOnly"
+      TextOnly ->
+        "TextOnly"
+
 instance ToJSON Attachment where
   toJSON v = object [
       "Name" .= attachmentName v
@@ -120,6 +153,8 @@
     , oljson "Cc" (emailCc' v) (T.intercalate ",")
     , oljson "Bcc" (emailBcc' v) (T.intercalate ",")
     , omjson "Headers" (emailHeaders' v)
+    , ojson "TrackOpens" (emailTrackOpens' v)
+    , ojson "TrackLinks" (emailTrackLinks' v)
     , oljson "Attachments" (emailAttachments' v) id
     ])
 -- * Response types
