completed api interface