HTTPS делает только две вещи:
* Дайте вам теплое нечеткое ощущение, что вы общаетесь с нужным сервером
* Используйте шифрование для предотвращения подслушивания и взлома.
Это не ограничивает доступ к вашему API. Использование HTTPS для конфиденциальных данных является обязательным, поэтому используйте его. Вы можете настроить свой сервер переднего плана (например, nginx) для использования исключительно SSL (например, не настраивайте порт 80 / HTTP). Подробнее здесь: http://ariejan.net/2011/10/22/automatically-switch-between-ssl-and-non-ssl-with-nginx-unicorn-rails
Тогда вы захотите, чтобы клиент аутентифицировал себя, чтобы вы могли проверить, что они являются правильной стороной для получения данных от вас. Вы можете использовать OAuth здесь, но, как я понимаю, будет только один клиент, это может быть излишним.
Самая простая форма аутентификации, которую вы можете использовать, требует токена аутентификации. Каждый запрос должен включать этот токен API, который вы можете проверить на стороне сервера. Вы также можете использовать его для записи показателей об использовании.
Таким образом, в основном, требуется ключ API для каждого запроса и настройте свой сервер так, чтобы ваш API был доступен только через HTTPS.