take care of not exceed API hourly limit