new api hook