В старой
книжке по юзабилити было сказано примерно так:
0,1 s (или 100 ms) - предел, до которого пользователю кажется, что система работает мгновенно и никаких прогресс баров не требуется.
1 s (или 1000 ms) - предел, до которого пользователь замечает небольшую задержку, но в целом ему кажется, что все работает нормально.
10 s (или 10 000 ms) - пользователь перестает следить за процессом и ему кажется что система подвисла.
В целом логика проста: меньше - лучше. Думаю, что предел когда все можно считать OK - до 1 секунды, лучше 500 ms (если конечно речь не про вызов API в цикле - тогда надо чтобы все запросы уложились в этот предел). Если отклик больше имеет смысл для той системы (обычно некий пользоваельский интерфейс), которая использует API - добавить какую-то анимацию вроде индикатора загрузки - в этом случае пользователь спокойней переносит б0льшие интервалы отклика, так как видит что система что-то делает. Обычно в веб приложении, которое лезет за данными (особенно если это не по одному элементу а обработка пакетом) в какие-то внешние системы делают индикатор. Можно довольно просто навесить какую-то анимацию на все AJAX вызовы с помощью
api.jquery.com/category/ajax/global-ajax-event-handlers - на старт показывать на завершение скрывать. Есть много готовых решений.