What would be most elegant way to replicate data contents periodically into a MySQL table?
If you don't need to retain the data from the previous day when you update the data, you could do this without downtime:

Day 1:


insert data from API into Table1


Day 2+:


create a new table with the same structure as Table1


create NewTable like Table1;


insert API data into NewTable (note: app is still using Table1 at this point)
switch out the tables in one statement


rename Table1 to OldTable, NewTable to Table1;


drop OldTable now if you want to, or keep some archives