full API seperated