api interface