Тебе нужен кеш.
Кеш - это хранилище, где каждый блок данных имеет как минимум два параметра: идентификатор и время жизни.
В простейшем случае это папка с файлами, где имя файла - это идентификатор, а время жизни вычисляется по разнице времени модификации файла и текущего времени.
Идентификатор однозначно идентифицирует блок данных. Обычно идентификатор - это хэш от сериализованного массива, в который помещают всё параметры, от которых зависит содержимое блока данных.
Например если данные на api зависят только от пути - айди это хэш от пути. А если ещё и от get-параметров, то к пути нужно добавить и эти параметры.
В таком случае, прежде чем обращаться к api, нужно посчитать хэш от запроса, и проверить, есть ли файл с таким именем в папке кеша, и не слишком ли он старый, и либо отдать данные из файла, либо обратиться к api, перезаписать файл полученными данными, и отдать данные.
Но вместо того, чтобы во всё это вникать и пилить велосипеды, лучше просто подключить в композере любой из популярных кешей, он не только будет работать лучше самописного, но и предоставит множество инструментов для обслуживания кеша.