API and model