Мы разрабатываем CRM целиком. Backend у нас отдает json данные через api, а fronend на js распихивает этот json "по полочкам".
С curl магия какая-то, не очень ясно, что вы им делаете.
У вас на мой взгляд лишние действия: данные из api получили, эти данные скормили своему генератору, потом в результаты генератора еще данных вставили (так же?)
Если я верно понял, то вам надо исключить либо второе, либо третье - данные из api обрабатывать один раз.