{"service":"Video Planner API","version":"2.5.0","endpoints":{"/start-pipeline":"POST - Start full pipeline as background job (Redis queue). Returns immediately, updates Supabase in real-time","/pipeline-status/{uuid}":"GET - Get current pipeline status","/queue-stats":"GET - Get queue statistics (pending, processing, completed, failed)","/highlevel":"POST - High-level planner with Claude Opus (SSE streaming). Supports: standard, product, and RXV modes","/edit":"POST - Edit plan with Claude Sonnet (SSE streaming)","/edit-lowlevel":"POST - Edit low-level prompts with Claude Sonnet (SSE streaming)","/lowlevel":"POST - Low-level builder with Modal finetuned model (SSE streaming)","/voiceover":"POST - Generate voiceover narration script with Claude Opus (SSE streaming). 2 words/second pacing","/edit-voiceover":"POST - Edit voiceover script with Claude Opus (SSE streaming)","/analyze-styles":"POST - Analyze scene prompts for stylistic inconsistencies (returns analysis without changes)","/normalize-styles":"POST - Detect and fix stylistic differences between scenes (SSE streaming)","/scan-assets":"POST - Scan plan for recurring assets and generate asset reference images (SSE streaming)","/generate-frames":"POST - Generate frame images for ALL Veo scenes (SSE streaming)","/generate-scene-frames":"POST - Generate frame images for a SINGLE Veo scene (SSE streaming) - basic progressive generation","/generate-scene-frames-with-assets":"POST - Generate frame images for a SINGLE Veo scene WITH asset tracking (SSE streaming)","/save-plan":"POST - Save completed plan to Supabase","/health":"GET - Health check","/tts":"POST - Text-to-speech via ElevenLabs, stores audio in S3, optionally speed-adjusts video","/edit_image":"POST - Edit/generate image via xai/grok-imagine-image/edit","/edit_video":"POST - Regenerate a Veo scene video via Grok Imagine Video","/edit_remotion":"POST - Edit a Remotion slide scene via Hera API"},"pipeline":{"description":"Use /start-pipeline for resilient, refresh-safe video generation. Progress is streamed to Supabase.","stages":["queued","voiceover","voiceover_complete","highlevel","lowlevel","scan_assets","generating_frames","complete"],"frontend":"Subscribe to Supabase realtime changes on corporate_engine_v2 table for live updates"},"modes":{"standard":"Veo-only cinematic video generation (default)","product":"Product-focused vector animation style","rxv":"Remotion x Veo hybrid - combines cinematic AI video with data visualizations when appropriate"},"post_processing":{"style_normalization":"Use /analyze-styles to detect inconsistencies, then /normalize-styles to fix them. Detects photorealistic, anime, 3D, and other style deviations.","asset_tracking":"Use /scan-assets after low-level prompts are complete, then pass results to /generate-scene-frames-with-assets for visual consistency"},"voiceover":{"generate":"POST /voiceover with {content: string, video_duration_seconds: int}. Returns narration script at 2 words/second.","edit":"POST /edit-voiceover with {original_voiceover: string, edit_request: string}. Returns edited script."},"editor":{"tts":"POST /tts with {job_id, scene_num, text, voice_id?, model_id?, output_format?}","edit_image":"POST /edit_image with {prompt, image_urls, aspect_ratio?}","edit_video":"POST /edit_video with {job_id, scene_num, edit_prompt}","edit_remotion":"POST /edit_remotion with {job_id, scene_num, edit_prompt}"}}