diff --git a/amazonka-core.cabal b/amazonka-core.cabal
--- a/amazonka-core.cabal
+++ b/amazonka-core.cabal
@@ -1,5 +1,5 @@
 name:                  amazonka-core
-version:               0.1.1
+version:               0.1.2
 synopsis:              Core functionality and data types for Amazonka libraries.
 homepage:              https://github.com/brendanhay/amazonka
 license:               OtherLicense
@@ -91,6 +91,7 @@
         , mmorph               >= 1      && < 2
         , mtl                  >= 2.2.1  && < 2.3
         , resourcet            == 1.1.*
+        , scientific           == 0.3.*
         , semigroups           >= 0.12
         , tagged               >= 0.7
         , text                 >= 1.1
@@ -113,6 +114,7 @@
 
     build-depends:
           amazonka-core
+        , aeson
         , base
         , tasty
         , tasty-hunit
diff --git a/src/Network/AWS/Data/Internal/Numeric.hs b/src/Network/AWS/Data/Internal/Numeric.hs
--- a/src/Network/AWS/Data/Internal/Numeric.hs
+++ b/src/Network/AWS/Data/Internal/Numeric.hs
@@ -17,6 +17,7 @@
 import Control.Lens.TH
 import Control.Monad
 import Data.Aeson.Types
+import Data.Scientific
 import Network.AWS.Data.Internal.ByteString
 import Network.AWS.Data.Internal.Query
 import Network.AWS.Data.Internal.Text
@@ -43,11 +44,13 @@
 
 instance FromJSON Nat where
     parseJSON = parseJSON >=> \n ->
-        if n < 0
-            then fail $ "Cannot convert negative number to Natural: " ++ show n
-            else pure $ Nat (fromInteger n)
+        case floatingOrInteger n of
+            Left  _         -> fail $ "Cannot convert float to Natural: " ++ show n
+            Right i
+                | n < 0     -> fail $ "Cannot convert negative number to Natural: " ++ show n
+                | otherwise -> pure $ Nat (fromInteger i)
 
 instance ToJSON Nat where
-    toJSON = String . toText . unNat
+    toJSON = Number . flip scientific 0 . toInteger . unNat
 
 makePrisms ''Nat
