diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,16 @@
 Changelog
 =========
 
+Version 0.2.8.3
+---------------
+
+*December 10, 2022*
+
+<https://github.com/mstksg/advent-of-code-api/releases/tag/v0.2.8.3>
+
+*   Properly adjust for AoC private leaderboard json: it uses a number instead
+    of a string, but the parser was not properly fixed by hand.
+
 Version 0.2.8.2
 ---------------
 
diff --git a/advent-of-code-api.cabal b/advent-of-code-api.cabal
--- a/advent-of-code-api.cabal
+++ b/advent-of-code-api.cabal
@@ -5,7 +5,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           advent-of-code-api
-version:        0.2.8.2
+version:        0.2.8.3
 synopsis:       Advent of Code REST API bindings and servant API
 description:    Haskell bindings for Advent of Code REST API and a servant API.  Please use
                 responsibly! See README.md or "Advent" module for an introduction and
diff --git a/src/Advent/Types.hs b/src/Advent/Types.hs
--- a/src/Advent/Types.hs
+++ b/src/Advent/Types.hs
@@ -150,7 +150,7 @@
 -- | Leaderboard type, representing private leaderboard information.
 data Leaderboard = LB
     { lbEvent   :: Integer                        -- ^ The year of the event
-    , lbOwnerId :: String                         -- ^ The Member ID of the owner, or the public code
+    , lbOwnerId :: Integer                        -- ^ The Member ID of the owner, or the public code
     , lbMembers :: Map Integer LeaderboardMember  -- ^ A map from member IDs to their leaderboard info
     }
   deriving (Show, Eq, Ord, Typeable, Generic)
@@ -274,7 +274,7 @@
 instance FromJSON Leaderboard where
     parseJSON = withObject "Leaderboard" $ \o ->
         LB <$> (strInt =<< (o .: "event"))
-           <*> (strInt =<< (o .: "owner_id"))
+           <*> o .: "owner_id"
            <*> o .: "members"
       where
         strInt t = case readMaybe t of
