feat: add API documentation