diff --git a/mandrill.cabal b/mandrill.cabal
--- a/mandrill.cabal
+++ b/mandrill.cabal
@@ -1,5 +1,5 @@
 name:                mandrill
-version:             0.5.2.1
+version:             0.5.2.2
 synopsis:            Library for interfacing with the Mandrill JSON API
 description:         Pure Haskell client for the Mandrill JSON API
 license:             MIT
@@ -26,6 +26,7 @@
     Network.API.Mandrill.Messages
     Network.API.Mandrill.Messages.Types
     Network.API.Mandrill.Inbound
+    Network.API.Mandrill.Senders
   other-modules:
     Network.API.Mandrill.Utils
     Network.API.Mandrill.HTTP
@@ -42,7 +43,7 @@
     , aeson >= 0.7.0.3 && < 0.12.0.0
     , lens >= 4.0
     , blaze-html >= 0.5.0.0
-    , QuickCheck >= 2.6 && < 2.9
+    , QuickCheck >= 2.6 && < 3.0
     , mtl < 3.0
     , time
     , email-validate >= 1.0.0
diff --git a/src/Network/API/Mandrill/Senders.hs b/src/Network/API/Mandrill/Senders.hs
new file mode 100644
--- /dev/null
+++ b/src/Network/API/Mandrill/Senders.hs
@@ -0,0 +1,45 @@
+{-# LANGUAGE TemplateHaskell #-}
+module Network.API.Mandrill.Senders where
+import           Control.Lens
+import           Data.Aeson                    (FromJSON, ToJSON, parseJSON,
+                                                toJSON)
+import           Data.Aeson.TH                 (defaultOptions, deriveJSON)
+import           Data.Aeson.Types              (Value (..), fieldLabelModifier)
+import           Data.Text                     (Text)
+import           Data.Text.Encoding            (decodeUtf8, encodeUtf8)
+import           Network.API.Mandrill.HTTP     (toMandrillResponse)
+import           Network.API.Mandrill.Settings
+import           Network.API.Mandrill.Types
+import           Network.HTTP.Client           (Manager)
+import qualified Text.Email.Validate           as TEV
+
+data VerifyDomainRq =
+  VerifyDomainRq
+  { _vdrq_key     :: MandrillKey
+  , _vdrq_domain  :: Text
+  , _vdrq_mailbox :: Text
+  } deriving Show
+
+makeLenses ''VerifyDomainRq
+deriveJSON defaultOptions { fieldLabelModifier = drop 6 } ''VerifyDomainRq
+
+data VerifyDomainResponse =
+  VerifyDomainResponse
+  { _vdres_status :: Text
+  , _vdres_domain :: Text
+  , _vdres_email  :: MandrillEmail
+  } deriving Show
+
+makeLenses ''VerifyDomainResponse
+deriveJSON defaultOptions { fieldLabelModifier = drop 7 } ''VerifyDomainResponse
+
+
+verifyDomain :: MandrillKey
+                -- ^ The API key
+                -> TEV.EmailAddress
+                -- ^ Email address to use for verification
+                -> Maybe Manager
+                -> IO (MandrillResponse VerifyDomainResponse)
+verifyDomain k email =
+  toMandrillResponse VerifyDomain
+  (VerifyDomainRq k  (decodeUtf8 $ TEV.domainPart email) (decodeUtf8 $ TEV.localPart email))
diff --git a/src/Network/API/Mandrill/Settings.hs b/src/Network/API/Mandrill/Settings.hs
--- a/src/Network/API/Mandrill/Settings.hs
+++ b/src/Network/API/Mandrill/Settings.hs
@@ -19,6 +19,8 @@
   -- Inbound API
   | RoutesAdd
   | DomainsAdd
+  -- Senders API
+  | VerifyDomain
 
   deriving Show
 
@@ -35,3 +37,4 @@
   toUrl MessagesSearch       = "messages/search.json"
   toUrl DomainsAdd           = "inbound/add-domain.json"
   toUrl RoutesAdd            = "inbound/add-route.json"
+  toUrl VerifyDomain         = "senders/verify-domain.json"
diff --git a/src/Network/API/Mandrill/Types.hs b/src/Network/API/Mandrill/Types.hs
--- a/src/Network/API/Mandrill/Types.hs
+++ b/src/Network/API/Mandrill/Types.hs
@@ -1,6 +1,6 @@
 {-# LANGUAGE CPP                 #-}
-{-# LANGUAGE DeriveFunctor       #-}
 {-# LANGUAGE DeriveFoldable      #-}
+{-# LANGUAGE DeriveFunctor       #-}
 {-# LANGUAGE DeriveTraversable   #-}
 {-# LANGUAGE OverloadedStrings   #-}
 {-# LANGUAGE RankNTypes          #-}
@@ -9,6 +9,7 @@
 module Network.API.Mandrill.Types where
 
 import           Control.Applicative
+import           Control.Monad                 (mzero)
 import           Data.Char
 import           Data.Maybe
 import           Data.Time
@@ -37,7 +38,7 @@
 import qualified Data.Text.Lazy                as TL
 import qualified Text.Blaze.Html               as Blaze
 import qualified Text.Blaze.Html.Renderer.Text as Blaze
-
+import qualified Text.Email.Validate           as TEV
 
 timeParse :: ParseTime t => TimeLocale -> String -> String -> Maybe t
 #if MIN_VERSION_time(1,5,0)
diff --git a/test/Main.hs b/test/Main.hs
--- a/test/Main.hs
+++ b/test/Main.hs
@@ -44,5 +44,6 @@
          , testCase "messages/send.json API response parsing" testMessagesResponseRejected
          , testCase "inbound/add-route.json API response parsing" testRouteAdd
          , testCase "inbound/add-domain.json API response parsing" testDomainAdd
+         , testCase "senders/verify-domain.json API response parsing" testVerifyDomain
          ]
      ]
diff --git a/test/RawData.hs b/test/RawData.hs
--- a/test/RawData.hs
+++ b/test/RawData.hs
@@ -228,3 +228,11 @@
     "url": "http://example.com/webhook-url"
 }
 |]
+
+domainVerify = [r|
+{
+    "status": "example status",
+    "domain": "example domain",
+    "email": "email@domain.com"
+}
+|]
diff --git a/test/Tests.hs b/test/Tests.hs
--- a/test/Tests.hs
+++ b/test/Tests.hs
@@ -6,6 +6,7 @@
 import           Data.Either
 import           Network.API.Mandrill.Inbound
 import           Network.API.Mandrill.Messages.Types
+import           Network.API.Mandrill.Senders
 import           Network.API.Mandrill.Types
 import           Network.API.Mandrill.Users.Types
 import           RawData
@@ -67,3 +68,11 @@
   where
     parsePayload :: Either String RouteAddResponse
     parsePayload = eitherDecodeStrict . C8.pack $ routeAdd
+
+testVerifyDomain :: Assertion
+testVerifyDomain =
+  assertBool ("senders/verify-domain.json" ++ show parsePayload)
+             (isRight parsePayload)
+  where
+    parsePayload ::  Either String VerifyDomainResponse
+    parsePayload = eitherDecodeStrict . C8.pack $ domainVerify
