diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,10 @@
+# 0.3.0
+
+- Added pagination to get list members and helper to get all list
+  members (7593fb3).
+
+- Fixed list members response (8f47755).
+
 # 0.2.1
 
 - Tested with GHC 8.0.2.
diff --git a/mailchimp.cabal b/mailchimp.cabal
--- a/mailchimp.cabal
+++ b/mailchimp.cabal
@@ -1,5 +1,5 @@
 name: mailchimp
-version: 0.2.1
+version: 0.3.0
 
 build-type: Simple
 cabal-version: >= 1.21
@@ -42,7 +42,7 @@
   other-modules:
       Paths_mailchimp
   build-depends:
-      aeson >= 1.1 && < 1.2
+      aeson >= 1.0 && < 1.2
     , attoparsec >= 0.13 && < 0.14
     , base >= 4.8 && < 4.10
     , bytestring
diff --git a/src/Web/MailChimp/List/Member.hs b/src/Web/MailChimp/List/Member.hs
--- a/src/Web/MailChimp/List/Member.hs
+++ b/src/Web/MailChimp/List/Member.hs
@@ -22,6 +22,8 @@
   , ListMemberRequest (..)
   , makeListMemberRequest
   , ListMemberResponse (..)
+  , ListMembersResponse (..)
+  , getAllListMembers
   , ListMemberId
   , ListMemberStatus (..)
   )
@@ -64,7 +66,8 @@
       :> Post '[JSON] ListMemberResponse
 
   :<|>
-    Get '[JSON] [ListMemberResponse]
+    QueryParam "offset" Int
+      :> Get '[JSON] ListMembersResponse
 
   :<|>
     Capture "subscriber_hash" ListMemberId
@@ -104,7 +107,8 @@
       -- Get information about members in a list.
 
     , getListMembers
-        :: ClientM [ListMemberResponse]
+        :: Maybe Int
+        -> ClientM ListMembersResponse
 
       -- |
       --
@@ -147,7 +151,29 @@
 -- |
 --
 --
+--
+-- @since 0.3.0
 
+getAllListMembers
+  :: ListMemberClient
+  -> ClientM [ListMemberResponse]
+getAllListMembers ListMemberClient {..} = do
+  xs <- listMembersMembers <$> getListMembers Nothing
+  rest <- go 0 (length xs)
+  return $ xs ++ rest
+  where
+    go :: Int -> Int -> ClientM [ListMemberResponse]
+    go _ 0 = return []
+    go offset n = do
+      xs <- listMembersMembers <$> getListMembers (Just $ offset + n)
+      rest <- go (offset + n) (length xs)
+      return $ xs ++ rest
+
+
+-- |
+--
+--
+
 instance Generics.SOP.Generic ListMemberClient
 
 
@@ -214,6 +240,8 @@
 data ListMemberResponse =
   ListMemberResponse
     { listMemberId :: ListMemberId
+    , listMemberResponseEmail :: Text
+    , listMemberResponseStatus :: ListMemberStatus
     }
   deriving (Show)
 
@@ -228,12 +256,36 @@
       \o ->
         ListMemberResponse
           <$> o .: "id"
+          <*> o .: "email_address"
+          <*> o .: "status"
 
 
 -- |
 --
 --
 
+data ListMembersResponse =
+  ListMembersResponse
+    { listMembersMembers :: [ListMemberResponse]
+    }
+  deriving (Show)
+
+-- |
+--
+--
+
+instance FromJSON ListMembersResponse where
+  parseJSON =
+    Aeson.withObject "" $
+      \o ->
+        ListMembersResponse
+          <$> o .: "members"
+
+
+-- |
+--
+--
+
 data ListMemberStatus
   = Cleaned
   | Pending
@@ -251,3 +303,13 @@
   toJSON Pending = "pending"
   toJSON Subscribed = "subscribed"
   toJSON Unsubscribed = "unsubscribed"
+
+instance FromJSON ListMemberStatus where
+  parseJSON =
+    Aeson.withText "" $
+      \s -> case s of
+        "cleaned" -> return Cleaned
+        "pending" -> return Pending
+        "subscribed" -> return Subscribed
+        "unsubscribed" -> return Unsubscribed
+        other -> fail $ "expected ListMemberStatus, encountered " ++ show other
