You could try
grok { match => { "message" => "{(?<[@metadata][kvData]>[^}]+)}$" } }
kv { source => "[@metadata][kvData]" field_split => "," trim_key => " " }
which will produce
"apiType" => "HTTP",
"proxyResponseCode" => "500",
"errorType" => "null",
"applicationOwner" => "admin"