I implemented a credit check API connection to Equifax recently. The response data was encoded as a stream of offset-based text, with some offsets dynamically changing based on fields in the already-parsed data. Lots of work to write a parser for it.
We initially asked them if they had an updated version of this API using XML or JSON, and it turned into a call with several of their salespeople trying to upsell us on some complicated drag and drop rules engine that happened to return data as JSON. So we just stuck to the legacy API. They struck me as a pretty incompetent organization.