API functional