router api implementation