To me this just feels wasteful. Most APIs only ever return one type of thing. So the business of asking for application/json with every request and then the API confirming that, yes, it's still sending application/json;charset=utf-8 just seems a pointless waste of bandwidth. Same with API versioning. Most APIs are stuck at v1 forever. It never changes. It never gets verified. It gets hard coded all over the place. All for the option to, maybe introduce a v2 on the same server. Seems like a lot of premature optimization for not a whole lot of gain.
The number of situations where I have had to do miserable things in file formats (admittedly not APIs) to handle extending a format that was rushed together by a previous developer who did not make it extensible or support future versions makes me think that versioning is really important.
Little company-specific binary file formats are just the worst.