In fact, it's a core feature of GData: https://developers.google.com/gdata/docs/json#Request
That's not to say the API will never change, but if it does, it will be documented here: https://developers.google.com/google-apps/spreadsheets/
(Disclaimer: I used to be the Google Developer Relations engineer responsible for Spreadsheets, but that was ~4 years ago.)
We've sent people off into the caching world[4] to fit it on our end, but your criticism is unfortunately spot-on.
[1] https://github.com/jsoma/tabletop
[2] https://github.com/jsoma/tabletop#okay-wait-weve-got-a-big-p...
[3] http://productforums.google.com/forum/#!category-topic/docs/...
But I stand by the fact that this seems like hacking an undocumented feature: "Copy the key=... part [...] and put it into this URL: [...]", which means it could easily be modified/removed with no notice period, and is therefore risky in a production system, no?
No, the key value for use in the API being the same that is displayed in the browser URL when working with the sheet is a documented feature:
https://developers.google.com/google-apps/spreadsheets/#retr...
The alt=json thing is a documented common feature of Google Data APIs, and the current Google Spreadsheets API is the target of the link in the list of Google Data APIs titled "Google Spreadsheets Data API". OTOH, the current v3 Spreadsheets API no longer has "Data" in the name, and there is a note on the Data APIs documentation that some Google Data APIs have been replaced with newer APIs that aren't Google Data APIs.
So, its at best an ambiguously-documented feature.
Edit: it has been pointed out that the criticism of their documented/public APIs may be unjustified. The issue here is that this particular feature is undocumented