Просто требуйте, чтобы клиенты регистрировались на вашем сайте, создавайте запись в таблице CLIENTS, выдавайте им уникальный, нелегко угадываемый идентификатор, тогда при каждом доступе к API требуется, чтобы идентификатор включался в запрос, либо в GET, либо в POST onв заголовке.
Проверять его при каждом запросе, возвращать код ошибки, если идентификатор отсутствует или недействителен.
Для ограничения скорости вы правы, вам нужна отдельная таблица для хранения счетчика.запросов на клиента, а затем сгенерируйте эти заголовки ответов с помощью счетчиков X-RateLimit.
Это не так сложно, на самом деле.
Я написал API, который делает это для моего проекта, вы можетепосмотрите на исходный код, он находится в папке Api, здесь https://github.com/snytkine/LampCMS/tree/master/lib/Lampcms/Api/
, а точка входа для вызовов API - это https://github.com/snytkine/LampCMS/blob/master/www/api/api.php
URL для добавления нового приложения: http://support.lampcms.com/index.php?a=editapp