A while ago I blogged about supporting BSON at your Web API end points. A good alternative to both JSON and BSON has, for quite a while now, been MessagePack.
The main problem with supporting MessagePack in your Web API has been the fact that MessagePack required a strongly typed serializer (in other words, you needed to tell the serializer what type you serialize and deserialize at compile time). There was no easy way to provide support for boxed objects (untyped context) – and Web API media type formatters run against such generic object instances. In face, to be precise, writing to a stream (serializing) has never been a big problem, but reading was very complicated. An easy solution was a type whitelist and a massive if-else block, but such approaches are hardly good ideas.
Four days ago, Yusuke Fujiwara, one of the wizards behind MessagePack for CLI, added support for untyped serializer factory, effectively inviting all of us to start using MessagePack in Web API.