diff --git a/datadog-tracing.cabal b/datadog-tracing.cabal
--- a/datadog-tracing.cabal
+++ b/datadog-tracing.cabal
@@ -1,6 +1,6 @@
 cabal-version:       2.2
 name:                datadog-tracing
-version:             1.5.0
+version:             1.5.1
 synopsis:            Datadog tracing client and mock agent.
 license:             BSD-3-Clause
 license-file:        LICENSE
diff --git a/exe/Main.hs b/exe/Main.hs
--- a/exe/Main.hs
+++ b/exe/Main.hs
@@ -22,7 +22,7 @@
 import           Datadog.Agent
 import           Datadog.Jaeger
 
-type Services = (Traces3 :<|> Traces4 :<|> Dump)
+type Services = (Traces3 :<|> Traces4 :<|> Traces4' :<|> Dump)
 
 main :: IO ()
 main = do
@@ -31,7 +31,7 @@
       outputFormat = CustomOutputFormatWithDetails formatAsJSON
     }
 
-  let services = (postTraces3 ref) :<|> (postTraces4 ref) :<|> (getTraces ref)
+  let services = (postTraces3 ref) :<|> (postTraces4 ref) :<|> (postTraces4 ref) :<|> (getTraces ref)
   run 8126 (logger $ serve (Proxy @ Services) services)
 
 postTraces3 :: IORef [Trace] -> [Trace] -> Handler NoContent
diff --git a/library/Datadog/Agent.hs b/library/Datadog/Agent.hs
--- a/library/Datadog/Agent.hs
+++ b/library/Datadog/Agent.hs
@@ -51,6 +51,10 @@
               :> Put '[MsgPack, JSON] TraceResponse
               -- WARNING: agent incorrectly sets the response type to be plain text
               -- https://github.com/DataDog/datadog-agent/issues/3207#issuecomment-476716966
+-- the go client uses POST instead of the documented PUT :slowclap:
+type Traces4' = "v0.4" :> "traces"
+              :> ReqBody '[MsgPack, JSON] [Trace]
+              :> Post '[MsgPack, JSON] TraceResponse
 
 -- backcompat
 type Traces3 = "v0.3" :> "traces"
