{"status":"success","code":200,"message":"OK","data":{"name":"Creative Zenith API","description":"Toyota Campaign Generation Platform - AI-powered campaign creation using Google Generative AI","version":"0.1.0","environment":"production","documentation":{"swagger_ui":"/docs","redoc":"/redoc","message":"Visit /docs for interactive API documentation"},"authentication":{"type":"Dual-header: Bearer + X-Session-Token","endpoint":"/api/v1/auth/sessions/create","instructions":"Create a session to get your session token, then include both 'Authorization: Bearer <identity-token>' and 'X-Session-Token: <session-token>' on every request."},"ai_models":{"text_generation":"Gemini 2.5 Flash / Gemini 3 Pro","image_generation":"Gemini 3 Pro Image Preview","video_generation":"Veo 3.1 Generate"},"endpoints":{"health":"/health","authentication":{"login":"GET /api/v1/auth/login (dev only)","logout":"POST /api/v1/auth/logout","create_session":"POST /api/v1/auth/sessions/create"},"smoke_test":{"test_write":"POST /api/v1/smoke/test-write"},"campaign_briefs":{"generate":"POST /api/v1/sessions/{session_id}/campaign-brief/generate (body includes use_brand_asset: 'Yes'|'No', default 'Yes')","revise":"PUT /api/v1/sessions/{session_id}/campaign-brief/revise","get":"GET /api/v1/sessions/{session_id}/campaign-brief"},"customer_personas":{"generate":"POST /api/v1/sessions/{session_id}/customer-persona/generate","revise":"PUT /api/v1/sessions/{session_id}/customer-persona/{id}/revise","edit":"PATCH /api/v1/sessions/{session_id}/customer-persona/{id}/edit","list":"GET /api/v1/sessions/{session_id}/customer-persona","get":"GET /api/v1/sessions/{session_id}/customer-persona/{id}"},"campaign_concepts":{"generate":"POST /api/v1/sessions/{session_id}/campaign-concept/generate","revise":"PUT /api/v1/sessions/{session_id}/campaign-concept/{id}/revise","edit":"PATCH /api/v1/sessions/{session_id}/campaign-concept/{id}/edit","list":"GET /api/v1/sessions/{session_id}/campaign-concept","get":"GET /api/v1/sessions/{session_id}/campaign-concept/{id}"},"campaign_images":{"generate":"POST /api/v1/sessions/{session_id}/campaign-image/generate (body: ImageGenerateRequest JSON; includes num_of_campaign_image and optional reference_images)","regenerate":"PUT /api/v1/sessions/{session_id}/campaign-image/{id}/regenerate","list":"GET /api/v1/sessions/{session_id}/campaign-image","get":"GET /api/v1/sessions/{session_id}/campaign-image/{id}"},"storyboards":{"generate_input":"POST /api/v1/sessions/{session_id}/storyboards/generate-input (body: campaign_concept_id: [id,...], customer_persona_id, num_of_scene)","generate":"POST /api/v1/sessions/{session_id}/storyboards/generate (campaign_concept_id accepts list in body; body includes apply_brand_guideline: bool)","revise":"PATCH /api/v1/sessions/{session_id}/storyboards/{storyboard_id}/revise","list":"GET /api/v1/sessions/{session_id}/storyboards","get":"GET /api/v1/sessions/{session_id}/storyboards/{storyboard_id}"},"scenes":{"generate_video":"POST /api/v1/sessions/{session_id}/storyboards/{storyboard_id}/scenes/{scene_id}/videos/generate (body includes apply_brand_guideline: bool, num_videos: int, default 1)","merge_videos":"POST /api/v1/sessions/{session_id}/storyboards/{storyboard_id}/scenes/videos/merge","list":"GET /api/v1/sessions/{session_id}/storyboards/{storyboard_id}/scenes","get":"GET /api/v1/sessions/{session_id}/storyboards/{storyboard_id}/scenes/{scene_id}"},"scene_images":{"generate":"POST /api/v1/sessions/{session_id}/storyboards/{storyboard_id}/scenes/{scene_id}/scene-image/generate","regenerate":"PATCH /api/v1/sessions/{session_id}/storyboards/{storyboard_id}/scenes/{scene_id}/scene-image/{frame_id}/regenerate","list":"GET /api/v1/sessions/{session_id}/storyboards/{storyboard_id}/scenes/{scene_id}/scene-image","get":"GET /api/v1/sessions/{session_id}/storyboards/{storyboard_id}/scenes/{scene_id}/scene-image/{frame_id}"},"scene_frames":{"generate":"POST /api/v1/sessions/{session_id}/storyboards/{storyboard_id}/scenes/{scene_id}/scene-frame/generate","regenerate":"PATCH /api/v1/sessions/{session_id}/storyboards/{storyboard_id}/scenes/{scene_id}/scene-frame/{frame_id}/regenerate","list":"GET /api/v1/sessions/{session_id}/storyboards/{storyboard_id}/scenes/{scene_id}/scene-frame/generated-frames","get":"GET /api/v1/sessions/{session_id}/storyboards/{storyboard_id}/scenes/{scene_id}/scene-frame/generated-frames/{generated_frame_id}","extract":"POST /api/v1/sessions/{session_id}/storyboards/{storyboard_id}/scenes/{scene_id}/scene-frame/extract"}}}}