Это один из тех вопросов, на который нет «лучшего» ответа.
Все, что вы можете сделать, это посмотреть на варианты и выбрать то, что лучше всего подходит для вашего сценария.
Как правило, я лично избегаю возврата 404. Причина в том, что неясно, почему вы получили 404. Вы можете получить 404, потому что ваш URL неверен, поэтому, если вы сделаете выбор дизайна, чтобы вернуть 404, когда данных нет, то вы попадаете в неясную ситуацию. Откуда ты знаешь, почему у тебя 404? Это не хорошо.
Возвращение 200 с пустым массивом вполне нормально.
Возвращение 204 также отлично.
Важным моментом является выбор, согласованность и документирование выбора, чтобы пользователи вашего API знали, что вы сделали этот выбор и почему.
Последовательность и ясность, стремитесь к этому.