Unified action and AJAX API