diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,5 +2,11 @@
 
 `copr-hs` uses [PVP Versioning](https://pvp.haskell.org).
 
+## 0.2.0 (2023-11-25)
+- API functions now return Object instead of Value
+- add coprMonitorProject
+- coprGetBuildList replaces coprGetBuildPackageList
+- haddock urls updated to point to main branch
+
 ## 0.1.0 (2021-12-29)
 - Initial Hackage release
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -3,7 +3,7 @@
 [![Hackage](https://img.shields.io/hackage/v/copr-api.svg?logo=haskell)](https://hackage.haskell.org/package/copr-api)
 [![Stackage Lts](http://stackage.org/package/copr-api/badge/lts)](http://stackage.org/lts/package/copr-api)
 [![Stackage Nightly](http://stackage.org/package/copr-api/badge/nightly)](http://stackage.org/nightly/package/copr-api)
-[![GPL-3.0-only license](https://img.shields.io/badge/license-GPL--3.0--only-blue.svg)](LICENSE)
+[![GPL-3.0-or-later license](https://img.shields.io/badge/license-GPL--3.0--or--later-blue.svg)](LICENSE)
 
 Copr API client Haskell library
 
diff --git a/copr-api.cabal b/copr-api.cabal
--- a/copr-api.cabal
+++ b/copr-api.cabal
@@ -1,6 +1,6 @@
 cabal-version:       1.22
 name:                copr-api
-version:             0.1.0
+version:             0.2.0
 synopsis:            Copr API client libary
 description:         Fedora Copr buildsystem client api library
 homepage:            https://github.com/juhp/copr-api-hs
@@ -9,7 +9,7 @@
 license-file:        LICENSE
 author:              Jens Petersen <petersen@redhat.com>
 maintainer:          Jens Petersen <petersen@redhat.com>
-copyright:           2020-2021 Jens Petersen
+copyright:           2020-2023 Jens Petersen
 category:            Network
 build-type:          Simple
 extra-doc-files:     README.md
@@ -19,8 +19,11 @@
                      GHC == 8.4.4
                      GHC == 8.6.5
                      GHC == 8.8.4
-                     GHC == 8.10.5
-                     GHC == 9.0.1
+                     GHC == 8.10.7
+                     GHC == 9.0.2
+                     GHC == 9.2.8
+                     GHC == 9.4.8
+                     GHC == 9.6.3
 
 source-repository head
   type:                git
@@ -35,8 +38,6 @@
   build-depends:
                 base >= 4.7 && <5
               , aeson
-              , bytestring
-              , directory
               , http-query
               , text
               , unordered-containers
diff --git a/src/Web/Fedora/Copr.hs b/src/Web/Fedora/Copr.hs
--- a/src/Web/Fedora/Copr.hs
+++ b/src/Web/Fedora/Copr.hs
@@ -21,12 +21,13 @@
 #else
 import qualified Data.HashMap.Lazy as M
 #endif
-import Data.List (sort)
+import Data.List (sortBy)
+import Data.Ord (comparing, Down(Down))
 import Data.Text (Text)
 
 import Web.Fedora.Copr.API
 
--- | Get the list of chroot of a user's copr project
+-- | Get list of chroots of a user's copr project, sorted in descending order.
 coprChroots :: String -- ^ server
             -> String -- ^ owner
             -> String -- ^ project
@@ -38,7 +39,7 @@
         case lookupKey "error" proj of
           Just err -> error err
           Nothing -> return []
-    Just obj -> return $ (reverse . sort . map toText . M.keys) obj
+    Just obj -> return $ (sortBy (comparing Down) . map toText . M.keys) obj
 #if !MIN_VERSION_aeson(2,0,0)
       where toText = id
 #endif
diff --git a/src/Web/Fedora/Copr/API.hs b/src/Web/Fedora/Copr/API.hs
--- a/src/Web/Fedora/Copr/API.hs
+++ b/src/Web/Fedora/Copr/API.hs
@@ -15,11 +15,12 @@
   , coprGetBuild
   , coprGetBuildSourceChroot
   , coprGetBuildSourceConfig
-  , coprGetBuildPackageList
+  , coprGetBuildList
   , coprGetBuildChroot
   , coprGetBuildChrootList
   , coprGetBuildChrootConfig
   , coprMockChrootList
+  , coprMonitorProject
   , coprGetPackage
   , coprGetPackageList
   , coprGetProjectChroot
@@ -34,14 +35,18 @@
 where
 
 import Data.Aeson.Types
+import Data.List (intercalate)
 import Network.HTTP.Query
 
 -- # Projects
 
 -- | List project details
 --
--- https://pagure.io/copr/copr/blob/master/f/python/copr/v3/proxies/project.py#_9
-coprGetProject :: String -> String -> String -> IO Object
+-- https://pagure.io/copr/copr/blob/main/f/python/copr/v3/proxies/project.py#_9
+coprGetProject :: String -- ^ server
+               -> String -- ^ owner
+               -> String -- ^ project
+               -> IO Object
 coprGetProject server owner project = do
   let path = "project"
       params = [makeItem "ownername" owner, makeItem "projectname" project]
@@ -49,8 +54,10 @@
 
 -- | List projects of owner
 --
--- https://pagure.io/copr/copr/blob/master/f/python/copr/v3/proxies/project.py#_26
-coprGetProjectsList :: String -> String -> IO Value
+-- https://pagure.io/copr/copr/blob/main/f/python/copr/v3/proxies/project.py#_37
+coprGetProjectsList :: String -- ^ server
+                    -> String -- ^ owner
+                    -> IO Object
 -- FIXME limit=int or maybe pagination?
 coprGetProjectsList server owner = do
   let path = "project/list"
@@ -59,8 +66,10 @@
 
 -- | search projects by query string
 --
--- https://pagure.io/copr/copr/blob/master/f/python/copr/v3/proxies/project.py#_43
-coprSearchProjects :: String -> String -> IO Value
+-- https://pagure.io/copr/copr/blob/main/f/python/copr/v3/proxies/project.py#_43
+coprSearchProjects :: String -- ^ server
+                   -> String -- ^ query
+                   -> IO Object
 coprSearchProjects server query = do
   let path = "project/search"
       params = makeKey "query" query
@@ -70,58 +79,80 @@
 
 -- | get build
 --
--- https://pagure.io/copr/copr/blob/master/f/python/copr/v3/proxies/build.py#_10
-coprGetBuild :: String -> Int -> IO Object
+-- https://pagure.io/copr/copr/blob/main/f/python/copr/v3/proxies/build.py#_10
+coprGetBuild :: String -- ^ server
+             -> Int -- ^ build id
+             -> IO Object
 coprGetBuild server bid = do
   let path = "build" +/+ show bid
   queryCopr server path []
 
 -- | get srpm build
 --
--- https://pagure.io/copr/copr/blob/master/f/python/copr/v3/proxies/build.py#_22
-coprGetBuildSourceChroot :: String -> Int -> IO Object
+-- https://pagure.io/copr/copr/blob/main/f/python/copr/v3/proxies/build.py#_22
+coprGetBuildSourceChroot :: String -- ^ server
+                         -> Int -- ^ build id
+                         -> IO Object
 coprGetBuildSourceChroot server bid = do
   let path = "build/source-chroot" +/+ show bid
   queryCopr server path []
 
 -- | get build source config
 --
--- https://pagure.io/copr/copr/blob/master/f/python/copr/v3/proxies/build.py#_34
-coprGetBuildSourceConfig :: String -> Int -> IO Object
+-- https://pagure.io/copr/copr/blob/main/f/python/copr/v3/proxies/build.py#_34
+coprGetBuildSourceConfig :: String -- ^ server
+                         -> Int -- ^ build id
+                         -> IO Object
 coprGetBuildSourceConfig server bid = do
   let path = "build/source-build-config" +/+ show bid
   queryCopr server path []
 
--- | get list of packages
+-- | get list of builds
 --
--- https://pagure.io/copr/copr/blob/master/f/python/copr/v3/proxies/build.py#_46
-coprGetBuildPackageList :: String -> Query -> IO Value
-coprGetBuildPackageList server params = do
+-- https://pagure.io/copr/copr/blob/main/f/python/copr/v3/proxies/build.py#_56
+--
+-- @since 0.2.0
+coprGetBuildList :: String -- ^ server
+                 -> String -- ^ owner
+                 -> String -- ^ project
+                 -> Query -- ^ optional parameters ("packagename", "status", "pagination")
+                 -> IO Object
+coprGetBuildList server owner project params = do
   let path = "build/list"
-  queryCopr server path params
+      params' = [makeItem "ownername" owner,
+                makeItem "projectname" project] ++ params
+  queryCopr server path params'
 
 -- # Build chroot
 
 -- | get build chroot
 --
--- https://pagure.io/copr/copr/blob/master/f/python/copr/v3/proxies/build_chroot.py#_8
-coprGetBuildChroot :: String -> Int -> String -> IO Value
+-- https://pagure.io/copr/copr/blob/main/f/python/copr/v3/proxies/build_chroot.py#_8
+coprGetBuildChroot :: String -- ^ server
+                   -> Int -- ^ build id
+                   -> String -- ^ chroot
+                   -> IO Object
 coprGetBuildChroot server bid chroot = do
   let path = "build-chroot" +/+ show bid +/+ chroot
   queryCopr server path []
 
 -- | list of build chroots
 --
--- https://pagure.io/copr/copr/blob/master/f/python/copr/v3/proxies/build_chroot.py#_25
-coprGetBuildChrootList :: String -> Int -> IO Value
+-- https://pagure.io/copr/copr/blob/main/f/python/copr/v3/proxies/build_chroot.py#_25
+coprGetBuildChrootList :: String -- ^ server
+                       -> Int -- ^ build id
+                       -> IO Object
 coprGetBuildChrootList server bid = do
   let path = "build-chroot/list" +/+ show bid
   queryCopr server path []
 
 -- | get build config for chroot
 --
--- https://pagure.io/copr/copr/blob/master/f/python/copr/v3/proxies/build_chroot.py#_44
-coprGetBuildChrootConfig :: String -> Int -> String -> IO Value
+-- https://pagure.io/copr/copr/blob/main/f/python/copr/v3/proxies/build_chroot.py#_44
+coprGetBuildChrootConfig :: String -- ^ server
+                         -> Int -- ^ build id
+                         -> String -- ^ chroot
+                         -> IO Object
 coprGetBuildChrootConfig server bid chroot = do
   let path = "build-chroot/build-config" +/+ show bid +/+ chroot
   queryCopr server path []
@@ -130,8 +161,9 @@
 
 -- | list of all available mock chroots
 --
--- https://pagure.io/copr/copr/blob/master/f/python/copr/v3/proxies/mock_chroot.py
-coprMockChrootList :: String -> IO Value
+-- https://pagure.io/copr/copr/blob/main/f/python/copr/v3/proxies/mock_chroot.py
+coprMockChrootList :: String -- ^ server
+                   -> IO Object
 coprMockChrootList server = do
   let path = "mock-chroots/list"
   queryCopr server path []
@@ -140,8 +172,12 @@
 
 -- | Get project package details
 --
--- https://pagure.io/copr/copr/blob/master/f/python/copr/v3/proxies/package.py#_9
-coprGetPackage :: String -> String -> String -> String -> IO Value
+-- https://pagure.io/copr/copr/blob/main/f/python/copr/v3/proxies/package.py#_9
+coprGetPackage :: String -- ^ server
+               -> String -- ^ owner
+               -> String -- ^ project
+               -> String -- ^ package
+               -> IO Object
 coprGetPackage server owner project package = do
   let path = "package"
       params = [makeItem "ownername" owner,
@@ -151,8 +187,11 @@
 
 -- | List project packages
 --
--- https://pagure.io/copr/copr/blob/master/f/python/copr/v3/proxies/package.py#_28
-coprGetPackageList :: String -> String -> String -> IO Value
+-- https://pagure.io/copr/copr/blob/main/f/python/copr/v3/proxies/package.py#_28
+coprGetPackageList :: String -- ^ server
+                   -> String -- ^ owner
+                   -> String -- ^ project
+                   -> IO Object
 coprGetPackageList server owner project = do
   let path = "package/list"
       params = [makeItem "ownername" owner, makeItem "projectname" project]
@@ -162,8 +201,12 @@
 
 -- | get build chroot
 --
--- https://pagure.io/copr/copr/blob/master/f/python/copr/v3/proxies/project_chroot.py#_10
-coprGetProjectChroot :: String -> String -> String -> String -> IO Value
+-- https://pagure.io/copr/copr/blob/main/f/python/copr/v3/proxies/project_chroot.py#_10
+coprGetProjectChroot :: String -- ^ server
+                     -> String -- ^ owner
+                     -> String -- ^ project
+                     -> String -- ^ chroot
+                     -> IO Object
 coprGetProjectChroot server owner project chroot = do
   let path = "project-chroot"
       params = [makeItem "ownername" owner,
@@ -173,8 +216,12 @@
 
 -- | list of build chroots
 --
--- https://pagure.io/copr/copr/blob/master/f/python/copr/v3/proxies/project_chroot.py#_29
-coprGetProjectChrootBuildConfig :: String -> String -> String -> String -> IO Value
+-- https://pagure.io/copr/copr/blob/main/f/python/copr/v3/proxies/project_chroot.py#_29
+coprGetProjectChrootBuildConfig :: String -- ^ server
+                                -> String -- ^ owner
+                                -> String -- ^ project
+                                -> String -- ^ chroot
+                                -> IO Object
 coprGetProjectChrootBuildConfig server owner project chroot = do
   let path = "project-chroot/build-config"
       params = [makeItem "ownername" owner,
@@ -182,6 +229,22 @@
                 makeItem "chrootname" chroot]
   queryCopr server path params
 
+-- | monitor info for the latest project chroot builds.
+--
+-- https://pagure.io/copr/copr/blob/main/f/python/copr/v3/proxies/monitor.py#_16
+--
+-- @since 0.2.0
+coprMonitorProject :: String -- ^ server
+                   -> String -- ^ owner
+                   -> String -- ^ project
+                   -> [String] -- ^ additional fields
+                   -> IO Object
+coprMonitorProject server owner project fields = do
+  let path = "monitor"
+      params = [makeItem "ownername" owner,
+                makeItem "projectname" project,
+                makeItem "additional_fields" (intercalate "," fields)]
+  queryCopr server path params
 
 -- | low-level API query
 queryCopr :: FromJSON a
