build api from scratch