Если закрыть сам переход юзера по маршруту и просмотр json то сделать middleware isAjax c проверкой
if (!$request->ajax()) {
abort(404);
}
return $next($request);
При попытке зайти отдаст 404. Но это не "защита" т.к. содержимое в network всегда есть в полном составе. Лучшая защита это отдавать только те данные, которые юзер видит на странице и не больше. Т.е. использовать API Resources, protected $hidden в моделях и точно составлять json ответ