Something that is overlooked. Using the API doesn't restrict any more or less access, it will just allow you to "mask" that access. For example, if you create a guest ambassador which is about the most restrictive write access you can have, this user will have an API key, all permissions that you would have via logged into the dashboard you would have via the API (assuming there is an API call for those functions they are allowed to do)..
You could make a front end web service to your end users that would mask the API key so to that end user never gets their hands on it. Keeping the API key hidden and out of people's hands is vital, if they have access to the key they have access to the permissions to that user/key and could really do some damage if the user had full permissions.