Sort:  

I would say, it would be only allowed on STEEMit.com and possibly certain phone apps that were approved by the witness.

Basically, the bots couldn't use it. It has to be part of the API, but it is restricted to the app. I would prefer it only be STEEMit.com, but I know that would upset a lot of mobile app users.

Oh gotcha. And I assume you mean only self upvotes? That would def reduce a lot of the abuse.

Yup.. I think the apps are useful. The ones that provide information. I think the bots hurt the system.

This wouldn't work at all. You started by saying the solution is to not allow voting, then you had to backtrack because obviously that's a rather significant and important element but you're now really left in the same place you started with. If the problem is voting then even if you were to actually make it so that services like Smart Steem couldn't work (no idea why you think you'd be able to stop that ) you've not stopped most of the ways people could use the system this way.

When you said you want to eliminate voting the only way it starts to make sense is if you were proposing a whole different sort of system, where the value of a vote wasn't dependant on how much Steem Power someone has.

I didn't back track.

When you register an App to an API you get keys, just like your wallet on Steem. The API can determine which keys have access to do upvotes.

Everything else would work, except for upvoting, which is the biggest issue on steem after comment spam. If there was a community method for determine which apps outside of Steemit had the privilege to use the upvote calls in the API, I would be open for that. As long as the community could remove that privilege if it was found to be abused.