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