diff --git a/gitlab-haskell.cabal b/gitlab-haskell.cabal
--- a/gitlab-haskell.cabal
+++ b/gitlab-haskell.cabal
@@ -1,7 +1,7 @@
 cabal-version: 2.4
 name:           gitlab-haskell
 category:       Git
-version:        0.1.0.1
+version:        0.1.0.2
 synopsis:       A Haskell library for the GitLab web API
 description:
   This Haskell library queries and updates the database of a GitLab instance using the GitLab web API: <https://docs.gitlab.com/ee/api/>
diff --git a/src/GitLab/API/Commits.hs b/src/GitLab/API/Commits.hs
--- a/src/GitLab/API/Commits.hs
+++ b/src/GitLab/API/Commits.hs
@@ -28,7 +28,7 @@
   => Int -- ^ project ID
   -> GitLab m [Commit]
 projectCommits' projectId =
-  gitlab (commitsAddr projectId)
+  gitlabWithAttrs (commitsAddr projectId) "&with_stats=true"
   where
     commitsAddr :: Int -> Text
     commitsAddr projId =
diff --git a/src/GitLab/API/Projects.hs b/src/GitLab/API/Projects.hs
--- a/src/GitLab/API/Projects.hs
+++ b/src/GitLab/API/Projects.hs
@@ -31,7 +31,7 @@
 -- | gets all projects.
 allProjects :: (MonadIO m) => GitLab m [Project]
 allProjects =
-  gitlab "/projects"
+  gitlabWithAttrs "/projects" "&statistics=true"
 
 -- | gets all forks of a project. Supports use of namespaces.
 --
@@ -54,7 +54,7 @@
   -> GitLab m (Maybe Project)
 searchProjectId projectId = do
   let urlPath = T.pack ("/projects/" <> show projectId)
-  gitlabOne urlPath
+  gitlabWithAttrsOne urlPath  "&statistics=true"
 
 -- | gets all projects with the given project name.
 --
@@ -74,10 +74,15 @@
 projectsWithNameAndUser ::
      (MonadUnliftIO m, MonadIO m) => Text -> Text -> GitLab m (Maybe Project)
 projectsWithNameAndUser username projectName =
-  gitlabOne
+  -- gitlabOne
+  -- ("/projects/" <>
+  --  T.decodeUtf8
+  --     (urlEncode False (T.encodeUtf8 (username <> "/" <> projectName))))
+  gitlabWithAttrsOne
   ("/projects/" <>
    T.decodeUtf8
       (urlEncode False (T.encodeUtf8 (username <> "/" <> projectName))))
+  "&statistics=true"
 
 -- | returns 'True' if a project has multiple committers, according to
 -- the email addresses of the commits.
@@ -102,15 +107,19 @@
 -- | gets all projects for a user's username.
 --
 -- > userProjects "harry"
-userProjects ::
+userProjects' ::
      (MonadUnliftIO m, MonadIO m) => Text -> GitLab m (Maybe [Project])
-userProjects username = do
+userProjects' username = do
   userMaybe <- searchUser username
   case userMaybe of
     Nothing -> return Nothing
     Just usr -> Just <$> gitlab (urlPath (user_id usr))
   where
     urlPath userId = "/users/" <> T.pack (show userId) <> "/projects"
+
+userProjects ::
+     (MonadUnliftIO m, MonadIO m) => User -> GitLab m (Maybe [Project])
+userProjects theUser = userProjects' (user_username theUser)
 
 -- | gets the 'GitLab.Types.Project' against which the given 'Issue'
 -- was created.
diff --git a/src/GitLab/Types.hs b/src/GitLab/Types.hs
--- a/src/GitLab/Types.hs
+++ b/src/GitLab/Types.hs
@@ -21,13 +21,14 @@
   , Owner(..)
   , Permissions(..)
   , Project(..)
+  , ProjectStats(..)
   , User(..)
   , Milestone(..)
   , TimeStats(..)
   , Issue(..)
   , Pipeline(..)
   , Commit(..)
-  , Stats(..)
+  , CommitStats(..)
   , Repository(..)
   , Job(..)
   , Artifact(..)
@@ -172,8 +173,20 @@
   , printing_merge_request_link_enabled :: Maybe Bool
   , merge_method:: Maybe Text
   , permissions :: Maybe Permissions
+  , project_stats :: Maybe ProjectStats
   } deriving (Generic, Show, Eq)
 
+data ProjectStats =
+  ProjectStats
+  { commit_count :: Int
+  , storage_size :: Int
+  , repository_size :: Int
+  , wiki_size :: Maybe Int
+  , lfs_objects_size :: Maybe Int
+  , job_artifacts_size :: Maybe Int
+  , packages_size :: Maybe Int
+  } deriving (Generic, Show, Eq)
+
 -- | registered users.
 data User =
   User
@@ -263,12 +276,12 @@
   , message :: Text
   , parent_ids :: Maybe [Text]
   , last_pipeline :: Maybe Pipeline
-  , stats :: Maybe Stats
+  , commit_stats :: Maybe CommitStats
   , commit_status :: Maybe Text
   } deriving (Generic, Show)
 
 -- | commit stats.
-data Stats =
+data CommitStats =
   Stats
   { additions :: Int
   , deletions :: Int
@@ -496,6 +509,8 @@
 bodyNoPrefix "merge_request_time_stats" = "time_stats"
 bodyNoPrefix "merge_request_squash" = "squash"
 bodyNoPrefix "merge_request_approvals_before_merge" = "approvals_before_merge"
+bodyNoPrefix "project_stats" = "statistics"
+bodyNoPrefix "commit_stats" = "stats"
 
 
 
@@ -527,7 +542,7 @@
               (defaultOptions
                { fieldLabelModifier = bodyNoPrefix })
 
-instance FromJSON Stats where
+instance FromJSON CommitStats where
   parseJSON = genericParseJSON
               (defaultOptions
                { fieldLabelModifier = bodyNoPrefix })
@@ -563,6 +578,11 @@
                { fieldLabelModifier = bodyNoPrefix })
 
 instance FromJSON Project where
+  parseJSON = genericParseJSON
+              (defaultOptions
+               { fieldLabelModifier = bodyNoPrefix })
+
+instance FromJSON ProjectStats where
   parseJSON = genericParseJSON
               (defaultOptions
                { fieldLabelModifier = bodyNoPrefix })
diff --git a/src/GitLab/WebRequests/GitLabWebCalls.hs b/src/GitLab/WebRequests/GitLabWebCalls.hs
--- a/src/GitLab/WebRequests/GitLabWebCalls.hs
+++ b/src/GitLab/WebRequests/GitLabWebCalls.hs
@@ -64,7 +64,9 @@
 parseBSOne :: FromJSON a => BSL.ByteString -> Maybe a
 parseBSOne bs =
   case eitherDecode bs of
-    Left s -> error (show s)
+    Left _err -> Nothing
+      -- useful when debugging
+      -- error (show _err)
     Right xs -> Just xs
 
 parseBSMany :: FromJSON a => BSL.ByteString -> [a]
@@ -102,7 +104,7 @@
       else go (i+1) accum'
 
 gitlabReqOne :: (MonadIO m, FromJSON a) => Text -> Text -> GitLab m (Maybe a)
-gitlabReqOne urlPath attrs =
+gitlabReqOne urlPath attrs = do
   go
   where
     go = do
