> HTTP/HTML is also an API, just a bit more cumbersome to parse than JSON.
No it's not, HTML can change anytime. It is meant for human consumption. "API" has the word "Interface" in it because there is a well defined interface to a service, and is documented, and is meant for machine use predominantly.
> API key
While I agree with you, I also think it is important to be able to disable applications that might be misusing the API quickly.
Has some serious restrictions in its use. You are not allowed to "cache" the data for more than 1 day? Strange.
And of course you need an "API key". It is public data, just make it public. HTTP/HTML is also an API, just a bit more cumbersome to parse than JSON.