«Как создать экземпляр класса контроллера API в контроллере MVC?»
Нет, это не очень хорошая идея, и она все равно не сработает. Вы могли бы сделать HTTP-запрос, как вы упомянули, но он не настолько эффективен, если все уже является частью приложения.
Но если функциональность, которая на самом деле получает данные, находится в отдельном классе, вы можете вызвать соответствующий метод этого класса и получить данные напрямую - вероятно, лучше получить их как переменную, чем в любом случае JSON.
Это все о дизайне вашего приложения - процесс извлечения данных (например, из базы данных) должен быть функционально отделен от процесса предоставления его пользователю (например, в виде JSON через контроллер API). Поэтому любой код должен вызывать функцию извлечения данных, а не только API.
Концептуально вы можете думать о них как о различных слоях функциональности. Это распространенная архитектурная модель в программном обеспечении - уровень представления, (необязательно) уровень логики и уровень данных.