client-side api reflection