Сделай систему токенов, привязанных к клиенту определенному. Самое просто решение валидации запроса за 5 минут:
1) Придумываешь секретное слово
2) Хэшируешь его и запрос из клиента:
$keyword = 'шифровочка';
$q = '123';
$hash = md5($keyword.$q); //089580e98caf60967d356e5cc3b32046
3) Шлешь запрос:
https://example.com/api/test?q=123&hash=089580e98c...
4) Сверяешь его на сервере по такому же слову и если все ОК - пропускаешь
if(md5($keyword.$_GET['q']) == $_GET['hash']) echo 'OK';
Это все очень грубо, есть куча готовых решений и алгоритмов. Можешь посмотреть пример OAuth.