diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,8 @@
+## Req 3.5.0
+
+* Made `Req` an instance of `MonadUnliftIO`. [Issue
+  100](https://github.com/mrkkrp/req/issues/100).
+
 ## Req 3.4.0
 
 * Requests using `DELETE` method can now have a body. [Issue
diff --git a/Network/HTTP/Req.hs b/Network/HTTP/Req.hs
--- a/Network/HTTP/Req.hs
+++ b/Network/HTTP/Req.hs
@@ -237,6 +237,7 @@
 import Control.Monad.Base
 import Control.Monad.Catch (Handler (..))
 import Control.Monad.IO.Class
+import Control.Monad.IO.Unlift
 import Control.Monad.Reader
 import Control.Monad.Trans.Control
 import Control.Retry
@@ -719,7 +720,8 @@
     ( Functor,
       Applicative,
       Monad,
-      MonadIO
+      MonadIO,
+      MonadUnliftIO
     )
 
 instance MonadBase IO Req where
diff --git a/req.cabal b/req.cabal
--- a/req.cabal
+++ b/req.cabal
@@ -1,6 +1,6 @@
 cabal-version:   1.18
 name:            req
-version:         3.4.0
+version:         3.5.0
 license:         BSD3
 license-file:    LICENSE.md
 maintainer:      Mark Karpov <markkarpov92@gmail.com>
@@ -57,7 +57,8 @@
         text >=0.2 && <1.3,
         time >=1.2 && <1.10,
         transformers >=0.4 && <0.6,
-        transformers-base -any
+        transformers-base -any,
+        unliftio-core >=0.1.1 && <0.3
 
     if flag(dev)
         ghc-options: -O0 -Wall -Werror
@@ -121,7 +122,7 @@
         mtl >=2.0 && <3.0,
         req -any,
         text >=0.2 && <1.3,
-        unordered-containers >=0.2.5 && <0.2.12
+        unordered-containers >=0.2.5 && <0.2.13
 
     if flag(dev)
         ghc-options: -O0 -Wall -Werror
