We're currently trying to plan a new developer API for our application and debating the various data formats we should use for interchange.
We're also going to be using this API for our official desktop application so we're going to have a working implementation before it goes public.
There's a fairly intense discussion going on about the relative merits of CSV vs JSON vs XML. Basically, the crux of the argument is whether we should support CSV at all because of the lack of recursion (i.e. having a document which has multiple authors and multiple references would require multiple API calls to obtain all the information).
I'm in the experiences you may have had when working with information from Web APIs and things we can do to make the lives easier for the developers working with our API.
Our decision: We've decided to provide XML and JSON due to the difficulty in recursion in CSV needing multiple calls for a single logical operation. JSON doesn't have a parser in Qt and Protocol Buffers doesn't seem to have a non-alpha PHP implementation so they are out for the moment too but will probably be supported eventually.
Thanks for all your answers.