diff --git a/README.org b/README.org
--- a/README.org
+++ b/README.org
@@ -8,10 +8,7 @@
 #+begin_html
 <div>
 <img src="https://img.shields.io/badge/Haskell-5D4F85?logo=haskell&logoColor=fff&style=plastic" alt="Haskell"/>
-<img src="https://img.shields.io/badge/PostgreSQL-4169E1?logo=postgresql&logoColor=fff&style=plastic" alt="PostgreSQL"/>
-<img src="https://img.shields.io/badge/GNU%20Emacs-7F5AB6?logo=gnuemacs&logoColor=fff&style=plastic" alt="GNU Emacs"/>
-<img src="https://img.shields.io/badge/NixOS-5277C3?logo=nixos&logoColor=fff&style=plastic" alt="NixOS"/>
-<img src="https://img.shields.io/badge/Redis-DC382D?logo=redis&logoColor=fff&style=plastic" alt="Redis"/>
+<img src="https://img.shields.io/badge/Nix-5277C3?logo=nixos&logoColor=fff&style=plastic" alt="Nix"/>
 </div>
 #+end_html
 
diff --git a/src/WikiMusic/Servant/ApiSpec.hs b/src/WikiMusic/Servant/ApiSpec.hs
--- a/src/WikiMusic/Servant/ApiSpec.hs
+++ b/src/WikiMusic/Servant/ApiSpec.hs
@@ -13,7 +13,6 @@
     GenresAPI,
     WithBaseEntityRoutes,
     WithComments,
-    WithPaginationParams,
     WithOpinions,
     WithArtworks,
     WithArtworkOrders,
@@ -70,14 +69,8 @@
 type ArtistsAPI =
   "artists"
     :> ( WithBaseEntityRoutes
-           :<|> WithAuth
-             :> WithPaginationParams
-             :> Get '[JSON] GetArtistsQueryResponse
-           :<|> "search"
-             :> WithAuth
-             :> WithSearch
-             :> WithPaginationParams
-             :> Get '[JSON] GetArtistsQueryResponse
+           :<|> PageGet GetArtistsQueryResponse
+           :<|> SearchGet GetArtistsQueryResponse
            :<|> WithDetailsFromIdentifier GetArtistsQueryResponse
            :<|> WithAuth :> ReqBody '[JSON] InsertArtistsRequest :> Post '[JSON] InsertArtistsCommandResponse
            :<|> WithComments InsertArtistCommentsRequest InsertArtistCommentsCommandResponse
@@ -90,15 +83,9 @@
 type SongsAPI =
   "songs"
     :> ( WithBaseEntityRoutes
-           :<|> WithAuth
-             :> WithPaginationParams
-             :> Get '[JSON] GetSongsQueryResponse
-           :<|> "search"
-             :> WithAuth
-             :> WithSearch
-             :> WithPaginationParams
-             :> Get '[JSON] GetSongsQueryResponse
-           :<|> "identifier" :> WithDetailsFromIdentifier GetSongsQueryResponse
+           :<|> PageGet GetSongsQueryResponse
+           :<|> SearchGet GetSongsQueryResponse
+           :<|> WithDetailsFromIdentifier GetSongsQueryResponse
            :<|> WithAuth :> ReqBody '[JSON] InsertSongsRequest :> Post '[JSON] InsertSongsCommandResponse
            :<|> WithComments InsertSongCommentsRequest InsertSongCommentsCommandResponse
            :<|> WithOpinions UpsertSongOpinionsRequest UpsertSongOpinionsCommandResponse
@@ -115,17 +102,11 @@
 type GenresAPI =
   "genres"
     :> ( WithBaseEntityRoutes
-           :<|> WithAuth
-             :> WithPaginationParams
-             :> Get '[JSON] GetGenresQueryResponse
-           :<|> "search"
-             :> WithAuth
-             :> WithSearch
-             :> WithPaginationParams
-             :> Get '[JSON] GetGenresQueryResponse
+           :<|> PageGet GetGenresQueryResponse
+           :<|> SearchGet GetGenresQueryResponse
            :<|> WithDetailsFromIdentifier GetGenresQueryResponse
            :<|> WithAuth :> ReqBody '[JSON] InsertGenresRequest :> Post '[JSON] InsertGenresCommandResponse
-           :<|> WithComments InsertGenreCommentsRequest InsertGenresCommandResponse
+           :<|> WithComments InsertGenreCommentsRequest InsertGenreCommentsCommandResponse
            :<|> WithOpinions UpsertGenreOpinionsRequest UpsertGenreOpinionsCommandResponse
            :<|> WithArtworks InsertGenreArtworksRequest InsertGenreArtworksCommandResponse
            :<|> WithArtworkOrders GenreArtworkOrderUpdateRequest
@@ -139,12 +120,6 @@
              :<|> "delete" :> WithAuth :> ReqBody '[JSON] DeleteUsersRequest :> Post '[JSON] ()
          )
 
-type WithPaginationParams =
-  QueryParam "limit" Int
-    :> QueryParam "offset" Int
-    :> QueryParam "sort-order" Text
-    :> QueryParam "include" Text
-
 type LoginRespondWithAuth =
   Verb
     'POST
@@ -174,3 +149,21 @@
 type WithArtworkOrders a = "artworks" :> "order" :> WithAuth :> ReqBody '[JSON] a :> Patch '[JSON] ()
 
 type WithDetailsFromIdentifier a = "identifier" :> WithAuth :> WithIdentifier :> Get '[JSON] a
+
+type PageGet a =
+  WithAuth
+    :> QueryParam "limit" Int
+    :> QueryParam "offset" Int
+    :> QueryParam "sort-order" Text
+    :> QueryParam "include" Text
+    :> Get '[JSON] a
+
+type SearchGet a =
+  "search"
+    :> WithAuth
+    :> WithSearch
+    :> QueryParam "limit" Int
+    :> QueryParam "offset" Int
+    :> QueryParam "sort-order" Text
+    :> QueryParam "include" Text
+    :> Get '[JSON] a
diff --git a/wikimusic-api-spec.cabal b/wikimusic-api-spec.cabal
--- a/wikimusic-api-spec.cabal
+++ b/wikimusic-api-spec.cabal
@@ -1,10 +1,10 @@
 cabal-version: 1.12
 
 name:           wikimusic-api-spec
-version:        1.2.0.0
-description:    Please see the README at <https://gitlab.com/jjba-projects/wikimusic-api-spec>
-homepage:       https://gitlab.com/jjba-projects/wikimusic-api-spec
-bug-reports:    https://gitlab.com/jjba-projects/wikimusic-api-spec/-/issues
+version:        1.2.1.2
+description:    Please see the README at <https://github.com/jjba23/wikimusic-api-spec>
+homepage:       https://github.com/jjba23/wikimusic-api-spec
+bug-reports:    https://github.com/jjba23/wikimusic-api-spec/-/issues
 author:         Josep Bigorra
 maintainer:     Josep Bigorra <jjbigorra@gmail.com>
 copyright:      2023 Josep Bigorra
@@ -17,7 +17,7 @@
 
 source-repository head
   type: git
-  location: https://gitlab.com/jjba-projects/wikimusic-api-spec
+  location: https://github.com/jjba23/wikimusic-api-spec
   subdir: wikimusic-api-spec
 
 library
