diff --git a/api-builder.cabal b/api-builder.cabal
--- a/api-builder.cabal
+++ b/api-builder.cabal
@@ -1,5 +1,5 @@
 name: api-builder
-version: 0.9.1.0
+version: 0.10.0.0
 synopsis: Library for easily building REST API wrappers in Haskell
 license: BSD3
 license-file: LICENSE
@@ -18,7 +18,7 @@
 source-repository this
   type: git
   location: git://github.com/intolerable/api-builder.git
-  tag: v0.9.1.0
+  tag: v0.10.0.0
 
 library
   exposed-modules:
@@ -34,13 +34,12 @@
     Network.API.Builder.Send.Multipart
   build-depends:
     base >= 4.6 && < 4.9,
-    aeson >= 0.7 && < 0.9,
-    attoparsec >= 0.11 && < 0.14,
+    aeson >= 0.9 && < 0.10,
     bifunctors >= 4.0 && < 6.0,
     bytestring == 0.10.*,
     HTTP == 4000.*,
-    http-client == 0.4.7.* || (>= 0.4.11 && < 0.4.17),
-    http-conduit == 2.*,
+    http-client >= 0.4.11 && < 0.4.19,
+    http-client-tls >= 0.2 && < 0.2.3,
     http-types == 0.8.*,
     text == 1.*,
     transformers >= 0.4 && < 0.5
diff --git a/src/Network/API/Builder/API.hs b/src/Network/API/Builder/API.hs
--- a/src/Network/API/Builder/API.hs
+++ b/src/Network/API/Builder/API.hs
@@ -36,7 +36,8 @@
 import Control.Monad.Trans.State
 import Data.ByteString.Lazy (ByteString)
 import Data.Text (Text)
-import Network.HTTP.Conduit
+import Network.HTTP.Client
+import Network.HTTP.Client.TLS
 
 -- | Main API type. @s@ is the API's internal state, @e@ is the API's custom error type,
 --   and @a@ is the result when the API runs. Based on the @APIT@ transformer.
@@ -78,7 +79,7 @@
        -> APIT s e m a -- ^ the actual @API@ to run
        -> m (Either (APIError e) a) -- ^ IO action that returns either an error or the result
 execAPI b s api = do
-  m <- liftIO $ newManager conduitManagerSettings
+  m <- liftIO $ newManager tlsManagerSettings
   (res, _, _) <- runAPI b m s api
   liftIO $ closeManager m
   return res
diff --git a/src/Network/API/Builder/Builder.hs b/src/Network/API/Builder/Builder.hs
--- a/src/Network/API/Builder/Builder.hs
+++ b/src/Network/API/Builder/Builder.hs
@@ -5,7 +5,7 @@
 import Network.API.Builder.Routes
 
 import Data.Text (Text)
-import Network.HTTP.Conduit (Request)
+import Network.HTTP.Client (Request)
 import qualified Data.Text as T
 
 -- | Builder type for the API. Keeps track of the API's name and base URL, and how
diff --git a/src/Network/API/Builder/Error.hs b/src/Network/API/Builder/Error.hs
--- a/src/Network/API/Builder/Error.hs
+++ b/src/Network/API/Builder/Error.hs
@@ -2,7 +2,8 @@
   ( APIError(..) ) where
 
 import Data.Monoid
-import Network.HTTP.Conduit (HttpException)
+import Network.HTTP.Client (HttpException)
+import Prelude
 
 -- | Error type for the @API@, where @a@ is the type that should be returned when
 --   something goes wrong on the other end - i.e. any error that isn't directly related
diff --git a/src/Network/API/Builder/Receive.hs b/src/Network/API/Builder/Receive.hs
--- a/src/Network/API/Builder/Receive.hs
+++ b/src/Network/API/Builder/Receive.hs
@@ -3,12 +3,10 @@
 import Network.API.Builder.Error
 
 import Control.Applicative
-import Data.Aeson hiding (decode, eitherDecode)
-import Data.Aeson.Parser
-import Data.Aeson.Types (parseEither)
-import Data.Attoparsec.Lazy (parse, eitherResult)
+import Data.Aeson
 import Data.ByteString.Lazy (ByteString)
-import Network.HTTP.Conduit
+import Network.HTTP.Client
+import Prelude
 
 class Receivable r where
   receive :: ErrorReceivable e => Response ByteString -> Either (APIError e) r
@@ -60,9 +58,6 @@
   case eitherDecode (responseBody resp) of
     Right x -> Just x
     Left _ -> Nothing
-
-eitherDecode :: FromJSON a => ByteString -> Either String a
-eitherDecode s = eitherResult (parse value s) >>= parseEither parseJSON
 
 newtype JSONResponse a = JSONResponse { unwrapJSON :: a }
   deriving (Show, Read, Eq, Ord)
diff --git a/src/Network/API/Builder/Send.hs b/src/Network/API/Builder/Send.hs
--- a/src/Network/API/Builder/Send.hs
+++ b/src/Network/API/Builder/Send.hs
@@ -5,7 +5,7 @@
 
 import Data.Aeson
 import Data.ByteString.Lazy (ByteString)
-import Network.HTTP.Conduit
+import Network.HTTP.Client
 import qualified Data.ByteString.Char8 as ByteString
 import qualified Data.Text as Text
 
diff --git a/src/Network/API/Builder/Send/Multipart.hs b/src/Network/API/Builder/Send/Multipart.hs
--- a/src/Network/API/Builder/Send/Multipart.hs
+++ b/src/Network/API/Builder/Send/Multipart.hs
@@ -9,7 +9,7 @@
 import Control.Monad
 import Control.Monad.IO.Class
 import Network.HTTP.Client.MultipartFormData
-import Network.HTTP.Conduit (Request)
+import Network.HTTP.Client (Request)
 
 -- | A type for multipart forms, which uses 'Part's from 'Network.HTTP.Client.MultipartFormData'.
 --   Construct it and send it with 'sendMultipart' (not 'send').
