After reading many of the posts in this thread (and a couple others), it seems that there is a nomenclature issue. It appears that API, server, and cloud are being used interchangeably in some instances. To level set, API's are a way to expose the functions of a software so external programs can access them. A server (at least as far as we have been discussing) is a device on your local network that allows access to devices outside the network. A/the cloud is a server(s) set up by a company that provides some service that is typically accessed by a smart phone or PC and connects various devices connected to a home network (typically). When these terms are mixed, it confuses the issues we are discussing and makes it appear that there is a conflict of opinions when there may not be.
When I think of an API, I typically think of a library or executable that I can call by some program to get something back (data or action). In my mind, it's simply a black box that I can't see inside of but it does something I only care about the output from. Some manufacturers implement their API through the cloud (e.g., the BloomSky weather station's API is actually a call to a remote web/cloud server rather than to the local hardware), though it is not intrinsically necessary. What I want from an API for this weather station is the data the station is collecting. When I call the API, it connects to the cloud and pulls the stored data and sends it back to me. I would personally prefer it be implemented where the API connects to the local weather station and pulls the data locally without requiring an internet connection. If the BloomSky server ever shuts down, the API is gone and the weather station won't have anywhere to send the data to.
Also, when someone sets up a network server and accesses it from a remote location, this is not exactly the same as a cloud. And, if that is the preferred name for that server, the complaint/concern people have posted here are not related to that approach. The only concern that has been cited about the cloud is strictly related to companies own servers that connect to proprietary devices that have no local control/data available to harvest.
I looked at Roku, Fire, etc last year and was about to order one of them. But, I found out that my network connection was too slow and my TV didn't support the connections for any devices. I'd have to upgrade my internet subscription, buy the streaming device, pay a subscription, get a new TV, a new receiver, a new DVD/BD player, etc just to watch free movies. That free service started to look pretty expensive.