js api listener