First pass with proper API format