diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Changelog
 
+### 0.5.1.0
+
+* Add `Functor (ApiResponse e)` instance
+
 #### 0.5.0.4
 
 * Log some extra information when decoding JSON fails.
diff --git a/rest-client.cabal b/rest-client.cabal
--- a/rest-client.cabal
+++ b/rest-client.cabal
@@ -1,5 +1,5 @@
 name:                rest-client
-version:             0.5.0.4
+version:             0.5.1.0
 description:         Utility library for use in generated API client libraries.
 synopsis:            Utility library for use in generated API client libraries.
 maintainer:          code@silk.co
diff --git a/src/Rest/Client/Base.hs b/src/Rest/Client/Base.hs
--- a/src/Rest/Client/Base.hs
+++ b/src/Rest/Client/Base.hs
@@ -1,6 +1,7 @@
 {-# OPTIONS -fno-warn-orphans -fno-warn-deprecations #-}
 {-# LANGUAGE
     CPP
+  , DeriveFunctor
   , FlexibleContexts
   , FlexibleInstances
   , GeneralizedNewtypeDeriving
@@ -160,7 +161,7 @@
     , httpVersion     :: (Int, Int)
     , responseHeaders :: [(CI ByteString , ByteString)]
     , responseBody    :: Either (Reason e) a
-    } deriving Show
+    } deriving (Functor, Show)
 
 responseToMaybe :: ApiResponse e a -> Maybe a
 responseToMaybe = either (const Nothing) Just . responseBody
diff --git a/src/Rest/Client/Internal.hs b/src/Rest/Client/Internal.hs
--- a/src/Rest/Client/Internal.hs
+++ b/src/Rest/Client/Internal.hs
@@ -36,7 +36,6 @@
 import Data.Aeson.Utils (FromJSON, ToJSON, eitherDecodeV, encode)
 import Data.Default (def)
 import Data.List
-import Data.Maybe
 import Data.Monoid
 import Data.String
 import Data.String.ToString
