{"openapi":"3.1.0","info":{"title":"A3E Ecosystem API","description":"Multimedia production and distribution OS with dual-mode AI engines","version":"2.0.0"},"paths":{"/api/health/ping":{"get":{"summary":"Health Ping","description":"Lightweight reachability check; returns immediately without engine detection.","operationId":"health_ping_api_health_ping_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/admin/restart":{"post":{"summary":"Admin Restart","description":"Self-restart: terminates this process so the watchdog/scheduler relaunches it with fresh code.\nLocalhost-only for security.","operationId":"admin_restart_api_admin_restart_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/health/integrations":{"get":{"summary":"Health Integrations","description":"Integration verification (no live payment). Cryptohopper, Stripe, Ollama.","operationId":"health_integrations_api_health_integrations_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/services/{name}/start":{"post":{"summary":"Api Service Start","description":"Start a GPU service on-demand. Single admission path: gpu_admission + guardrails.md / GPU_LOGIC.md.","operationId":"api_service_start_api_services__name__start_post","parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/services/{name}/stop":{"post":{"summary":"Api Service Stop","description":"Stop a GPU service (frees VRAM). name: ace_step_worker, comfyui, fish_speech, gptsovits, rvc.","operationId":"api_service_stop_api_services__name__stop_post","parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/services/idle-cleanup":{"post":{"summary":"Api Gpu Idle Cleanup","description":"Stop GPU services that have been idle for over 10 minutes.","operationId":"api_gpu_idle_cleanup_api_services_idle_cleanup_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/services/gpu/status":{"get":{"summary":"Api Gpu Services Status","description":"Live GPU service status: which are running, VRAM, prohibited pairs.","operationId":"api_gpu_services_status_api_services_gpu_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/health":{"get":{"summary":"Health","description":"Fast liveness + cheap dependency signals (<~2s typical). Suitable for watchdogs, n8n, and API gateway probes.\n\nDeep checks (engine model enumeration, VRAM, readiness orchestration) live on GET /api/health/full.","operationId":"health_api_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/metrics":{"get":{"summary":"Metrics","description":"Prometheus exposition format for scrape.","operationId":"metrics_api_metrics_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/internal/health-alert":{"post":{"summary":"Internal Health Alert","description":"Accept health alert from n8n on failure. Localhost only.","operationId":"internal_health_alert_api_internal_health_alert_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/internal/add-gumroad-product":{"post":{"summary":"Internal Add Gumroad Product","description":"Add a product to Gumroad. Localhost only. CEO tool.","operationId":"internal_add_gumroad_product_api_internal_add_gumroad_product_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/internal/test-alert":{"post":{"summary":"Internal Test Alert","description":"Send a test alert to verify ALERT_* config. Localhost only.","operationId":"internal_test_alert_api_internal_test_alert_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/internal/backup":{"post":{"summary":"Internal Backup","description":"Trigger backup_a3e.py. Localhost only. For n8n scheduled backup.","operationId":"internal_backup_api_internal_backup_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/drift/check":{"get":{"summary":"Api Drift Check","description":"Drift detector: tool registry + config. For world model ingestion.","operationId":"api_drift_check_api_drift_check_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/drift/approve":{"post":{"summary":"Api Drift Approve","description":"Approve current tool/config state as baseline. Clears drift. For CEO governance loop.","operationId":"api_drift_approve_api_drift_approve_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/planning/create":{"post":{"summary":"Api Create Plan","description":"Create a GPU-aware execution plan from a goal using LangGraph planner.\nBody: {\"goal\": \"...\", \"context\": {...optional...}}","operationId":"api_create_plan_api_planning_create_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/neuralis/route":{"post":{"summary":"Neuralis Route","description":"Route a task to the correct neuralis expert model.\nBody: {\"task\": \"...\", \"domain\": null, \"platform_id\": \"youtube\" | null}\nplatform_id forces neuralis-pf-* (registry key). Task-only routing may also pick a platform specialist.\nReturns: {\"model\": \"neuralis-{expert}|neuralis-pf-*\", \"ranked\": [...]}","operationId":"neuralis_route_api_neuralis_route_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/neuralis/route-audit":{"get":{"summary":"Neuralis Route Audit","description":"Recent Neuralis routing decisions (local JSONL evidence).","operationId":"neuralis_route_audit_api_neuralis_route_audit_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/neuralis/platform-experts":{"get":{"summary":"Neuralis Platform Experts Catalog","description":"Catalog of 30 platform specialists (config); Ollama models neuralis-pf-* may be installed separately.","operationId":"neuralis_platform_experts_catalog_api_neuralis_platform_experts_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/neuralis/experts":{"get":{"summary":"Neuralis Experts","description":"List all available neuralis expert models in Ollama.","operationId":"neuralis_experts_api_neuralis_experts_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/neuralis/rag/index":{"post":{"summary":"Neuralis Rag Reindex","description":"Reindex all A3E system files into the Neuralis RAG ChromaDB collection.","operationId":"neuralis_rag_reindex_api_neuralis_rag_index_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/neuralis/rag/query":{"get":{"summary":"Neuralis Rag Query","description":"Test RAG retrieval: returns top-k chunks matching the query.","operationId":"neuralis_rag_query_api_neuralis_rag_query_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","default":"","title":"Q"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/internal/full-status":{"get":{"summary":"Internal Full Status","description":"Aggregated health for OpenClaw a3e_full_status skill. Localhost only.","operationId":"internal_full_status_api_internal_full_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/order/fail":{"post":{"summary":"Order Fail","description":"Payment revocation: refund or revoke on delivery failure.","operationId":"order_fail_api_order_fail_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/readiness/fast":{"get":{"summary":"Readiness Fast","description":"Lightweight readiness check (2s timeout). Returns cached or quick result for verification.","operationId":"readiness_fast_api_readiness_fast_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/readiness":{"get":{"summary":"Readiness","description":"Stack readiness for pipeline runs: video workflow file + RVC policy (see readiness.py).\nWorker/ComfyUI reported for ops; GPU policy does not require both up at once.","operationId":"readiness_api_readiness_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/system/pipeline":{"get":{"summary":"Api System Pipeline","description":"Design map: how production (video, music, voice, image, text, book) connects to vault\nand how distribution_loop publishes via distribution_engine. For debugging internal flow;\nexternal site changes affect publish step only.","operationId":"api_system_pipeline_api_system_pipeline_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/system/status":{"get":{"summary":"Api System Status","description":"Comprehensive system status for CEO and Electron UI.\nAggregates: Ecosystem, API, CEO, n8n, Ollama, OpenClaw, CrewAI, Frontends,\nGPU services, Trading Bot (status only), Chrome CDP, pipeline readiness.","operationId":"api_system_status_api_system_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/smoke":{"get":{"summary":"Smoke","description":"Phase 6: Lightweight smoke test. Checks readiness and optionally one cheap generation step.\nReturns success when stack can generate; use for deploy verification (~30s).","operationId":"smoke_api_smoke_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Smoke","description":"Phase 6: Lightweight smoke test. Checks readiness and optionally one cheap generation step.\nReturns success when stack can generate; use for deploy verification (~30s).","operationId":"smoke_api_smoke_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/health/full":{"get":{"summary":"Health Full","description":"Comprehensive unified health dashboard.\nChecks: system resources, GPU, 12 services, disk storage, models, VRAM guard, chrome profile.","operationId":"health_full_api_health_full_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/partner/suggestions":{"get":{"summary":"Partner Suggestions","description":"Get proactive partner suggestions (from propose_initiative).","operationId":"partner_suggestions_api_partner_suggestions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/partner/audit":{"get":{"summary":"Partner Audit","description":"Get audit log of tool executions (Phase 6).","operationId":"partner_audit_api_partner_audit_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/config":{"get":{"summary":"Get Config","description":"Get full engine configuration and auto-detected capabilities","operationId":"get_config_api_config_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/config/mode":{"post":{"summary":"Set Mode","description":"Switch between local/cloud/auto mode","operationId":"set_mode_api_config_mode_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModeSwitch"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/config/detect":{"get":{"summary":"Detect Engines","description":"Force re-detection of all engines and models","operationId":"detect_engines_api_config_detect_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/models/download":{"post":{"summary":"Download Model","description":"Download and install a model","operationId":"download_model_api_models_download_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModelDownloadRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/models/{category}/{model_id}":{"delete":{"summary":"Delete Model","description":"Delete an installed model","operationId":"delete_model_api_models__category___model_id__delete","parameters":[{"name":"category","in":"path","required":true,"schema":{"type":"string","title":"Category"}},{"name":"model_id","in":"path","required":true,"schema":{"type":"string","title":"Model Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/generate/text":{"post":{"summary":"Generate Text","description":"Generate text using best available engine","operationId":"generate_text_api_generate_text_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TextGenRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/generate/text-with-confidence":{"post":{"summary":"Generate Text With Confidence","description":"Generate text with AUTOFLOW confidence scoring. Escalates to next model on low confidence.","operationId":"generate_text_with_confidence_api_generate_text_with_confidence_post","parameters":[{"name":"confidence_threshold","in":"query","required":false,"schema":{"type":"number","default":0.5,"title":"Confidence Threshold"}},{"name":"max_retries","in":"query","required":false,"schema":{"type":"integer","default":3,"title":"Max Retries"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TextGenRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/generate/image":{"post":{"summary":"Generate Image","description":"Generate image using FLUX (local), SDXL (local), or Replicate (cloud). Supports variations.","operationId":"generate_image_api_generate_image_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImageGenRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/music/project/{project_id}":{"get":{"summary":"Get Music Project","description":"Load song_dna for a project. Returns project metadata for form population.","operationId":"get_music_project_api_music_project__project_id__get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"summary":"Patch Music Project","description":"Update song_dna (timing, generation, scoring, etc.). For manual candidate override, send scoring.selected_candidate.","operationId":"patch_music_project_api_music_project__project_id__patch","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/voices":{"get":{"summary":"List Rvc Voices","description":"List RVC voice models. Proxies to RVC service when available, else lists MEDIA_DIR/voices.","operationId":"list_rvc_voices_api_voices_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/voices/upload":{"post":{"summary":"Voices Upload Training","description":"Voice Lab: Upload training audio. Returns path + cleaning report.","operationId":"voices_upload_training_api_voices_upload_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_voices_upload_training_api_voices_upload_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/voices/train":{"post":{"summary":"Voices Train","description":"Voice Lab: Start RVC training. audio_path from upload report.","operationId":"voices_train_api_voices_train_post","parameters":[{"name":"voice_id","in":"query","required":true,"schema":{"type":"string","title":"Voice Id"}},{"name":"audio_path","in":"query","required":true,"schema":{"type":"string","title":"Audio Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/voices/{voice_id}/preview":{"get":{"summary":"Voices Preview","description":"Voice Lab: Short test conversion. Returns URL to 5s preview or error.","operationId":"voices_preview_api_voices__voice_id__preview_get","parameters":[{"name":"voice_id","in":"path","required":true,"schema":{"type":"string","title":"Voice Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/voices/gptsovits/test":{"post":{"summary":"Gptsovits Test Voice","description":"Test GPT-SoVITS zero-shot clone: provide ref_audio_path and text, returns audio.","operationId":"gptsovits_test_voice_api_voices_gptsovits_test_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Data"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/voices/save-reference":{"post":{"summary":"Save Voice Reference","description":"Save a voice reference audio for GPT-SoVITS zero-shot cloning.","operationId":"save_voice_reference_api_voices_save_reference_post","parameters":[{"name":"voice_name","in":"query","required":false,"schema":{"type":"string","default":"","title":"Voice Name"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_save_voice_reference_api_voices_save_reference_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/voices/references":{"get":{"summary":"List Voice References","description":"List saved voice references for GPT-SoVITS zero-shot cloning.","operationId":"list_voice_references_api_voices_references_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/voice/upload":{"post":{"summary":"Voice Upload","description":"Upload reference audio for XTTS voice cloning. Returns path for speaker_wav.","operationId":"voice_upload_api_voice_upload_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_voice_upload_api_voice_upload_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/voice/from-upload":{"post":{"summary":"Voice From Upload","description":"Recorded voice upload: save to media/audio, add to vault, return asset. No TTS.","operationId":"voice_from_upload_api_voice_from_upload_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_voice_from_upload_api_voice_from_upload_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/generate/voice":{"post":{"summary":"Generate Voice","description":"Generate voice/TTS using XTTS, Edge TTS, or cloud.","operationId":"generate_voice_api_generate_voice_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoiceGenRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/generate/music":{"post":{"summary":"Generate Music","description":"Generate music using ACE-Step.","operationId":"generate_music_api_generate_music_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MusicRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/acestep/status":{"get":{"summary":"Acestep Status","description":"Check ACE-Step API health, models, and queue stats.","operationId":"acestep_status_api_acestep_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/generate/lyrics":{"post":{"summary":"Generate Lyrics","description":"Generate song lyrics using xAI Grok from prompt, genre, mood.","operationId":"generate_lyrics_api_generate_lyrics_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LyricsGenRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/generate/lyrics-from-audio":{"post":{"summary":"Generate Lyrics From Audio","description":"Extract structured lyrics from audio using Lyrics Generator (Demucs + Whisper + structure detection).\nReturns ACE-Step formatted lyrics and structure JSON. Requires Lyrics Generator at LYRICS_GENERATOR_PATH.","operationId":"generate_lyrics_from_audio_api_generate_lyrics_from_audio_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_generate_lyrics_from_audio_api_generate_lyrics_from_audio_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/music/compose-blueprint":{"post":{"summary":"Compose Blueprint Endpoint","description":"Generate a Song Blueprint using xAI Grok. Returns structured arrangement plan for ACE-Step.","operationId":"compose_blueprint_endpoint_api_music_compose_blueprint_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlueprintRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/music/generate-set":{"post":{"summary":"Generate Set Endpoint","description":"Generate N drafts with different seeds for comparison.","operationId":"generate_set_endpoint_api_music_generate_set_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateSetRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/music/regenerate-section":{"post":{"summary":"Regenerate Section Endpoint","description":"Regenerate a specific time range of an existing track via ACE-Step repaint.","operationId":"regenerate_section_endpoint_api_music_regenerate_section_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegenerateSectionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/music/promote-section":{"post":{"summary":"Promote Section Endpoint","description":"Keep a specific section, regenerate the rest around it.","operationId":"promote_section_endpoint_api_music_promote_section_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromoteSectionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/music/detect-sections":{"post":{"summary":"Detect Sections Endpoint","description":"Detect structural sections of an audio file.","operationId":"detect_sections_endpoint_api_music_detect_sections_post","parameters":[{"name":"audio_path","in":"query","required":true,"schema":{"type":"string","title":"Audio Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/music/project/{project_id}/versions":{"get":{"summary":"Get Project Versions","description":"List all versions with summaries for a project.","operationId":"get_project_versions_api_music_project__project_id__versions_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/music/project/{project_id}/revert/{version}":{"post":{"summary":"Revert Project Version","description":"Revert project to a previous version's params.","operationId":"revert_project_version_api_music_project__project_id__revert__version__post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"version","in":"path","required":true,"schema":{"type":"integer","title":"Version"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/music/project/{project_id}/diff/{v1}/{v2}":{"get":{"summary":"Diff Project Versions","description":"Compare two versions of a project.","operationId":"diff_project_versions_api_music_project__project_id__diff__v1___v2__get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"v1","in":"path","required":true,"schema":{"type":"integer","title":"V1"}},{"name":"v2","in":"path","required":true,"schema":{"type":"integer","title":"V2"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/workers/status":{"get":{"summary":"Worker Pool Status","description":"Get full worker pool status: VRAM, model states, queue depths, active tasks.","operationId":"worker_pool_status_api_workers_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/workers/vram":{"get":{"summary":"Worker Vram","description":"Quick VRAM stats.","operationId":"worker_vram_api_workers_vram_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/workers/warm/{model_name}":{"post":{"summary":"Warm Model","description":"Warm a specific model into GPU memory.","operationId":"warm_model_api_workers_warm__model_name__post","parameters":[{"name":"model_name","in":"path","required":true,"schema":{"type":"string","title":"Model Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/workers/unload/{model_name}":{"post":{"summary":"Unload Model","description":"Unload a model to free VRAM.","operationId":"unload_model_api_workers_unload__model_name__post","parameters":[{"name":"model_name","in":"path","required":true,"schema":{"type":"string","title":"Model Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/jobs":{"get":{"summary":"List Jobs","description":"List all jobs with optional filters.","operationId":"list_jobs_api_jobs_get","parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"job_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Job Type"}},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/jobs/{job_id}":{"get":{"summary":"Get Job Detail","description":"Get full job detail including stages.","operationId":"get_job_detail_api_jobs__job_id__get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/jobs/{job_id}/retry":{"post":{"summary":"Retry Job","description":"Retry a failed/retryable job from the last failed stage.","operationId":"retry_job_api_jobs__job_id__retry_post","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/artifacts":{"get":{"summary":"Search Artifacts","description":"Search artifacts by filters.","operationId":"search_artifacts_api_artifacts_get","parameters":[{"name":"job_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Job Id"}},{"name":"artifact_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Artifact Type"}},{"name":"stage_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage Name"}},{"name":"format","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Format"}},{"name":"model_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Name"}},{"name":"model_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Version"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/artifacts/stats":{"get":{"summary":"Artifact Stats","description":"Storage statistics for all artifacts.","operationId":"artifact_stats_api_artifacts_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/artifacts/{artifact_id}/metadata":{"get":{"summary":"Get Artifact Metadata","description":"Get full metadata for an artifact.","operationId":"get_artifact_metadata_api_artifacts__artifact_id__metadata_get","parameters":[{"name":"artifact_id","in":"path","required":true,"schema":{"type":"string","title":"Artifact Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/artifacts/{artifact_id}/lineage":{"get":{"summary":"Get Artifact Lineage","description":"Get parent or child artifacts in the lineage graph.","operationId":"get_artifact_lineage_api_artifacts__artifact_id__lineage_get","parameters":[{"name":"artifact_id","in":"path","required":true,"schema":{"type":"string","title":"Artifact Id"}},{"name":"direction","in":"query","required":false,"schema":{"type":"string","default":"parents","title":"Direction"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/artifacts/{artifact_id}/url":{"get":{"summary":"Get Artifact Url","description":"Get download URL for an artifact.","operationId":"get_artifact_url_api_artifacts__artifact_id__url_get","parameters":[{"name":"artifact_id","in":"path","required":true,"schema":{"type":"string","title":"Artifact Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/music/extract-instrumental":{"post":{"summary":"Extract Instrumental","description":"Extract instrumentals from a full song. Returns path to instrumental mix.","operationId":"extract_instrumental_api_music_extract_instrumental_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExtractInstrumentalRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/music/extract-vocals":{"post":{"summary":"Extract Vocals","description":"Extract vocals from a full song using HTDemucs. Returns path to isolated vocal track.","operationId":"extract_vocals_api_music_extract_vocals_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExtractVocalsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/music/models/current":{"get":{"summary":"Get Current Music Model","description":"Get the currently loaded ACE-Step model.","operationId":"get_current_music_model_api_music_models_current_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/music/models/switch":{"post":{"summary":"Switch Music Model","description":"Switch ACE-Step to a different model (e.g. acestep-v15-sft for high quality).","operationId":"switch_music_model_api_music_models_switch_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Data"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/music/services/status":{"get":{"summary":"Get Music Services Status","description":"Check status of all music studio services.","operationId":"get_music_services_status_api_music_services_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/music/upload":{"post":{"summary":"Music Upload","description":"Upload reference or source audio for ACE-Step. Returns path for use in queue payload.","operationId":"music_upload_api_music_upload_post","parameters":[{"name":"role","in":"query","required":false,"schema":{"type":"string","default":"source","title":"Role"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_music_upload_api_music_upload_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/music/mix-master":{"post":{"summary":"Mix Master","description":"Mix instrumental + vocal, then master. Returns path to mastered file.","operationId":"mix_master_api_music_mix_master_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MixMasterRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/music/queue":{"post":{"summary":"Queue Music Job","description":"Queue a music generation job. If production_mode=release_package, uses Song Job flow. If async=true, returns task_id/job_id; poll GET /music/job/{task_id} or GET /music/song-job/{job_id}.","operationId":"queue_music_job_api_music_queue_post","parameters":[{"name":"async","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Async"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MusicRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/music/song-job":{"post":{"summary":"Queue Song Job","description":"Queue a Song Job (release package: final_mix, stems, instrumental, acapella, manifest). Returns job_id. Poll GET /api/music/song-job/{job_id}.","operationId":"queue_song_job_api_music_song_job_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MusicRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/music/song-job/{job_id}":{"get":{"summary":"Get Song Job","description":"Poll Song Job status. Returns { status, stage, progress, output_dir?, manifest?, files?, error? }.","operationId":"get_song_job_api_music_song_job__job_id__get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/music/job/{task_id}":{"get":{"summary":"Get Music Job","description":"Poll async music job status. Returns { status: 'queued'|'processing'|'completed'|'failed', file_url?, error?, ... }.","operationId":"get_music_job_api_music_job__task_id__get","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/lora/upload":{"post":{"summary":"Lora Upload","description":"Upload a LoRA file (.safetensors, .pt, .bin) to A3E_TRAINING_PATCHES. Returns path for use in lora_name_or_path.","operationId":"lora_upload_api_lora_upload_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_lora_upload_api_lora_upload_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/lora/train":{"post":{"summary":"Lora Train","description":"Queue a LoRA training job for voice/style fine-tuning.","operationId":"lora_train_api_lora_train_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoraTrainRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/lora/jobs":{"get":{"summary":"List Lora Jobs","description":"List LoRA training jobs.","operationId":"list_lora_jobs_api_lora_jobs_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/lora/sync":{"post":{"summary":"Lora Sync","description":"Scan A3E_TRAINING subdirs (genre folders), queue LoRA training for each with audio files.","operationId":"lora_sync_api_lora_sync_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/lora/patches":{"get":{"summary":"List Lora Patches","description":"List trained LoRA patches in A3E_TRAINING_PATCHES (.safetensors, .pt).","operationId":"list_lora_patches_api_lora_patches_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/lora/available":{"get":{"summary":"List Lora Available","description":"Combined: patches from folder + completed lora_jobs with output_path.","operationId":"list_lora_available_api_lora_available_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/generate/video":{"post":{"summary":"Generate Video","description":"Generate video using HunyuanVideo (local), ComfyUI (local), or Replicate (cloud). Veo is disabled by local-model-only policy.","operationId":"generate_video_api_generate_video_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VideoGenRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/video/ai/status":{"get":{"summary":"Video Ai Status","description":"Check HunyuanVideo 1.5 availability and VRAM.","operationId":"video_ai_status_api_video_ai_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/video/upload":{"post":{"summary":"Video Upload","description":"Upload image (image), music (music), or narration (narration) for video. Returns path.","operationId":"video_upload_api_video_upload_post","parameters":[{"name":"role","in":"query","required":false,"schema":{"type":"string","default":"image","title":"Role"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_video_upload_api_video_upload_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/video/status":{"get":{"summary":"Get Video Engine Status","description":"Check video production engine status (FFmpeg, voices, etc.)","operationId":"get_video_engine_status_api_video_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/video/quick":{"post":{"summary":"Create Quick Video","description":"Quick video generation from a text script.\n\nEach paragraph in the script becomes a slide with voiceover.\nPerfect for social media content.\n\nArgs:\n    script: Text content (paragraphs separated by blank lines)\n    title: Output filename\n    style: Visual style (cyberpunk, neon, minimal, cinematic, corporate, retro)\n    voice: TTS voice name (e.g., en-US-GuyNeural)\n    resolution: portrait (1080x1920), landscape (1920x1080), square (1080x1080)","operationId":"create_quick_video_api_video_quick_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuickVideoRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/video/project":{"post":{"summary":"Create Video Project","description":"Create a video from a detailed project configuration.\n\nAllows full control over each slide, including:\n- Custom text per slide\n- Stock footage/images\n- Duration\n- Text position","operationId":"create_video_project_api_video_project_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VideoProjectRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/video/create":{"post":{"summary":"Create Video Studio","description":"Unified video creation: routes by video_type to quick video, project video, or AI video.\nSupports script, scenes, shot_list, resolution 480p/720p/1080p, camera, duration, export format.","operationId":"create_video_studio_api_video_create_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VideoStudioRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/video/tts":{"post":{"summary":"Generate Tts","description":"Generate text-to-speech audio.\n\nEngines:\n- edge_tts: Microsoft Edge TTS (free, high quality, requires internet)\n- gtts: Google TTS (free, requires internet)\n- pyttsx3: Offline system TTS","operationId":"generate_tts_api_video_tts_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TTSRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/video/voices":{"get":{"summary":"List Tts Voices","description":"List available TTS voices for an engine","operationId":"list_tts_voices_api_video_voices_get","parameters":[{"name":"engine","in":"query","required":false,"schema":{"type":"string","default":"edge_tts","title":"Engine"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/video/stock/search":{"post":{"summary":"Search Stock Footage","description":"Search for free stock videos.\n\nSources:\n- pexels: Requires PEXELS_API_KEY (free at pexels.com/api)\n- pixabay: Requires PIXABAY_API_KEY (free at pixabay.com/api/docs)","operationId":"search_stock_footage_api_video_stock_search_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StockSearchRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/video/styles":{"get":{"summary":"List Video Styles","description":"List available video visual styles","operationId":"list_video_styles_api_video_styles_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/generate/book":{"post":{"summary":"Generate Book","description":"Generate book outline and save to vault. Use /generate/book/{id}/generate to create chapters.","operationId":"generate_book_api_generate_book_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BookGenRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/generate/book/{book_id}/chapter/{chapter_num}":{"post":{"summary":"Generate Book Chapter","description":"Generate a single chapter for a book. Requires outline_generated status.","operationId":"generate_book_chapter_api_generate_book__book_id__chapter__chapter_num__post","parameters":[{"name":"book_id","in":"path","required":true,"schema":{"type":"string","title":"Book Id"}},{"name":"chapter_num","in":"path","required":true,"schema":{"type":"integer","title":"Chapter Num"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/generate/book/{book_id}/generate":{"post":{"summary":"Generate Book Full","description":"Generate all chapters for a book sequentially. Updates status per chapter.","operationId":"generate_book_full_api_generate_book__book_id__generate_post","parameters":[{"name":"book_id","in":"path","required":true,"schema":{"type":"string","title":"Book Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/generate/book/{book_id}/export":{"post":{"summary":"Export Book","description":"Export book to PDF or EPUB. Requires completed status. Validates output (exists, size>1KB, SHA-256) and writes rights_metadata.json.","operationId":"export_book_api_generate_book__book_id__export_post","parameters":[{"name":"book_id","in":"path","required":true,"schema":{"type":"string","title":"Book Id"}},{"name":"format","in":"query","required":false,"schema":{"type":"string","default":"pdf","title":"Format"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/generate/book/{book_id}/distribute":{"post":{"summary":"Distribute Book","description":"Distribution hook: Gumroad upload, Etsy listing, or direct website publishing.","operationId":"distribute_book_api_generate_book__book_id__distribute_post","parameters":[{"name":"book_id","in":"path","required":true,"schema":{"type":"string","title":"Book Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BookDistributeRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/conversations":{"get":{"summary":"List Conversations","description":"List all conversations, optionally filtered by context","operationId":"list_conversations_api_conversations_get","parameters":[{"name":"context","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Context"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Create Conversation","description":"Create a new conversation","operationId":"create_conversation_api_conversations_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/conversations/{convo_id}":{"get":{"summary":"Get Conversation","description":"Get a specific conversation","operationId":"get_conversation_api_conversations__convo_id__get","parameters":[{"name":"convo_id","in":"path","required":true,"schema":{"type":"string","title":"Convo Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Delete Conversation","description":"Delete a conversation","operationId":"delete_conversation_api_conversations__convo_id__delete","parameters":[{"name":"convo_id","in":"path","required":true,"schema":{"type":"string","title":"Convo Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/chat/{convo_id}":{"post":{"summary":"Chat","description":"Send a message in a conversation","operationId":"chat_api_chat__convo_id__post","parameters":[{"name":"convo_id","in":"path","required":true,"schema":{"type":"string","title":"Convo Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/vault":{"get":{"summary":"List Vault","description":"List assets in vault","operationId":"list_vault_api_vault_get","parameters":[{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}},{"name":"skip","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Skip"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/vault/stats":{"get":{"summary":"Vault Stats","description":"Get vault statistics by type","operationId":"vault_stats_api_vault_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/vault/summary":{"get":{"summary":"Vault Summary","description":"Vault summary for CEO, CrewAI, n8n. Returns by_type and total (alias for vault/stats in world_model format).","operationId":"vault_summary_api_vault_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/vault/{asset_id}":{"get":{"summary":"Get Asset","description":"Get a specific asset","operationId":"get_asset_api_vault__asset_id__get","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","title":"Asset Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Delete Asset","description":"Delete an asset","operationId":"delete_asset_api_vault__asset_id__delete","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","title":"Asset Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/distribution/status":{"get":{"summary":"Distribution Status","description":"Get distribution engine status including Chrome profile config.","operationId":"distribution_status_api_distribution_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/distribution/session-health":{"get":{"summary":"Distribution Session Health","description":"Check login status for each Playwright-dependent platform. Returns per-platform status.","operationId":"distribution_session_health_api_distribution_session_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/distribution/platforms":{"get":{"summary":"Distribution Platforms","description":"List all supported distribution platforms.","operationId":"distribution_platforms_api_distribution_platforms_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/distribution/config":{"get":{"summary":"Get Distribution Config","description":"Get current distribution config. One profile for login checks and publishing.","operationId":"get_distribution_config_api_distribution_config_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Set Distribution Config","description":"Set Chrome profile for browser-based publishing. Use user_data_dir + profile_dir (same as Settings) or legacy chrome_profile_path.","operationId":"set_distribution_config_api_distribution_config_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DistributionConfigRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/distribution/credentials":{"post":{"summary":"Add Distribution Credentials","description":"Add API credentials for a platform (GitHub, GitLab, NPM, PyPI, Mastodon instance).","operationId":"add_distribution_credentials_api_distribution_credentials_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformCredentialsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/distribution/credentials/{platform}":{"delete":{"summary":"Remove Distribution Credentials","description":"Remove API credentials for a platform.","operationId":"remove_distribution_credentials_api_distribution_credentials__platform__delete","parameters":[{"name":"platform","in":"path","required":true,"schema":{"type":"string","title":"Platform"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/distribution/publish":{"post":{"summary":"Publish Content","description":"Publish content to one or more platforms using the shared Chrome profile.\nNo credentials needed for browser-based platforms -- the user is already logged in.\nAPI-based platforms (github, gitlab, npm, pypi) still need API tokens via /distribution/credentials.\nheadless=False (default): show browser so user can see the publish flow.","operationId":"publish_content_api_distribution_publish_post","parameters":[{"name":"headless","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Headless"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublishRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/factory/metrics":{"get":{"summary":"Get Factory Metrics","description":"Phase 4: Generated today, published today, needs attention (for factory dashboard).","operationId":"get_factory_metrics_api_factory_metrics_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/distribution/logs":{"get":{"summary":"Get Distribution Logs","description":"Get distribution history: DB distribution_logs + file-based distribution_loop_log + publish_ledger. Query by status, platform, date_from, date_to.","operationId":"get_distribution_logs_api_distribution_logs_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}},{"name":"platform","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platform"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"date_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date From"}},{"name":"date_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date To"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/distribution/log":{"get":{"summary":"Get Distribution Engine Log","description":"Get in-memory distribution log from current session.","operationId":"get_distribution_engine_log_api_distribution_log_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/distribution/proof-summary":{"get":{"summary":"Distribution Proof Summary","description":"Summarize publish proof compliance from publish_ledger.","operationId":"distribution_proof_summary_api_distribution_proof_summary_get","parameters":[{"name":"hours","in":"query","required":false,"schema":{"type":"integer","default":24,"title":"Hours"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/distribution/browser/start":{"post":{"summary":"Start Distribution Browser","description":"Start the shared Chrome profile browser for distribution.","operationId":"start_distribution_browser_api_distribution_browser_start_post","parameters":[{"name":"headless","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Headless"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/distribution/browser/stop":{"post":{"summary":"Stop Distribution Browser","description":"Stop the shared browser.","operationId":"stop_distribution_browser_api_distribution_browser_stop_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/distribution/browser/profiles":{"get":{"summary":"List Chrome Profiles","description":"Detect available Chrome profiles (dedicated A3E Chrome via A3E_CHROME_USER_DATA + system Chrome).","operationId":"list_chrome_profiles_api_distribution_browser_profiles_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/distribution/browser/test":{"post":{"summary":"Test Distribution Browser","description":"Test functional connection to the dedicated browser. Returns connected true/false and error reason if failed.","operationId":"test_distribution_browser_api_distribution_browser_test_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/distribution/dry-run":{"post":{"summary":"Distribution Dry Run","description":"Phase 5d: Fill forms but stop before clicking publish. Returns screenshot for verification.\nUse to verify selectors and form flow without actually publishing.","operationId":"distribution_dry_run_api_distribution_dry_run_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublishRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/platforms":{"get":{"summary":"List Platforms","description":"List all available platforms","operationId":"list_platforms_api_platforms_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/platforms/categories":{"get":{"summary":"List Platform Categories","description":"List platform categories","operationId":"list_platform_categories_api_platforms_categories_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/channels":{"get":{"summary":"List Channels","description":"List connected channels","operationId":"list_channels_api_channels_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Create Channel","description":"Add a new channel connection","operationId":"create_channel_api_channels_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChannelCreate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/channels/{ch_id}/connect":{"put":{"summary":"Connect Channel","description":"Connect/disconnect a channel","operationId":"connect_channel_api_channels__ch_id__connect_put","parameters":[{"name":"ch_id","in":"path","required":true,"schema":{"type":"string","title":"Ch Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/channels/{ch_id}":{"delete":{"summary":"Delete Channel","description":"Delete a channel connection","operationId":"delete_channel_api_channels__ch_id__delete","parameters":[{"name":"ch_id","in":"path","required":true,"schema":{"type":"string","title":"Ch Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/channels/quota":{"get":{"summary":"Get Channels Quota","description":"Phase 2: Today's posts and remaining quota per channel; cap from A3E_POSTS_PER_DAY_CAP.","operationId":"get_channels_quota_api_channels_quota_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/channels/{ch_id}/publish":{"post":{"summary":"Publish To Channel","description":"Publish an asset to a channel. Respects 6 posts/day per platform cap.","operationId":"publish_to_channel_api_channels__ch_id__publish_post","parameters":[{"name":"ch_id","in":"path","required":true,"schema":{"type":"string","title":"Ch Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChannelPublishRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/missions":{"get":{"summary":"List Missions","description":"List all missions","operationId":"list_missions_api_missions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Create Mission","description":"Create a new mission","operationId":"create_mission_api_missions_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MissionCreate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/missions/{m_id}":{"get":{"summary":"Get Mission","description":"Get a specific mission","operationId":"get_mission_api_missions__m_id__get","parameters":[{"name":"m_id","in":"path","required":true,"schema":{"type":"string","title":"M Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Delete Mission","description":"Delete a mission","operationId":"delete_mission_api_missions__m_id__delete","parameters":[{"name":"m_id","in":"path","required":true,"schema":{"type":"string","title":"M Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/missions/{m_id}/run":{"post":{"summary":"Run Mission","description":"Execute a mission - runs each step (generate_image, generate_voice, publish, etc.). 30-min timeout.","operationId":"run_mission_api_missions__m_id__run_post","parameters":[{"name":"m_id","in":"path","required":true,"schema":{"type":"string","title":"M Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/dashboard/stats":{"get":{"summary":"Dashboard Stats","description":"Get dashboard overview statistics including assets_produced_24h, publish_success_rate_24h, disk_free_gb.","operationId":"dashboard_stats_api_dashboard_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/analytics":{"get":{"summary":"Analytics Overview","description":"Full business intelligence report: distribution, vault, revenue.","operationId":"analytics_overview_api_analytics_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":30,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/analytics/distribution":{"get":{"summary":"Analytics Distribution","description":"Distribution performance: success/fail by platform and brand.","operationId":"analytics_distribution_api_analytics_distribution_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":30,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/analytics/vault":{"get":{"summary":"Analytics Vault","description":"Vault inventory and production metrics.","operationId":"analytics_vault_api_analytics_vault_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/vault/index":{"post":{"summary":"Api Vault Index","description":"Trigger vault RAG index rebuild. Indexes vault text, ebook, product catalog, niches.","operationId":"api_vault_index_api_vault_index_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/analytics/revenue":{"get":{"summary":"Analytics Revenue","description":"Revenue summary from all sources.","operationId":"analytics_revenue_api_analytics_revenue_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":30,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/analytics/revenue/gumroad":{"get":{"summary":"Analytics Gumroad","description":"Fetch latest Gumroad sales data.","operationId":"analytics_gumroad_api_analytics_revenue_gumroad_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":30,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/analytics/revenue/stripe":{"get":{"summary":"Analytics Stripe","description":"Fetch latest Stripe payment data.","operationId":"analytics_stripe_api_analytics_revenue_stripe_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":30,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/analytics/report":{"get":{"summary":"Analytics Text Report","description":"Generate human-readable business report.","operationId":"analytics_text_report_api_analytics_report_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":30,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/analytics/send-daily-report":{"post":{"summary":"Send Daily Report Email Endpoint","description":"Generate daily report and email it via ALERT_* SMTP. Called by n8n at 22:30.","operationId":"send_daily_report_email_endpoint_api_analytics_send_daily_report_post","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/brands":{"get":{"summary":"List Brands Endpoint","description":"List all brand configs. Optional filter by type (business, niche).","operationId":"list_brands_endpoint_api_brands_get","parameters":[{"name":"brand_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Brand Type"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Save Brand Endpoint","description":"Create or update a brand config.","operationId":"save_brand_endpoint_api_brands_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/brands/{brand_id}":{"get":{"summary":"Get Brand Endpoint","description":"Get a specific brand config.","operationId":"get_brand_endpoint_api_brands__brand_id__get","parameters":[{"name":"brand_id","in":"path","required":true,"schema":{"type":"string","title":"Brand Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/products/catalog":{"get":{"summary":"Get Products Catalog","description":"Get full products catalog from config.","operationId":"get_products_catalog_api_products_catalog_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/content-types":{"get":{"summary":"Get Content Types","description":"Get content types config.","operationId":"get_content_types_api_content_types_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/niches":{"get":{"summary":"Get Niches","description":"Get niches_brands config.","operationId":"get_niches_api_niches_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/settings":{"get":{"summary":"Get Settings","description":"Get global settings","operationId":"get_settings_api_settings_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"put":{"summary":"Update Settings","description":"Update global settings","operationId":"update_settings_api_settings_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SettingsUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/platforms/status":{"get":{"summary":"Platforms Status","description":"Return connection status for all 20 registry platforms. Uses dedicated Chrome profile from settings.","operationId":"platforms_status_api_platforms_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/platforms/test/{platform_id}":{"post":{"summary":"Platform Test Connection","description":"Run connection test for one platform. Returns { connected, detail }.","operationId":"platform_test_connection_api_platforms_test__platform_id__post","parameters":[{"name":"platform_id","in":"path","required":true,"schema":{"type":"string","title":"Platform Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/platforms/open/{platform_id}":{"post":{"summary":"Platform Open Login","description":"Open a visible browser window to the platform's login URL (same Chrome profile).","operationId":"platform_open_login_api_platforms_open__platform_id__post","parameters":[{"name":"platform_id","in":"path","required":true,"schema":{"type":"string","title":"Platform Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/media/{media_type}/{filename}":{"get":{"summary":"Serve Media","description":"Serve generated media files","operationId":"serve_media_api_media__media_type___filename__get","parameters":[{"name":"media_type","in":"path","required":true,"schema":{"type":"string","title":"Media Type"}},{"name":"filename","in":"path","required":true,"schema":{"type":"string","title":"Filename"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/media/music/uploads/{filename}":{"get":{"summary":"Serve Music Upload","description":"Serve music uploads (reference, source, etc.) from MEDIA_DIR/music/uploads/.","operationId":"serve_music_upload_api_media_music_uploads__filename__get","parameters":[{"name":"filename","in":"path","required":true,"schema":{"type":"string","title":"Filename"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/media/music/{job_id}/{filename}":{"get":{"summary":"Serve Music Job File","description":"Serve Song Job files from MEDIA_DIR/music/{job_id}/{filename}.","operationId":"serve_music_job_file_api_media_music__job_id___filename__get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"filename","in":"path","required":true,"schema":{"type":"string","title":"Filename"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/media/music/live_studio/{filename}":{"get":{"summary":"Serve Live Studio","description":"Serve Live Studio mix/master outputs.","operationId":"serve_live_studio_api_media_music_live_studio__filename__get","parameters":[{"name":"filename","in":"path","required":true,"schema":{"type":"string","title":"Filename"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/media/voice/preview/{filename}":{"get":{"summary":"Serve Voice Preview","description":"Serve Voice Lab preview conversions.","operationId":"serve_voice_preview_api_media_voice_preview__filename__get","parameters":[{"name":"filename","in":"path","required":true,"schema":{"type":"string","title":"Filename"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/media/vault_final/{filename}":{"get":{"summary":"Serve Vault Final","description":"Serve pipeline final outputs from Vault (e.g. final MP4).","operationId":"serve_vault_final_api_media_vault_final__filename__get","parameters":[{"name":"filename","in":"path","required":true,"schema":{"type":"string","title":"Filename"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/system/open-folder":{"post":{"summary":"Open Folder","description":"Open a folder in the system file explorer.","operationId":"open_folder_api_system_open_folder_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Data"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/pipeline/run":{"post":{"summary":"Pipeline Run","description":"Start a pipeline run in the background. Returns run_id for status polling.","operationId":"pipeline_run_api_pipeline_run_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineRunRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/pipeline/status/{run_id}":{"get":{"summary":"Pipeline Status","description":"Get pipeline run status, stage, progress, and outputs.","operationId":"pipeline_status_api_pipeline_status__run_id__get","parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/pipeline/manifest":{"get":{"summary":"Pipeline Manifest","description":"North Star §7 P2: run manifest + vault pointers for monitoring and UI.\nIn-memory runs (same as /pipeline/status) plus recent finals under vault_final.","operationId":"pipeline_manifest_api_pipeline_manifest_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/pipeline/run_test":{"post":{"summary":"Pipeline Run Test","description":"Phase 5: End-to-end test. Runs pipeline with short script, runs validation, returns structured result.\nSimulated post is skipped (dry run).","operationId":"pipeline_run_test_api_pipeline_run_test_post","parameters":[{"name":"confirm","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Confirm"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/mission/run_test":{"post":{"summary":"Mission Run Test","description":"Phase 5: End-to-end test via mission. Creates one-off mission with run_pipeline step, runs it, validates output.\nNo real publish (simulated post skipped). Returns pipeline status, validation.valid, and errors.","operationId":"mission_run_test_api_mission_run_test_post","parameters":[{"name":"confirm","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Confirm"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/dev/models":{"get":{"summary":"List Dev Models","description":"DevStudio model list - all local and cloud options with availability flags.","operationId":"list_dev_models_api_dev_models_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/models":{"get":{"summary":"List Chat Models","description":"Chat/COO model list - same as dev/models for dual local/cloud system.","operationId":"list_chat_models_api_models_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/dev/ai-assist":{"post":{"summary":"Dev Ai Assist","description":"AI coding assistant for DevStudio","operationId":"dev_ai_assist_api_dev_ai_assist_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DevAIRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agent/run":{"post":{"summary":"Api Agent Run","description":"Run the A3E agent (ReAct loop with tools). Local agent with Cursor parity.","operationId":"api_agent_run_api_agent_run_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentRunRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agent/index":{"post":{"summary":"Api Agent Index","description":"Trigger codebase indexing for semantic search. Uses sentence-transformers + chromadb when available.","operationId":"api_agent_index_api_agent_index_post","parameters":[{"name":"project_path","in":"query","required":false,"schema":{"type":"string","default":"C:\\A3E_ECOSYSTEM","title":"Project Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/dev/files":{"get":{"summary":"List Dev Files","description":"List files in a directory (real file system access).\n\nArgs:\n    path: Path to list (default: workspace root)\n    max_depth: Maximum depth to recurse (default: 3)\n    show_hidden: Include hidden files (default: False)","operationId":"list_dev_files_api_dev_files_get","parameters":[{"name":"path","in":"query","required":false,"schema":{"type":"string","default":".","title":"Path"}},{"name":"max_depth","in":"query","required":false,"schema":{"type":"integer","default":3,"title":"Max Depth"}},{"name":"show_hidden","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Show Hidden"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/dev/file":{"get":{"summary":"Read Dev File","description":"Read a file's contents (real file system access).","operationId":"read_dev_file_api_dev_file_get","parameters":[{"name":"path","in":"query","required":true,"schema":{"type":"string","title":"Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Write Dev File","description":"Write/save a file (real file system access).","operationId":"write_dev_file_api_dev_file_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DevFileRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Delete Dev File","description":"Delete a file or directory.","operationId":"delete_dev_file_api_dev_file_delete","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DevDeleteRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/dev/rename":{"post":{"summary":"Rename Dev File","description":"Rename/move a file or directory.","operationId":"rename_dev_file_api_dev_rename_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DevRenameRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/dev/mkdir":{"post":{"summary":"Create Dev Directory","description":"Create a directory.","operationId":"create_dev_directory_api_dev_mkdir_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DevMkdirRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/dev/terminal":{"post":{"summary":"Dev Terminal","description":"Execute a terminal command (real shell execution).\n\nWARNING: This provides full shell access. Use with caution.","operationId":"dev_terminal_api_dev_terminal_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DevTerminalRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/dev/terminal/history":{"get":{"summary":"Get Terminal History","description":"Get recent terminal command history.","operationId":"get_terminal_history_api_dev_terminal_history_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/dev/workspace":{"get":{"summary":"Get Workspace","description":"Get current workspace info.","operationId":"get_workspace_api_dev_workspace_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Set Workspace","description":"Set the workspace root directory.","operationId":"set_workspace_api_dev_workspace_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DevWorkspaceRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/dev/git/status":{"get":{"summary":"Git Status","description":"Get git status for a repository","operationId":"git_status_api_dev_git_status_get","parameters":[{"name":"repo_path","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Repo Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/dev/git/init":{"post":{"summary":"Git Init","description":"Initialize a new git repository","operationId":"git_init_api_dev_git_init_post","parameters":[{"name":"repo_path","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Repo Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/dev/git/add":{"post":{"summary":"Git Add","description":"Stage files for commit","operationId":"git_add_api_dev_git_add_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GitAddRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/dev/git/commit":{"post":{"summary":"Git Commit","description":"Create a commit","operationId":"git_commit_api_dev_git_commit_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GitCommitRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/dev/git/push":{"post":{"summary":"Git Push","description":"Push commits to remote","operationId":"git_push_api_dev_git_push_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GitPushRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/dev/git/pull":{"post":{"summary":"Git Pull","description":"Pull changes from remote","operationId":"git_pull_api_dev_git_pull_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GitPushRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/dev/git/branches":{"get":{"summary":"Git Branches","description":"List branches","operationId":"git_branches_api_dev_git_branches_get","parameters":[{"name":"repo_path","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Repo Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/dev/git/checkout":{"post":{"summary":"Git Checkout","description":"Switch or create branch","operationId":"git_checkout_api_dev_git_checkout_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GitCheckoutRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/dev/git/log":{"get":{"summary":"Git Log","description":"Get commit log","operationId":"git_log_api_dev_git_log_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":10,"title":"Limit"}},{"name":"repo_path","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Repo Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/dev/git/diff":{"get":{"summary":"Git Diff","description":"Get diff of changes","operationId":"git_diff_api_dev_git_diff_get","parameters":[{"name":"staged","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Staged"}},{"name":"repo_path","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Repo Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/dev/git/clone":{"post":{"summary":"Git Clone","description":"Clone a repository","operationId":"git_clone_api_dev_git_clone_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GitCloneRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/dev/project":{"post":{"summary":"Create Project","description":"Create a new project from template","operationId":"create_project_api_dev_project_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectCreateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/trading/subscribe":{"post":{"summary":"Api Trading Subscribe","description":"Trading Signal Bureau — subscribe for signal delivery. market=crypto returns Cryptohopper redirect; stocks/forex stores subscription.","operationId":"api_trading_subscribe_api_trading_subscribe_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TradingSubscribeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/trading/subscribe/checkout":{"post":{"summary":"Api Trading Subscribe Checkout","description":"Create Stripe checkout for stocks/forex subscription. Returns checkout_url.","operationId":"api_trading_subscribe_checkout_api_trading_subscribe_checkout_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TradingCheckoutRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/trading/subscribe/fulfill":{"post":{"summary":"Api Trading Subscribe Fulfill","description":"Verify Stripe session and create subscription. Called from success page.","operationId":"api_trading_subscribe_fulfill_api_trading_subscribe_fulfill_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TradingFulfillRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/trading/profile":{"post":{"summary":"Api Trading Profile","description":"Save/update trading profile. API key encrypted at rest.","operationId":"api_trading_profile_api_trading_profile_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TradingProfileRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/trading/deliver":{"post":{"summary":"Api Trading Deliver","description":"Deliver stock/forex signals to subscriber webhooks. Called by Trading Bot.","operationId":"api_trading_deliver_api_trading_deliver_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TradingDeliverRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/trading/subscriptions":{"get":{"summary":"Api Trading Subscriptions","description":"List active subscriptions for signal delivery. Admin/internal. Masks sensitive fields.","operationId":"api_trading_subscriptions_api_trading_subscriptions_get","parameters":[{"name":"market","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by market: stocks, forex","title":"Market"},"description":"Filter by market: stocks, forex"},{"name":"tier","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by tier","title":"Tier"},"description":"Filter by tier"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/trading/connections":{"get":{"summary":"List Trading Connections","description":"List all trading API connections (never expose api_secret or full api_key)","operationId":"list_trading_connections_api_trading_connections_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Save Trading Connection","description":"Save or update a CryptoHopper signal API connection.\n\nFor predefined systems (marksman, revolver, profitmax), signal_id is auto-filled.\nFor custom systems, provide signal_id, name, and description.","operationId":"save_trading_connection_api_trading_connections_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TradingConnectionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/trading/connections/{system}":{"delete":{"summary":"Delete Trading Connection","description":"Delete a trading connection","operationId":"delete_trading_connection_api_trading_connections__system__delete","parameters":[{"name":"system","in":"path","required":true,"schema":{"type":"string","title":"System"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/trading/signals":{"get":{"summary":"List Trading Signals","description":"List recent trading signals.\nsource: 'db' | 'ultimat3' | 'all' (default: all - merge both when ULTIMAT3STRATEGY available)","operationId":"list_trading_signals_api_trading_signals_get","parameters":[{"name":"system","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"System"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}},{"name":"source","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/trading/stats":{"get":{"summary":"Trading Stats","description":"Get trading statistics from DB and ULTIMAT3STRATEGY when available.","operationId":"trading_stats_api_trading_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/trading/analyze":{"post":{"summary":"Analyze Symbol","description":"Run 6/7-layer confirmation intelligence analysis on a symbol.\nThis is the A3E proprietary multi-layer analysis system.\nUses real market data from exchanges.","operationId":"analyze_symbol_api_trading_analyze_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TradingAnalyzeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/trading/market":{"get":{"summary":"Get Market Data","description":"Get real-time market data from exchanges","operationId":"get_market_data_api_trading_market_get","parameters":[{"name":"symbols","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Symbols"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/trading/gainers":{"get":{"summary":"Get Top Gainers","description":"Get top gaining cryptocurrencies","operationId":"get_top_gainers_api_trading_gainers_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":10,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/trading/price/{symbol}":{"get":{"summary":"Get Price","description":"Get current price for a symbol","operationId":"get_price_api_trading_price__symbol__get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/trading/ultimat3strategy/status":{"get":{"summary":"Ultimat3Strategy Status","description":"Check ULTIMAT3STRATEGY server status","operationId":"ultimat3strategy_status_api_trading_ultimat3strategy_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/trading/ultimat3strategy/signals":{"get":{"summary":"Get Ultimat3Strategy Signals","description":"Get signals from local ULTIMAT3STRATEGY server","operationId":"get_ultimat3strategy_signals_api_trading_ultimat3strategy_signals_get","parameters":[{"name":"system","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"System"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/trading/signal":{"post":{"summary":"Create Trading Signal","description":"Create a new trading signal (called by signal systems)","operationId":"create_trading_signal_api_trading_signal_post","parameters":[{"name":"symbol","in":"query","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"signal","in":"query","required":true,"schema":{"type":"string","title":"Signal"}},{"name":"system","in":"query","required":true,"schema":{"type":"string","title":"System"}},{"name":"strategy","in":"query","required":true,"schema":{"type":"string","title":"Strategy"}},{"name":"price","in":"query","required":false,"schema":{"type":"number","default":0,"title":"Price"}},{"name":"target_tp","in":"query","required":false,"schema":{"type":"number","default":0,"title":"Target Tp"}},{"name":"stop_loss","in":"query","required":false,"schema":{"type":"number","default":0,"title":"Stop Loss"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/trading/cryptohopper/send":{"post":{"summary":"Send Cryptohopper Signal","description":"Send a trading signal to CryptoHopper.\n\nRequired:\n- system: System ID (marksman, revolver, profitmax, or custom)\n- exchange: Exchange ID (binance, bybit, kucoin, etc.)\n- market: Trading pair (BTC/USDT, ETH/BTC, etc.)\n- signal_type: \"buy\" or \"sell\"\n\nOptional:\n- percentage_profit: Target profit %\n- stop_loss: Stop loss % (positive number)\n- test_mode: Use test endpoint (signals not saved)","operationId":"send_cryptohopper_signal_api_trading_cryptohopper_send_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendSignalRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/trading/cryptohopper/broadcast":{"post":{"summary":"Broadcast Cryptohopper Signal","description":"Broadcast a trading signal to multiple CryptoHopper systems.\n\nIf systems is not specified, broadcasts to all connected systems.","operationId":"broadcast_cryptohopper_signal_api_trading_cryptohopper_broadcast_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BroadcastSignalRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/trading/cryptohopper/stats/{system}":{"get":{"summary":"Get Cryptohopper Stats","description":"Get signal statistics from CryptoHopper for a specific system.","operationId":"get_cryptohopper_stats_api_trading_cryptohopper_stats__system__get","parameters":[{"name":"system","in":"path","required":true,"schema":{"type":"string","title":"System"}},{"name":"exchange","in":"query","required":false,"schema":{"type":"string","default":"all","title":"Exchange"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/trading/cryptohopper/test/{system}":{"post":{"summary":"Test Cryptohopper Connection","description":"Test the CryptoHopper connection for a specific system.\nSends a test signal that is not saved.","operationId":"test_cryptohopper_connection_api_trading_cryptohopper_test__system__post","parameters":[{"name":"system","in":"path","required":true,"schema":{"type":"string","title":"System"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/trading/cryptohopper/systems":{"get":{"summary":"List Cryptohopper Systems","description":"List all registered CryptoHopper systems and their status.","operationId":"list_cryptohopper_systems_api_trading_cryptohopper_systems_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/trading/exchanges":{"get":{"summary":"List Supported Exchanges","description":"List all exchanges supported by CryptoHopper.","operationId":"list_supported_exchanges_api_trading_exchanges_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/governance/preflight":{"get":{"summary":"Api Preflight Default","description":"Run preflight for default module (production). Convenience endpoint when no module_name provided.","operationId":"api_preflight_default_api_governance_preflight_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/governance/preflight/{module_name}":{"get":{"summary":"Api Preflight","description":"Run preflight check for a module.","operationId":"api_preflight_api_governance_preflight__module_name__get","parameters":[{"name":"module_name","in":"path","required":true,"schema":{"type":"string","title":"Module Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/governance/performance":{"get":{"summary":"Api Governance Performance","description":"Get performance scores for all modules.","operationId":"api_governance_performance_api_governance_performance_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/governance/state":{"get":{"summary":"Api Governance State","description":"Get full governance state: performance, failures, snapshots, last_preflight.","operationId":"api_governance_state_api_governance_state_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/governance/snapshot/{module_name}":{"post":{"summary":"Api Snapshot Save","description":"Save snapshot for module.","operationId":"api_snapshot_save_api_governance_snapshot__module_name__post","parameters":[{"name":"module_name","in":"path","required":true,"schema":{"type":"string","title":"Module Name"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/SnapshotStateRequest"},{"type":"null"}],"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/governance/rollback/{module_name}":{"post":{"summary":"Api Snapshot Rollback","description":"Rollback module to snapshot.","operationId":"api_snapshot_rollback_api_governance_rollback__module_name__post","parameters":[{"name":"module_name","in":"path","required":true,"schema":{"type":"string","title":"Module Name"}},{"name":"snapshot_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Snapshot Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/compliance/cadence/{platform}":{"get":{"summary":"Api Check Cadence","description":"Check if publishing is allowed for platform.","operationId":"api_check_cadence_api_compliance_cadence__platform__get","parameters":[{"name":"platform","in":"path","required":true,"schema":{"type":"string","title":"Platform"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/compliance/status":{"get":{"summary":"Api Compliance Status","description":"Get all platform cadence status. platforms=comma-separated or omit for all.","operationId":"api_compliance_status_api_compliance_status_get","parameters":[{"name":"platforms","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platforms"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/viability/score":{"post":{"summary":"Api Viability Score","description":"Compute viability score. Returns score and should_produce.","operationId":"api_viability_score_api_viability_score_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ViabilityScoreRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/viability/batch":{"post":{"summary":"Api Viability Batch","description":"Batch score opportunities.","operationId":"api_viability_batch_api_viability_batch_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ViabilityBatchRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/scheduler/jobs":{"get":{"summary":"Api Scheduler Jobs","description":"List all scheduled jobs.","operationId":"api_scheduler_jobs_api_scheduler_jobs_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/scheduler/job/{name}/pause":{"post":{"summary":"Api Scheduler Pause","description":"Pause a scheduled job.","operationId":"api_scheduler_pause_api_scheduler_job__name__pause_post","parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/scheduler/job/{name}/resume":{"post":{"summary":"Api Scheduler Resume","description":"Resume a paused job.","operationId":"api_scheduler_resume_api_scheduler_job__name__resume_post","parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/monitor/system":{"get":{"summary":"Api Monitor System","description":"Full system status: GPU, CPU, queue, modules.","operationId":"api_monitor_system_api_monitor_system_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/monitor/gpu":{"get":{"summary":"Api Monitor Gpu","description":"GPU stats only.","operationId":"api_monitor_gpu_api_monitor_gpu_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/autoflow/status":{"get":{"summary":"Api Autoflow Status","description":"One-click AUTOFLOW: current status (idle/running), last run timestamp, last run summary.\nExposes stack_ready and skipped_media_types from last production run or current readiness.","operationId":"api_autoflow_status_api_autoflow_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/autoflow/flywheel":{"get":{"summary":"Api Autoflow Flywheel","description":"Phase 6 — flywheel observability: vault counts, dry_run, scheduler next runs,\nlast autoflow summary, last_production.json, inner_loop gate, opportunity queue count.","operationId":"api_autoflow_flywheel_api_autoflow_flywheel_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/autoflow/start":{"post":{"summary":"Api Autoflow Start","description":"One-click AUTOFLOW: run research -> production -> distribution in background. Returns immediately.","operationId":"api_autoflow_start_api_autoflow_start_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/autoflow/trigger":{"post":{"summary":"Api Autoflow Trigger","description":"Unified trigger: body {\"loop\": \"production\"|\"distribution\"|\"research\"}. Used by CEO, CrewAI, n8n.","operationId":"api_autoflow_trigger_api_autoflow_trigger_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/autoflow/schedule":{"get":{"summary":"Api Autoflow Schedule","description":"Canonical schedule config (config/autoflow_schedule.json). Used by n8n workflows.","operationId":"api_autoflow_schedule_api_autoflow_schedule_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/status/ceo_readiness":{"get":{"summary":"Api Ceo Readiness","description":"CEO Readiness Check — inner_loop, ORBITAL, platform_rules, quality_guidelines, passive_bots, observability.","operationId":"api_ceo_readiness_api_status_ceo_readiness_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/ceo/verify-record":{"post":{"summary":"Api Ceo Verify Record","description":"CEO verification chain recorder.\nBody fields:\n  workflow, decision, delegated_to, verify_endpoint(optional), verify_ok(optional), escalation_rule(optional), notes(optional)","operationId":"api_ceo_verify_record_api_ceo_verify_record_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/ceo/verify-records":{"get":{"summary":"Api Ceo Verify Records","description":"List recent CEO verification records.","operationId":"api_ceo_verify_records_api_ceo_verify_records_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/autoflow/loops":{"get":{"summary":"Api Autoflow Loops Status","description":"Status of all 5 automation loops (research, production, distribution, optimization, signal).","operationId":"api_autoflow_loops_status_api_autoflow_loops_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/autoflow/loops/research/trigger":{"post":{"summary":"Api Trigger Research","description":"Manually trigger research loop.","operationId":"api_trigger_research_api_autoflow_loops_research_trigger_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/autoflow/loops/production/trigger":{"post":{"summary":"Api Trigger Production","description":"Manually trigger production loop. mode=stock for 09:00 (no GPU), mode=local for 13:00 (GPU).","operationId":"api_trigger_production_api_autoflow_loops_production_trigger_post","parameters":[{"name":"mode","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"stock=no GPU, local=GPU","title":"Mode"},"description":"stock=no GPU, local=GPU"},{"name":"block","in":"query","required":false,"schema":{"type":"boolean","description":"If true, wait for production to complete; else return immediately","default":false,"title":"Block"},"description":"If true, wait for production to complete; else return immediately"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/autoflow/loops/inner/check":{"get":{"summary":"Api Inner Loop Check","description":"Inner loop: check if vault empty + last_production > threshold. Returns should_trigger, reason, vault_count.","operationId":"api_inner_loop_check_api_autoflow_loops_inner_check_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/autoflow/loops/inner/trigger":{"post":{"summary":"Api Inner Loop Trigger","description":"Inner loop: if vault empty and last_production > threshold, trigger stock or local production.","operationId":"api_inner_loop_trigger_api_autoflow_loops_inner_trigger_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/autoflow/loops/inner_loop/trigger":{"post":{"summary":"Api Inner Loop Trigger Alias","description":"Alias for inner/trigger (same handler).","operationId":"api_inner_loop_trigger_alias_api_autoflow_loops_inner_loop_trigger_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/autoflow/loops/distribution/trigger":{"post":{"summary":"Api Trigger Distribution","description":"Manually trigger distribution loop. Use block=false to run in background.","operationId":"api_trigger_distribution_api_autoflow_loops_distribution_trigger_post","parameters":[{"name":"dry_run","in":"query","required":false,"schema":{"type":"boolean","title":"Dry Run"}},{"name":"block","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Block"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/autoflow/loops/optimization/trigger":{"post":{"summary":"Api Trigger Optimization","description":"Manually trigger optimization loop.","operationId":"api_trigger_optimization_api_autoflow_loops_optimization_trigger_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/autoflow/loops/signal/trigger":{"post":{"summary":"Api Trigger Signal","description":"Manually trigger signal generation loop.","operationId":"api_trigger_signal_api_autoflow_loops_signal_trigger_post","parameters":[{"name":"dry_run","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Dry Run"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/autoflow/loops/keyword_harvester/trigger":{"post":{"summary":"Api Trigger Keyword Harvester","description":"Manually trigger keyword harvester (LLM-based expansion).","operationId":"api_trigger_keyword_harvester_api_autoflow_loops_keyword_harvester_trigger_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/autoflow/loops/seo_publisher/trigger":{"post":{"summary":"Api Trigger Seo Publisher","description":"Manually trigger SEO publisher (vault -> Website/blog).","operationId":"api_trigger_seo_publisher_api_autoflow_loops_seo_publisher_trigger_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/autoflow/loops/programmatic_seo/trigger":{"post":{"summary":"Api Trigger Programmatic Seo","description":"Manually trigger programmatic SEO (template-based article generation).","operationId":"api_trigger_programmatic_seo_api_autoflow_loops_programmatic_seo_trigger_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/autoflow/loops/rank_tracker/trigger":{"post":{"summary":"Api Trigger Rank Tracker","description":"Manually trigger rank tracker (CSV or SerpAPI).","operationId":"api_trigger_rank_tracker_api_autoflow_loops_rank_tracker_trigger_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/autoflow/loops/seo_auto_optimizer/trigger":{"post":{"summary":"Api Trigger Seo Auto Optimizer","description":"Manually trigger SEO auto-optimizer (refresh underperforming pages).","operationId":"api_trigger_seo_auto_optimizer_api_autoflow_loops_seo_auto_optimizer_trigger_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/autoflow/loops/seo_monthly_cycle/trigger":{"post":{"summary":"Api Trigger Seo Monthly Cycle","description":"Manually trigger SEO 30-day cycle (harvester, rank tracker, auto-optimizer, cluster expansion).","operationId":"api_trigger_seo_monthly_cycle_api_autoflow_loops_seo_monthly_cycle_trigger_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/autoflow/loops/orbital_evolution/trigger":{"post":{"summary":"Api Trigger Orbital Evolution","description":"ORBITAL self-evolution: evaluate performance, evolve templates, generate new tasks.","operationId":"api_trigger_orbital_evolution_api_autoflow_loops_orbital_evolution_trigger_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/autoflow/loops/orbital_seo/trigger":{"post":{"summary":"Api Trigger Orbital Seo","description":"ORBITAL SEO: programmatic article generation + publisher. Wired from orbital_seo.json.","operationId":"api_trigger_orbital_seo_api_autoflow_loops_orbital_seo_trigger_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/outcome/trigger":{"post":{"summary":"Api Outcome Trigger","description":"Outcome-as-a-Service: generate compliance/retention packs via Document Factory. Canonical endpoint for n8n.","operationId":"api_outcome_trigger_api_outcome_trigger_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/autoflow/loops/outcome_as_a_service/trigger":{"post":{"summary":"Api Trigger Outcome As A Service","description":"Outcome-as-a-Service: compliance/retention batch via Document Factory. Wired from outcome_as_a_service.json.","operationId":"api_trigger_outcome_as_a_service_api_autoflow_loops_outcome_as_a_service_trigger_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/autoflow/loops/faceless_media/trigger":{"post":{"summary":"Api Trigger Faceless Media","description":"Faceless Media: ORBITAL script → Video Factory → Distribution (YouTube/TikTok/IG). Channels: Personal Finance, Longevity Science.","operationId":"api_trigger_faceless_media_api_autoflow_loops_faceless_media_trigger_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/autoflow/loops/podcast_generator/trigger":{"post":{"summary":"Api Trigger Podcast Generator","description":"Generate podcast via ai_music_podcast_generator, copy to vault/voice, optionally trigger distribution.","operationId":"api_trigger_podcast_generator_api_autoflow_loops_podcast_generator_trigger_post","parameters":[{"name":"topic","in":"query","required":false,"schema":{"type":"string","description":"Podcast topic","default":"AI and automation","title":"Topic"},"description":"Podcast topic"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/autoflow/loops/data_resell/trigger":{"post":{"summary":"Api Trigger Data Resell","description":"Run data resell bot: scrape sources, package, upload to Gumroad/Etsy.","operationId":"api_trigger_data_resell_api_autoflow_loops_data_resell_trigger_post","parameters":[{"name":"niche","in":"query","required":false,"schema":{"type":"string","description":"Niche for dataset","default":"market_data","title":"Niche"},"description":"Niche for dataset"},{"name":"upload_target","in":"query","required":false,"schema":{"type":"string","description":"gumroad or etsy","default":"gumroad","title":"Upload Target"},"description":"gumroad or etsy"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/autoflow/loops/{name}/pause":{"post":{"summary":"Api Autoflow Loop Pause","description":"Pause an automation loop by name.","operationId":"api_autoflow_loop_pause_api_autoflow_loops__name__pause_post","parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/autoflow/loops/{name}/resume":{"post":{"summary":"Api Autoflow Loop Resume","description":"Resume a paused automation loop.","operationId":"api_autoflow_loop_resume_api_autoflow_loops__name__resume_post","parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/triggers/email":{"post":{"summary":"Api Trigger Email","description":"On new email (n8n email trigger -> webhook). Triggers research or production.","operationId":"api_trigger_email_api_triggers_email_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/triggers/webhook":{"post":{"summary":"Api Trigger Webhook","description":"Generic webhook for external events (price change, API callback). Body: {loop?, action?, payload?}.","operationId":"api_trigger_webhook_api_triggers_webhook_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/triggers/file":{"post":{"summary":"Api Trigger File","description":"On file upload to watched folder. Saves to opportunities and triggers production.","operationId":"api_trigger_file_api_triggers_file_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_api_trigger_file_api_triggers_file_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/autoflow/opportunities":{"get":{"summary":"Api Autoflow Opportunities","description":"List research output opportunity files.","operationId":"api_autoflow_opportunities_api_autoflow_opportunities_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/services/ai_music_podcast_generator/generate":{"post":{"tags":["services"],"summary":"Generate","operationId":"generate_api_services_ai_music_podcast_generator_generate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PodcastRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PodcastResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/services/ai_music_podcast_generator/health":{"get":{"tags":["services"],"summary":"Health","operationId":"health_api_services_ai_music_podcast_generator_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/services/data_resell_bot/run":{"post":{"tags":["services"],"summary":"Run","operationId":"run_api_services_data_resell_bot_run_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataResellRunRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/services/data_resell_bot/health":{"get":{"tags":["services"],"summary":"Health Endpoint","operationId":"health_endpoint_api_services_data_resell_bot_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/services/document_factory/generate":{"post":{"tags":["services"],"summary":"Generate","operationId":"generate_api_services_document_factory_generate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentGenerateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentGenerateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/services/document_factory/download/{doc_type}/{date_dir}/{filename}":{"get":{"tags":["services"],"summary":"Download","operationId":"download_api_services_document_factory_download__doc_type___date_dir___filename__get","parameters":[{"name":"doc_type","in":"path","required":true,"schema":{"type":"string","title":"Doc Type"}},{"name":"date_dir","in":"path","required":true,"schema":{"type":"string","title":"Date Dir"}},{"name":"filename","in":"path","required":true,"schema":{"type":"string","title":"Filename"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/services/document_factory/types":{"get":{"tags":["services"],"summary":"List Types","operationId":"list_types_api_services_document_factory_types_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/services/document_factory/health":{"get":{"tags":["services"],"summary":"Health","operationId":"health_api_services_document_factory_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/services/echo_narrative/stories/create":{"post":{"tags":["services"],"summary":"Create Story","operationId":"create_story_api_services_echo_narrative_stories_create_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoryCreateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/services/echo_narrative/stories/{story_id}":{"get":{"tags":["services"],"summary":"Get Story","operationId":"get_story_api_services_echo_narrative_stories__story_id__get","parameters":[{"name":"story_id","in":"path","required":true,"schema":{"type":"string","title":"Story Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/services/echo_narrative/stories/creator/{creator_id}":{"get":{"tags":["services"],"summary":"Get Creator Stories","operationId":"get_creator_stories_api_services_echo_narrative_stories_creator__creator_id__get","parameters":[{"name":"creator_id","in":"path","required":true,"schema":{"type":"string","title":"Creator Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/services/echo_narrative/stories":{"get":{"tags":["services"],"summary":"List Stories","operationId":"list_stories_api_services_echo_narrative_stories_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/services/echo_narrative/stories/{story_id}/branch":{"post":{"tags":["services"],"summary":"Generate Branch","operationId":"generate_branch_api_services_echo_narrative_stories__story_id__branch_post","parameters":[{"name":"story_id","in":"path","required":true,"schema":{"type":"string","title":"Story Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BranchAdvanceRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/services/echo_narrative/stories/{story_id}/export":{"post":{"tags":["services"],"summary":"Export Story","operationId":"export_story_api_services_echo_narrative_stories__story_id__export_post","parameters":[{"name":"story_id","in":"path","required":true,"schema":{"type":"string","title":"Story Id"}},{"name":"format","in":"query","required":false,"schema":{"type":"string","default":"web","title":"Format"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/services/echo_narrative/sessions/create":{"post":{"tags":["services"],"summary":"Create Session","operationId":"create_session_api_services_echo_narrative_sessions_create_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SessionCreateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/services/echo_narrative/sessions/{session_id}":{"get":{"tags":["services"],"summary":"Get Session State","operationId":"get_session_state_api_services_echo_narrative_sessions__session_id__get","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/services/echo_narrative/sessions/{session_id}/advance":{"post":{"tags":["services"],"summary":"Advance Session","operationId":"advance_session_api_services_echo_narrative_sessions__session_id__advance_post","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SessionAdvanceRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/services/echo_narrative/health":{"get":{"tags":["services"],"summary":"Health","operationId":"health_api_services_echo_narrative_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/services/job_application_bot/profile":{"post":{"tags":["services"],"summary":"Save Profile","description":"Save or update profile from form. No subscription required. Captures lead.","operationId":"save_profile_api_services_job_application_bot_profile_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfileForm"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["services"],"summary":"Get Profile","description":"Get saved profile. Requires email query param.","operationId":"get_profile_api_services_job_application_bot_profile_get","parameters":[{"name":"email","in":"query","required":true,"schema":{"type":"string","title":"Email"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/services/job_application_bot/profile/upload":{"post":{"tags":["services"],"summary":"Upload Resume","description":"Upload resume (PDF, DOCX, TXT). Parses and saves profile. No subscription required. Captures lead.","operationId":"upload_resume_api_services_job_application_bot_profile_upload_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_resume_api_services_job_application_bot_profile_upload_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/services/job_application_bot/matches/free":{"post":{"tags":["services"],"summary":"Get Free Matches","description":"Free tier: top 5 matches, no cover letters. Email required, captured as lead.","operationId":"get_free_matches_api_services_job_application_bot_matches_free_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FreeMatchesRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/services/job_application_bot/sample-cover-letter":{"post":{"tags":["services"],"summary":"Sample Cover Letter","description":"Free tier: generate one sample cover letter to prove quality. Lead-captured.","operationId":"sample_cover_letter_api_services_job_application_bot_sample_cover_letter_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SampleCoverRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/services/job_application_bot/search":{"post":{"tags":["services"],"summary":"Search Jobs","description":"Search jobs. Requires subscription (job-application-bot or saas-bundle).","operationId":"search_jobs_api_services_job_application_bot_search_post","parameters":[{"name":"email","in":"query","required":true,"schema":{"type":"string","description":"User email for subscription check","title":"Email"},"description":"User email for subscription check"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchPreferences"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/services/job_application_bot/matches":{"post":{"tags":["services"],"summary":"Get Matches With Cover Letters","description":"Get job matches with AI-generated cover letters. Requires subscription.","operationId":"get_matches_with_cover_letters_api_services_job_application_bot_matches_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MatchesRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/services/job_application_bot/daily-cycle":{"post":{"tags":["services"],"summary":"Run Daily Cycle","description":"Run a full daily auto-apply cycle for a user. Searches, applies, emails summary.","operationId":"run_daily_cycle_api_services_job_application_bot_daily_cycle_post","parameters":[{"name":"email","in":"query","required":true,"schema":{"type":"string","title":"Email"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/services/job_application_bot/auto-apply":{"post":{"tags":["services"],"summary":"Auto Apply Endpoint","description":"Auto-apply to matched jobs. Fills forms, uploads resume, optionally submits.\n\nStrategies (tried in order per job):\n    1. Browser form-fill via Playwright (LinkedIn/Indeed auto-submit; generic sites fill-only by default)\n    2. Email application (if job listing has contact email + SMTP configured)\n    3. Flagged for manual application","operationId":"auto_apply_endpoint_api_services_job_application_bot_auto_apply_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutoApplyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/services/job_application_bot/applications":{"get":{"tags":["services"],"summary":"Get Applications Log","description":"Get application history for a user from the JSONL log.","operationId":"get_applications_log_api_services_job_application_bot_applications_get","parameters":[{"name":"email","in":"query","required":true,"schema":{"type":"string","title":"Email"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/services/job_application_bot/health":{"get":{"tags":["services"],"summary":"Health","operationId":"health_api_services_job_application_bot_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/services/license_key_delivery/issue":{"post":{"tags":["services"],"summary":"Issue","operationId":"issue_api_services_license_key_delivery_issue_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LicenseRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LicenseResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/services/license_key_delivery/verify":{"post":{"tags":["services"],"summary":"Verify","operationId":"verify_api_services_license_key_delivery_verify_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Data"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/services/license_key_delivery/health":{"get":{"tags":["services"],"summary":"Health","operationId":"health_api_services_license_key_delivery_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/services/lyrics_generator/process":{"post":{"tags":["services"],"summary":"Process","description":"Upload an audio file (mp3/wav/flac/m4a/ogg/etc.) and get back structured lyrics + JSON.\n\nReturns the ACE-Step formatted lyrics text plus the path to the saved structure JSON.","operationId":"process_api_services_lyrics_generator_process_post","parameters":[{"name":"whisper_model","in":"query","required":false,"schema":{"type":"string","default":"small","title":"Whisper Model"}},{"name":"ollama_model","in":"query","required":false,"schema":{"type":"string","default":"phi4:14b","title":"Ollama Model"}},{"name":"language","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Language hint, e.g. en, es, fr","title":"Language"},"description":"Language hint, e.g. en, es, fr"},{"name":"keep_stems","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Keep Stems"}},{"name":"device","in":"query","required":false,"schema":{"type":"string","description":"Compute device for Demucs/Whisper: cpu or cuda","default":"cpu","title":"Device"},"description":"Compute device for Demucs/Whisper: cpu or cuda"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_process_api_services_lyrics_generator_process_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/services/lyrics_generator/health":{"get":{"tags":["services"],"summary":"Health","operationId":"health_api_services_lyrics_generator_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/services/newsletter_curator/run":{"post":{"tags":["services"],"summary":"Run","operationId":"run_api_services_newsletter_curator_run_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewsletterRunRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/services/newsletter_curator/health":{"get":{"tags":["services"],"summary":"Health Endpoint","operationId":"health_endpoint_api_services_newsletter_curator_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/services/pdf_merge/merge":{"post":{"tags":["services"],"summary":"Merge","description":"Accept 2+ PDFs, merge in order, return one PDF.","operationId":"merge_api_services_pdf_merge_merge_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_merge_api_services_pdf_merge_merge_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/services/pdf_merge/health":{"get":{"tags":["services"],"summary":"Health","operationId":"health_api_services_pdf_merge_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/services/quickinvoice/generate":{"post":{"tags":["services"],"summary":"Generate","operationId":"generate_api_services_quickinvoice_generate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvoiceRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvoiceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/services/quickinvoice/download/{filename}":{"get":{"tags":["services"],"summary":"Download","operationId":"download_api_services_quickinvoice_download__filename__get","parameters":[{"name":"filename","in":"path","required":true,"schema":{"type":"string","title":"Filename"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/services/quickinvoice/health":{"get":{"tags":["services"],"summary":"Health","operationId":"health_api_services_quickinvoice_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/services/resume_generator/generate":{"post":{"tags":["services"],"summary":"Generate","operationId":"generate_api_services_resume_generator_generate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResumeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResumeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/services/resume_generator/health":{"get":{"tags":["services"],"summary":"Health","operationId":"health_api_services_resume_generator_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/services/suno_music/set_cookie":{"post":{"tags":["services"],"summary":"Set Cookie","description":"Receive the __session JWT from a logged-in suno.com tab and persist it.\n\nDrew 2026-05-01: replaces the manual DevTools copy/paste flow. The Claude in\nChrome MCP injects JS on suno.com that POSTs the document.cookie's __session\nvalue here. Server writes SUNO_SESSION_COOKIE=__session=<value> to .env and\nrefreshes the in-memory cache so the next /generate call picks it up without\na full server restart.","operationId":"set_cookie_api_services_suno_music_set_cookie_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetCookieRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"options":{"tags":["services"],"summary":"Set Cookie Preflight","operationId":"set_cookie_preflight_api_services_suno_music_set_cookie_options","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/services/suno_music/generate":{"post":{"tags":["services"],"summary":"Generate Endpoint","description":"Generate a Suno track. Returns 2 clip variants per submission.\n\nFalls back gracefully (returns ok:false with fallback_recommended:true) when\ncookie is missing or expired. Caller should route to ACE-Step in that case.","operationId":"generate_endpoint_api_services_suno_music_generate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/services/suno_music/status":{"post":{"tags":["services"],"summary":"Status Endpoint","description":"Poll status for previously submitted clip IDs.","operationId":"status_endpoint_api_services_suno_music_status_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatusRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/services/suno_music/configured":{"get":{"tags":["services"],"summary":"Configured Endpoint","description":"Check whether SUNO_SESSION_COOKIE is set without leaking the value.","operationId":"configured_endpoint_api_services_suno_music_configured_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/services/suno_music/health":{"get":{"tags":["services"],"summary":"Health","operationId":"health_api_services_suno_music_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/services/transcription_summarizer/process":{"post":{"tags":["services"],"summary":"Process File","description":"Upload audio or video. Returns transcript and optional summary. Per-minute pricing applies for paid tier.","operationId":"process_file_api_services_transcription_summarizer_process_post","parameters":[{"name":"include_summary","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Include Summary"}},{"name":"email","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User email for usage tracking / subscription check","title":"Email"},"description":"User email for usage tracking / subscription check"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_process_file_api_services_transcription_summarizer_process_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranscriptionResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/services/transcription_summarizer/health":{"get":{"tags":["services"],"summary":"Health","operationId":"health_api_services_transcription_summarizer_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/connections":{"get":{"summary":"Api Connections List","operationId":"api_connections_list_api_connections_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Api Connections Create","operationId":"api_connections_create_api_connections_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Data"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/connections/{conn_id}/toggle":{"put":{"summary":"Api Connections Toggle","operationId":"api_connections_toggle_api_connections__conn_id__toggle_put","parameters":[{"name":"conn_id","in":"path","required":true,"schema":{"type":"string","title":"Conn Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/connections/{conn_id}":{"delete":{"summary":"Api Connections Delete","operationId":"api_connections_delete_api_connections__conn_id__delete","parameters":[{"name":"conn_id","in":"path","required":true,"schema":{"type":"string","title":"Conn Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/workflows":{"get":{"summary":"Api Workflows List","operationId":"api_workflows_list_api_workflows_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Api Workflows Create","operationId":"api_workflows_create_api_workflows_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Data"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/workflows/{wf_id}/run":{"post":{"summary":"Api Workflows Run","operationId":"api_workflows_run_api_workflows__wf_id__run_post","parameters":[{"name":"wf_id","in":"path","required":true,"schema":{"type":"string","title":"Wf Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/workflows/{wf_id}":{"delete":{"summary":"Api Workflows Delete","operationId":"api_workflows_delete_api_workflows__wf_id__delete","parameters":[{"name":"wf_id","in":"path","required":true,"schema":{"type":"string","title":"Wf Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/research/search":{"post":{"summary":"Api Research Search","operationId":"api_research_search_api_research_search_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Data"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/system/stats":{"get":{"summary":"Api System Stats","description":"Real system stats for MonitorPage. No stubs.","operationId":"api_system_stats_api_system_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/services/list":{"get":{"summary":"Api Services List","description":"List all mounted service modules.","operationId":"api_services_list_api_services_list_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/lead/contact":{"post":{"summary":"Api Lead Contact","description":"Store contact form submission; optionally email via ALERT_* if set.","operationId":"api_lead_contact_api_lead_contact_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeadContact"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/lead/newsletter":{"post":{"summary":"Api Lead Newsletter","description":"Store newsletter signup.","operationId":"api_lead_newsletter_api_lead_newsletter_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeadNewsletter"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/seo/template-download/{slug}":{"get":{"summary":"Api Seo Template Download","description":"Serve pre-generated SEO template PDF from vault. Used after email capture on template pages.","operationId":"api_seo_template_download_api_seo_template_download__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/lead/capture":{"post":{"summary":"Api Lead Capture","description":"Store lead gen form submission; route to client via email/webhook/SMS. Accepts JSON or form-urlencoded.","operationId":"api_lead_capture_api_lead_capture_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/storefront/products":{"get":{"tags":["storefront"],"summary":"List Products","description":"Return active storefront products. Filters by storefront channel; subscriptions (no file) included.","operationId":"list_products_api_storefront_products_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/storefront/checkout":{"post":{"tags":["storefront"],"summary":"Checkout Stripe","description":"Create a Stripe Checkout session.","operationId":"checkout_stripe_api_storefront_checkout_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/storefront/checkout/paypal":{"post":{"tags":["storefront"],"summary":"Checkout Paypal","description":"Create a PayPal order.","operationId":"checkout_paypal_api_storefront_checkout_paypal_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/storefront/fulfill/stripe":{"post":{"tags":["storefront"],"summary":"Fulfill Stripe","description":"Verify Stripe payment and return download link (thank-you page path).","operationId":"fulfill_stripe_api_storefront_fulfill_stripe_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StripeFulfillRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/storefront/fulfill/paypal":{"post":{"tags":["storefront"],"summary":"Fulfill Paypal","description":"Capture PayPal payment and return download link (thank-you page path).","operationId":"fulfill_paypal_api_storefront_fulfill_paypal_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PayPalFulfillRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/storefront/download/{token}":{"get":{"tags":["storefront"],"summary":"Download File","description":"Serve a purchased file via temporary token.","operationId":"download_file_api_storefront_download__token__get","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/storefront/webhook/stripe":{"post":{"tags":["storefront"],"summary":"Stripe Webhook","description":"Handle Stripe webhook events (payment, subscription lifecycle).","operationId":"stripe_webhook_api_storefront_webhook_stripe_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/storefront/webhook/paypal":{"post":{"tags":["storefront"],"summary":"Paypal Webhook","description":"Handle PayPal webhook events. Captures approved orders server-side so\npayment capture + delivery do not depend on the buyer's browser reaching\nthankyou.html. Requires PAYPAL_WEBHOOK_ID for signature verification.","operationId":"paypal_webhook_api_storefront_webhook_paypal_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/storefront/subscriptions/check":{"get":{"tags":["storefront"],"summary":"Check Subscription","description":"Check if an email has an active subscription.","operationId":"check_subscription_api_storefront_subscriptions_check_get","parameters":[{"name":"email","in":"query","required":true,"schema":{"type":"string","title":"Email"}},{"name":"product_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Product Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/storefront/orders":{"get":{"tags":["storefront"],"summary":"List Orders","description":"Recent orders for storefront (product name, date, download link status).","operationId":"list_orders_api_storefront_orders_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/storefront/audit/intake":{"get":{"tags":["storefront"],"summary":"Audit Intake Form","description":"Intake form HTML served after purchase. GET /api/storefront/audit/intake?order=<order_id>","operationId":"audit_intake_form_api_storefront_audit_intake_get","parameters":[{"name":"order","in":"query","required":false,"schema":{"type":"string","default":"","title":"Order"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["storefront"],"summary":"Audit Intake Submit","description":"Accept intake form (form-encoded or JSON) and fire the fulfillment pipeline.","operationId":"audit_intake_submit_api_storefront_audit_intake_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/storefront/audit/status/{order_id}":{"get":{"tags":["storefront"],"summary":"Audit Status","description":"Check audit pipeline status (legacy route — also checks report_engine jobs).","operationId":"audit_status_api_storefront_audit_status__order_id__get","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/storefront/report/intake":{"get":{"tags":["storefront"],"summary":"Report Intake Form","description":"Generalized intake form for any report product.\nGET /api/storefront/report/intake?order=<order_id>&product=<product_id>\nFalls back to original /audit/intake for ai-visibility-audit products.","operationId":"report_intake_form_api_storefront_report_intake_get","parameters":[{"name":"order","in":"query","required":false,"schema":{"type":"string","default":"","title":"Order"}},{"name":"product","in":"query","required":false,"schema":{"type":"string","default":"","title":"Product"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["storefront"],"summary":"Report Intake Submit","description":"Generalized intake submission for any report product.\nDispatches to audit_fulfillment for ai-visibility-audit, or report_engine for others.","operationId":"report_intake_submit_api_storefront_report_intake_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/storefront/report/status/{order_id}":{"get":{"tags":["storefront"],"summary":"Report Status","description":"Check report pipeline status for any product.","operationId":"report_status_api_storefront_report_status__order_id__get","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/storefront/health":{"get":{"tags":["storefront"],"summary":"Storefront Health","operationId":"storefront_health_api_storefront_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/storefront/perimeter/check":{"get":{"tags":["storefront"],"summary":"Perimeter Check","description":"Free, public, self-serve perimeter check — the front door to the monthly monitor.\n\nAdded 2026-08-03. The outreach copy used to tell each prospect to go and find a\nthird-party DMARC checker; this serves that moment ourselves, with the SAME code\nthe paid report runs, so the free finding and the paid deliverable cannot diverge.\n\nNever raises to the caller: a failure returns ok=False, which the page renders as\n\"we could not check\", never as \"you are fine\".","operationId":"perimeter_check_api_storefront_perimeter_check_get","parameters":[{"name":"domain","in":"query","required":false,"schema":{"type":"string","default":"","title":"Domain"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/storefront/perimeter/report":{"post":{"tags":["storefront"],"summary":"Perimeter Report","description":"Email a stranger the report for a domain THIS SERVER just measured.\n\nThe findings are never taken from the request. A client that could hand us\nthe body of a message sent from info@a3eecosystem.com would be an open relay\nwith our return address on it, so the domain is re-checked here and the\nemail is rendered from that result and nothing else.","operationId":"perimeter_report_api_storefront_perimeter_report_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PerimeterReportRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/storefront/mini-audit":{"post":{"tags":["mini-audit"],"summary":"Run Mini Audit","description":"POST /api/storefront/mini-audit\nBody: {\"domain\": \"example.com\", \"email\": \"user@domain.com\"}\nReturns: {\"score\": int, \"findings\": [...], \"headline\": str, \"cta_url\": str, \"cta_text\": str}","operationId":"run_mini_audit_api_storefront_mini_audit_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MiniAuditRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/storefront/write/quota":{"get":{"tags":["oe-write"],"summary":"Write Quota","operationId":"write_quota_api_storefront_write_quota_get","parameters":[{"name":"device_id","in":"query","required":false,"schema":{"type":"string","default":"","title":"Device Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/storefront/write/occasions":{"get":{"tags":["oe-write"],"summary":"Write Occasions","description":"What the form may offer. Serving this from the server (rather than\nhardcoding it in the page) is what keeps the tone list and the occasion list\nfrom drifting apart — the 'Funny' tone must never appear on a eulogy.","operationId":"write_occasions_api_storefront_write_occasions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/storefront/write":{"post":{"tags":["oe-write"],"summary":"Write Generate","operationId":"write_generate_api_storefront_write_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WriteRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/storefront/write/unlock":{"post":{"tags":["oe-write"],"summary":"Write Unlock","operationId":"write_unlock_api_storefront_write_unlock_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnlockRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/storefront/write/redeem":{"post":{"tags":["oe-write"],"summary":"Write Redeem","description":"Exchange a PAID Stripe checkout session for a local unlock entitlement.","operationId":"write_redeem_api_storefront_write_redeem_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RedeemRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/storefront/write/health":{"get":{"tags":["oe-write"],"summary":"Write Health","operationId":"write_health_api_storefront_write_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/divisions/":{"get":{"tags":["divisions"],"summary":"List All Divisions","description":"List all registered divisions and their status.","operationId":"list_all_divisions_api_divisions__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/divisions/{name}/status":{"get":{"tags":["divisions"],"summary":"Division Status","description":"Health + metrics for a specific division.","operationId":"division_status_api_divisions__name__status_get","parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/divisions/{name}/ingest":{"post":{"tags":["divisions"],"summary":"Division Ingest","description":"Run the full pipeline (ingest → normalize → process → generate) for a division.","operationId":"division_ingest_api_divisions__name__ingest_post","parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/divisions/{name}/process":{"post":{"tags":["divisions"],"summary":"Division Process","description":"Alias for ingest — runs the full pipeline.","operationId":"division_process_api_divisions__name__process_post","parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/divisions/{name}/jobs/{job_id}":{"get":{"tags":["divisions"],"summary":"Division Job Detail","description":"Get details for a specific job.","operationId":"division_job_detail_api_divisions__name__jobs__job_id__get","parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}},{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/divisions/{name}/submit":{"post":{"tags":["divisions"],"summary":"Division Submit","description":"Submit a completed job's outputs to external portals.","operationId":"division_submit_api_divisions__name__submit_post","parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/divisions/{name}/jobs":{"get":{"tags":["divisions"],"summary":"Division Jobs","description":"List recent jobs for a division.","operationId":"division_jobs_api_divisions__name__jobs_get","parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AgentRunRequest":{"properties":{"task":{"type":"string","title":"Task"},"project_path":{"type":"string","title":"Project Path","default":"C:\\A3E_ECOSYSTEM"},"max_steps":{"type":"integer","title":"Max Steps","default":20},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model"}},"type":"object","required":["task"],"title":"AgentRunRequest"},"AutoApplyRequest":{"properties":{"email":{"type":"string","minLength":3,"title":"Email"},"job_ids":{"items":{"type":"string"},"type":"array","title":"Job Ids","description":"Specific job IDs to apply to. If empty, searches for matches."},"max_applications":{"type":"integer","maximum":25.0,"minimum":1.0,"title":"Max Applications","default":5},"auto_submit":{"type":"boolean","title":"Auto Submit","description":"If False, fills forms but does not click submit on generic sites.","default":false}},"type":"object","required":["email"],"title":"AutoApplyRequest","description":"Request to auto-apply to matched jobs."},"BlueprintRequest":{"properties":{"prompt":{"type":"string","title":"Prompt"},"genre":{"type":"string","title":"Genre","default":"pop"},"mood":{"type":"string","title":"Mood","default":""},"bpm":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Bpm"},"key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key"},"lyrics":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lyrics"}},"type":"object","required":["prompt"],"title":"BlueprintRequest"},"Body_api_trigger_file_api_triggers_file_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"},"data":{"additionalProperties":true,"type":"object","title":"Data"}},"type":"object","title":"Body_api_trigger_file_api_triggers_file_post"},"Body_generate_lyrics_from_audio_api_generate_lyrics_from_audio_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_generate_lyrics_from_audio_api_generate_lyrics_from_audio_post"},"Body_lora_upload_api_lora_upload_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_lora_upload_api_lora_upload_post"},"Body_merge_api_services_pdf_merge_merge_post":{"properties":{"files":{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array","title":"Files"}},"type":"object","required":["files"],"title":"Body_merge_api_services_pdf_merge_merge_post"},"Body_music_upload_api_music_upload_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_music_upload_api_music_upload_post"},"Body_process_api_services_lyrics_generator_process_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_process_api_services_lyrics_generator_process_post"},"Body_process_file_api_services_transcription_summarizer_process_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_process_file_api_services_transcription_summarizer_process_post"},"Body_save_voice_reference_api_voices_save_reference_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_save_voice_reference_api_voices_save_reference_post"},"Body_upload_resume_api_services_job_application_bot_profile_upload_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"},"email":{"type":"string","title":"Email"}},"type":"object","required":["file","email"],"title":"Body_upload_resume_api_services_job_application_bot_profile_upload_post"},"Body_video_upload_api_video_upload_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_video_upload_api_video_upload_post"},"Body_voice_from_upload_api_voice_from_upload_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_voice_from_upload_api_voice_from_upload_post"},"Body_voice_upload_api_voice_upload_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_voice_upload_api_voice_upload_post"},"Body_voices_upload_training_api_voices_upload_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_voices_upload_training_api_voices_upload_post"},"BookDistributeRequest":{"properties":{"platform":{"type":"string","title":"Platform"},"format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Format","default":"pdf"},"caption":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Caption","default":""}},"type":"object","required":["platform"],"title":"BookDistributeRequest"},"BookGenRequest":{"properties":{"title":{"type":"string","title":"Title"},"genre":{"type":"string","title":"Genre","default":"fiction"},"outline":{"type":"string","title":"Outline","default":""},"chapters":{"type":"integer","title":"Chapters","default":5},"style":{"type":"string","title":"Style","default":""}},"type":"object","required":["title"],"title":"BookGenRequest"},"BranchAdvanceRequest":{"properties":{"parent_chapter_id":{"type":"string","title":"Parent Chapter Id"},"choice_id":{"type":"string","title":"Choice Id"},"tier":{"type":"string","title":"Tier","default":"free"}},"type":"object","required":["parent_chapter_id","choice_id"],"title":"BranchAdvanceRequest"},"BroadcastSignalRequest":{"properties":{"exchange":{"type":"string","title":"Exchange"},"market":{"type":"string","title":"Market"},"signal_type":{"type":"string","title":"Signal Type"},"systems":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Systems"},"percentage_profit":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Percentage Profit"},"stop_loss":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Stop Loss"},"test_mode":{"type":"boolean","title":"Test Mode","default":false}},"type":"object","required":["exchange","market","signal_type"],"title":"BroadcastSignalRequest"},"ChannelCreate":{"properties":{"platform":{"type":"string","title":"Platform"},"name":{"type":"string","title":"Name"},"auth_type":{"type":"string","title":"Auth Type","default":"oauth"},"credentials":{"additionalProperties":true,"type":"object","title":"Credentials","default":{}}},"type":"object","required":["platform","name"],"title":"ChannelCreate"},"ChannelPublishRequest":{"properties":{"asset_id":{"type":"string","title":"Asset Id"},"caption":{"type":"string","title":"Caption","default":""},"scheduled_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scheduled At"}},"type":"object","required":["asset_id"],"title":"ChannelPublishRequest"},"CheckoutRequest":{"properties":{"product_id":{"type":"string","title":"Product Id"},"local":{"type":"boolean","title":"Local","default":false}},"type":"object","required":["product_id"],"title":"CheckoutRequest"},"ConversationCreate":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title","default":"New Session"},"context":{"type":"string","title":"Context","default":"coo"}},"type":"object","title":"ConversationCreate"},"DataResellRunRequest":{"properties":{"sources":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Sources"},"niche":{"type":"string","title":"Niche","default":"market_data"},"output_format":{"type":"string","title":"Output Format","default":"csv"},"upload_target":{"type":"string","title":"Upload Target","default":"gumroad"}},"type":"object","title":"DataResellRunRequest"},"DevAIRequest":{"properties":{"prompt":{"type":"string","title":"Prompt"},"code_context":{"type":"string","title":"Code Context","default":""},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider"}},"type":"object","required":["prompt"],"title":"DevAIRequest"},"DevDeleteRequest":{"properties":{"path":{"type":"string","title":"Path"}},"type":"object","required":["path"],"title":"DevDeleteRequest"},"DevFileRequest":{"properties":{"path":{"type":"string","title":"Path"},"content":{"type":"string","title":"Content"}},"type":"object","required":["path","content"],"title":"DevFileRequest"},"DevMkdirRequest":{"properties":{"path":{"type":"string","title":"Path"}},"type":"object","required":["path"],"title":"DevMkdirRequest"},"DevRenameRequest":{"properties":{"old_path":{"type":"string","title":"Old Path"},"new_path":{"type":"string","title":"New Path"}},"type":"object","required":["old_path","new_path"],"title":"DevRenameRequest"},"DevTerminalRequest":{"properties":{"command":{"type":"string","title":"Command"}},"type":"object","required":["command"],"title":"DevTerminalRequest"},"DevWorkspaceRequest":{"properties":{"path":{"type":"string","title":"Path"}},"type":"object","required":["path"],"title":"DevWorkspaceRequest"},"DistributionConfigRequest":{"properties":{"chrome_profile_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chrome Profile Path"},"chrome_user_data_dir":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chrome User Data Dir"},"chrome_profile_dir":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chrome Profile Dir"}},"type":"object","title":"DistributionConfigRequest"},"DocumentGenerateRequest":{"properties":{"doc_type":{"type":"string","title":"Doc Type"},"inputs":{"additionalProperties":{"type":"string"},"type":"object","title":"Inputs"},"user_email":{"type":"string","title":"User Email","default":""},"api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Key"},"target_languages":{"items":{"type":"string"},"type":"array","title":"Target Languages"},"output_format":{"type":"string","title":"Output Format","default":"pdf"}},"type":"object","required":["doc_type"],"title":"DocumentGenerateRequest"},"DocumentGenerateResponse":{"properties":{"success":{"type":"boolean","title":"Success","default":true},"pdf_url":{"type":"string","title":"Pdf Url","default":""},"filename":{"type":"string","title":"Filename","default":""},"doc_type":{"type":"string","title":"Doc Type","default":""},"localized_urls":{"additionalProperties":{"type":"string"},"type":"object","title":"Localized Urls"},"error":{"type":"string","title":"Error","default":""}},"type":"object","title":"DocumentGenerateResponse"},"ExtractInstrumentalRequest":{"properties":{"src_audio_path":{"type":"string","title":"Src Audio Path"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"}},"type":"object","required":["src_audio_path"],"title":"ExtractInstrumentalRequest"},"ExtractVocalsRequest":{"properties":{"src_audio_path":{"type":"string","title":"Src Audio Path"},"genre":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Genre","default":"pop"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"}},"type":"object","required":["src_audio_path"],"title":"ExtractVocalsRequest"},"FreeMatchesRequest":{"properties":{"email":{"type":"string","title":"Email"},"query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query"},"location":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location"},"country":{"type":"string","title":"Country","default":"ca"}},"type":"object","required":["email"],"title":"FreeMatchesRequest"},"GenerateRequest":{"properties":{"prompt":{"type":"string","title":"Prompt","default":""},"lyrics":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lyrics"},"instrumental":{"type":"boolean","title":"Instrumental","default":false},"style":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Style"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"model":{"type":"string","title":"Model","default":"chirp-v3-5"},"download":{"type":"boolean","title":"Download","default":true}},"type":"object","title":"GenerateRequest"},"GenerateSetRequest":{"properties":{"count":{"type":"integer","title":"Count","default":5},"prompt":{"type":"string","title":"Prompt","default":""},"genre":{"type":"string","title":"Genre","default":""},"mood":{"type":"string","title":"Mood","default":""},"bpm":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Bpm"},"key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key"},"lyrics_script":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lyrics Script"},"duration":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration"},"seed":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Seed"},"song_blueprint":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Song Blueprint"}},"type":"object","title":"GenerateSetRequest"},"GitAddRequest":{"properties":{"files":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Files"},"repo_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Repo Path"}},"type":"object","title":"GitAddRequest"},"GitCheckoutRequest":{"properties":{"branch":{"type":"string","title":"Branch"},"create":{"type":"boolean","title":"Create","default":false},"repo_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Repo Path"}},"type":"object","required":["branch"],"title":"GitCheckoutRequest"},"GitCloneRequest":{"properties":{"url":{"type":"string","title":"Url"},"target_dir":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Dir"}},"type":"object","required":["url"],"title":"GitCloneRequest"},"GitCommitRequest":{"properties":{"message":{"type":"string","title":"Message"},"repo_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Repo Path"}},"type":"object","required":["message"],"title":"GitCommitRequest"},"GitPushRequest":{"properties":{"remote":{"type":"string","title":"Remote","default":"origin"},"branch":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Branch"},"repo_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Repo Path"}},"type":"object","title":"GitPushRequest"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ImageGenRequest":{"properties":{"prompt":{"type":"string","title":"Prompt"},"style":{"type":"string","title":"Style","default":""},"width":{"type":"integer","title":"Width","default":1024},"height":{"type":"integer","title":"Height","default":1024},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider"},"engine_mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Engine Mode"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model"},"seed":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Seed"},"negative_prompt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Negative Prompt"},"num_inference_steps":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Num Inference Steps"},"aspect_ratio":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Aspect Ratio"},"camera_angle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Camera Angle"},"depth_of_field":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Depth Of Field"},"guidance_scale":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Guidance Scale"},"variations":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Variations"},"lighting":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lighting"},"output_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output Format"},"upscale":{"anyOf":[{},{"type":"null"}],"title":"Upscale"},"sharpen":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Sharpen"},"background_remove":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Background Remove"},"text_overlay":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Overlay"}},"type":"object","required":["prompt"],"title":"ImageGenRequest"},"InvoiceRequest":{"properties":{"sender_name":{"type":"string","title":"Sender Name","default":""},"sender_email":{"type":"string","title":"Sender Email","default":""},"sender_address":{"type":"string","title":"Sender Address","default":""},"sender_phone":{"type":"string","title":"Sender Phone","default":""},"recipient_name":{"type":"string","title":"Recipient Name","default":""},"recipient_email":{"type":"string","title":"Recipient Email","default":""},"recipient_address":{"type":"string","title":"Recipient Address","default":""},"invoice_number":{"type":"string","title":"Invoice Number","default":""},"issue_date":{"type":"string","title":"Issue Date","default":""},"due_date":{"type":"string","title":"Due Date","default":""},"items":{"items":{"$ref":"#/components/schemas/LineItem"},"type":"array","title":"Items"},"tax_rate":{"type":"number","title":"Tax Rate","default":0.0},"notes":{"type":"string","title":"Notes","default":""},"currency":{"type":"string","title":"Currency","default":"CAD"},"user_email":{"type":"string","title":"User Email","default":""}},"type":"object","title":"InvoiceRequest"},"InvoiceResponse":{"properties":{"success":{"type":"boolean","title":"Success","default":true},"pdf_url":{"type":"string","title":"Pdf Url","default":""},"invoice_number":{"type":"string","title":"Invoice Number","default":""},"total":{"type":"number","title":"Total","default":0.0},"error":{"type":"string","title":"Error","default":""}},"type":"object","title":"InvoiceResponse"},"LeadContact":{"properties":{"name":{"type":"string","title":"Name","default":""},"email":{"type":"string","title":"Email","default":""},"subject":{"type":"string","title":"Subject","default":""},"message":{"type":"string","title":"Message","default":""}},"type":"object","title":"LeadContact"},"LeadNewsletter":{"properties":{"email":{"type":"string","title":"Email","default":""}},"type":"object","title":"LeadNewsletter"},"LicenseRequest":{"properties":{"product_id":{"type":"string","title":"Product Id"},"user_id":{"type":"string","title":"User Id"},"tier":{"type":"string","title":"Tier","default":"standard"}},"type":"object","required":["product_id","user_id"],"title":"LicenseRequest"},"LicenseResponse":{"properties":{"key":{"type":"string","title":"Key"},"product_id":{"type":"string","title":"Product Id","default":""},"tier":{"type":"string","title":"Tier","default":""},"success":{"type":"boolean","title":"Success","default":true}},"type":"object","required":["key"],"title":"LicenseResponse"},"LineItem":{"properties":{"description":{"type":"string","title":"Description"},"quantity":{"type":"number","title":"Quantity","default":1},"unit_price":{"type":"number","title":"Unit Price","default":0.0}},"type":"object","required":["description"],"title":"LineItem"},"LoraTrainRequest":{"properties":{"name":{"type":"string","title":"Name","default":"default_lora"},"base_model":{"type":"string","title":"Base Model","default":"ace-step"},"training_type":{"type":"string","title":"Training Type","default":"voice"},"dataset_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dataset Path"},"training_audio_paths":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Training Audio Paths"},"epochs":{"type":"integer","title":"Epochs","default":10},"learning_rate":{"type":"number","title":"Learning Rate","default":0.0001},"batch_size":{"type":"integer","title":"Batch Size","default":4},"steps":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Steps"}},"type":"object","title":"LoraTrainRequest","description":"LoRA training job for voice or style fine-tuning."},"LyricsGenRequest":{"properties":{"prompt":{"type":"string","title":"Prompt"},"genre":{"type":"string","title":"Genre","default":""},"mood":{"type":"string","title":"Mood","default":""}},"type":"object","required":["prompt"],"title":"LyricsGenRequest"},"MatchesRequest":{"properties":{"email":{"type":"string","title":"Email"},"max_cover_letters":{"type":"integer","title":"Max Cover Letters","default":10}},"type":"object","required":["email"],"title":"MatchesRequest"},"MessageCreate":{"properties":{"content":{"type":"string","title":"Content"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider"}},"type":"object","required":["content"],"title":"MessageCreate"},"MiniAuditRequest":{"properties":{"domain":{"type":"string","title":"Domain"},"email":{"type":"string","title":"Email"}},"type":"object","required":["domain","email"],"title":"MiniAuditRequest"},"MissionCreate":{"properties":{"title":{"type":"string","title":"Title"},"description":{"type":"string","title":"Description","default":""},"type":{"type":"string","title":"Type","default":"production"},"trigger":{"type":"string","title":"Trigger","default":"manual"},"steps":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Steps","default":[]},"scheduled_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scheduled At"}},"type":"object","required":["title"],"title":"MissionCreate"},"MixMasterRequest":{"properties":{"instrumental_path":{"type":"string","title":"Instrumental Path"},"vocal_path":{"type":"string","title":"Vocal Path"},"vocal_db":{"type":"number","title":"Vocal Db","default":4.0},"target_lufs":{"type":"number","title":"Target Lufs","default":-14.0},"reference_mastering_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reference Mastering Path"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"}},"type":"object","required":["instrumental_path","vocal_path"],"title":"MixMasterRequest"},"ModeSwitch":{"properties":{"mode":{"type":"string","title":"Mode"}},"type":"object","required":["mode"],"title":"ModeSwitch"},"ModelDownloadRequest":{"properties":{"category":{"type":"string","title":"Category"},"model_id":{"type":"string","title":"Model Id"}},"type":"object","required":["category","model_id"],"title":"ModelDownloadRequest"},"MusicRequest":{"properties":{"prompt":{"type":"string","title":"Prompt","default":""},"genre":{"type":"string","title":"Genre","default":""},"bpm":{"type":"integer","title":"Bpm","default":120},"duration":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider"},"mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode"},"mood":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mood"},"key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key"},"autotune":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Autotune"},"voice_filters_notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice Filters Notes"},"amplifier_notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Amplifier Notes"},"lyrics_script":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lyrics Script"},"engine_mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Engine Mode"},"lead_vocal_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lead Vocal Source"},"lead_recording_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lead Recording Path"},"lead_clone_voice_tag":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lead Clone Voice Tag"},"lead_clone_voice_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lead Clone Voice Id"},"lead_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lead Type"},"hook_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Hook Enabled"},"hook_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hook Type"},"hook_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hook Source"},"hook_clone_voice_tag":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hook Clone Voice Tag"},"hook_clone_voice_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hook Clone Voice Id"},"hook_clone_reference_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hook Clone Reference Path"},"hook_upload_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hook Upload Path"},"backing_vocals":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Backing Vocals"},"bv_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bv Source"},"bv_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bv Type"},"bv_clone_voice_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bv Clone Voice Id"},"bv_upload_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bv Upload Path"},"adlibs":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Adlibs"},"adlib_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Adlib Source"},"adlib_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Adlib Type"},"adlib_upload_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Adlib Upload Path"},"drums_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Drums Source"},"drums_upload_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Drums Upload Path"},"bass_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bass Source"},"bass_upload_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bass Upload Path"},"guitar_keys_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Guitar Keys Source"},"guitar_keys_upload_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Guitar Keys Upload Path"},"task_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Task Type","default":"text2music"},"sample_query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sample Query"},"instruction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instruction"},"reference_audio_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reference Audio Path"},"src_audio_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Src Audio Path"},"reference_song_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reference Song Path"},"poor_demo_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Poor Demo Path"},"custom_instrumental_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Custom Instrumental Path"},"instrumental":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Instrumental","default":false},"thinking":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Thinking","default":true},"use_format":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Use Format","default":false},"key_scale":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key Scale"},"time_signature":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Time Signature"},"audio_duration":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Audio Duration"},"repainting_start":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Repainting Start"},"repainting_end":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Repainting End"},"track_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Track Name"},"track_names":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Track Names"},"audio_cover_strength":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Audio Cover Strength"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model"},"inference_steps":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Inference Steps"},"guidance_scale":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Guidance Scale"},"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size","default":1},"audio_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Audio Format","default":"mp3"},"seed":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Seed"},"vocal_language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vocal Language","default":"en"},"use_cot_caption":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Use Cot Caption"},"use_cot_language":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Use Cot Language"},"use_erg_lyric":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Use Erg Lyric"},"lyric_guidance_scale":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Lyric Guidance Scale"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"duration_preset":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Duration Preset"},"lora_name_or_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lora Name Or Path"},"lora_weight":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Lora Weight"},"structure":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Structure"},"intro_length_sec":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Intro Length Sec"},"chorus_repetitions":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chorus Repetitions"},"outro_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Outro Type"},"lead_voice_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lead Voice Type"},"harmony":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Harmony"},"accent":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Accent"},"emotion":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Emotion"},"instrument_style":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instrument Style"},"beat_intensity":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Beat Intensity"},"reverb_room":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reverb Room"},"mastering":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mastering"},"output_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output Type"},"short_clip_sec":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Short Clip Sec"},"auto_title":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Auto Title"},"auto_tags":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Auto Tags"},"auto_description":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Auto Description"},"schedule_release_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schedule Release At"},"publish_platforms":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Publish Platforms"},"delivery_style_reference_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Delivery Style Reference Path"},"reference_instrumental_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reference Instrumental Path"},"fish_speech_reference_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fish Speech Reference Text"},"vocal_engine":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vocal Engine","default":"co-generated"},"target_platform_preset":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Platform Preset"},"project_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Name"},"production_mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Production Mode"},"complete_mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Complete Mode"},"quantization_strength":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Quantization Strength","default":0.7},"reference_mastering_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reference Mastering Path"},"song_blueprint":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Song Blueprint"}},"type":"object","title":"MusicRequest"},"NewsletterRunRequest":{"properties":{"sources":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Sources"},"topic":{"type":"string","title":"Topic","default":"AI and tech"},"output_format":{"type":"string","title":"Output Format","default":"html"}},"type":"object","title":"NewsletterRunRequest"},"PayPalFulfillRequest":{"properties":{"order_id":{"type":"string","title":"Order Id"},"product_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Product Id"}},"type":"object","required":["order_id"],"title":"PayPalFulfillRequest"},"PerimeterReportRequest":{"properties":{"domain":{"type":"string","title":"Domain","default":""},"email":{"type":"string","title":"Email","default":""},"utm_source":{"type":"string","title":"Utm Source","default":""},"utm_campaign":{"type":"string","title":"Utm Campaign","default":""},"utm_content":{"type":"string","title":"Utm Content","default":""},"website":{"type":"string","title":"Website","default":""}},"type":"object","title":"PerimeterReportRequest"},"PipelineRunRequest":{"properties":{"script":{"type":"string","title":"Script","default":""},"prompt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prompt"},"target_duration_sec":{"type":"integer","title":"Target Duration Sec","default":60},"lyrics_script":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lyrics Script"}},"type":"object","title":"PipelineRunRequest"},"PlatformCredentialsRequest":{"properties":{"platform":{"type":"string","title":"Platform"},"username":{"type":"string","title":"Username"},"password":{"type":"string","title":"Password"},"api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Key"},"api_secret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Secret"}},"type":"object","required":["platform","username","password"],"title":"PlatformCredentialsRequest"},"PodcastRequest":{"properties":{"topic":{"type":"string","title":"Topic"},"duration_min":{"type":"integer","title":"Duration Min","default":5},"style":{"type":"string","title":"Style","default":"talk"}},"type":"object","required":["topic"],"title":"PodcastRequest"},"PodcastResponse":{"properties":{"path":{"type":"string","title":"Path"},"success":{"type":"boolean","title":"Success","default":true}},"type":"object","required":["path"],"title":"PodcastResponse"},"ProfileForm":{"properties":{"email":{"type":"string","minLength":3,"title":"Email"},"name":{"type":"string","maxLength":200,"title":"Name","default":""},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary"},"skills":{"items":{"type":"string"},"type":"array","title":"Skills"},"experience":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Experience"},"education":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Education"},"target_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Role"},"target_location":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Location"},"target_remote":{"type":"boolean","title":"Target Remote","default":true}},"type":"object","required":["email"],"title":"ProfileForm","description":"Profile from manual form (no resume upload)."},"ProjectCreateRequest":{"properties":{"name":{"type":"string","title":"Name"},"template":{"type":"string","title":"Template"}},"type":"object","required":["name","template"],"title":"ProjectCreateRequest"},"PromoteSectionRequest":{"properties":{"audio_path":{"type":"string","title":"Audio Path"},"keep_start_sec":{"type":"number","title":"Keep Start Sec"},"keep_end_sec":{"type":"number","title":"Keep End Sec"},"total_duration":{"type":"number","title":"Total Duration"},"prompt":{"type":"string","title":"Prompt","default":""},"genre":{"type":"string","title":"Genre","default":""},"bpm":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Bpm"},"key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key"}},"type":"object","required":["audio_path","keep_start_sec","keep_end_sec","total_duration"],"title":"PromoteSectionRequest"},"PublishRequest":{"properties":{"title":{"type":"string","title":"Title","default":""},"description":{"type":"string","title":"Description","default":""},"caption":{"type":"string","title":"Caption","default":""},"tags":{"items":{"type":"string"},"type":"array","title":"Tags","default":[]},"media_path":{"type":"string","title":"Media Path","default":""},"media_type":{"type":"string","title":"Media Type","default":"video"},"thumbnail_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Thumbnail Path"},"scheduled_time":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scheduled Time"},"platforms":{"items":{"type":"string"},"type":"array","title":"Platforms","default":[]},"price_cents":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Price Cents"}},"type":"object","title":"PublishRequest"},"QuickVideoRequest":{"properties":{"script":{"type":"string","title":"Script"},"title":{"type":"string","title":"Title","default":"video"},"style":{"type":"string","title":"Style","default":"cyberpunk"},"voice":{"type":"string","title":"Voice","default":"en-US-GuyNeural"},"resolution":{"type":"string","title":"Resolution","default":"portrait"},"aspect":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Aspect","default":"portrait"},"camera_motion":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Camera Motion"},"duration_preset":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Duration Preset"},"duration_custom_sec":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration Custom Sec"},"music_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Music File"},"music_volume":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Music Volume","default":0.3},"narration_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Narration File"},"export_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Export Format","default":"mp4"},"short_clip_sec":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Short Clip Sec"}},"type":"object","required":["script"],"title":"QuickVideoRequest"},"RedeemRequest":{"properties":{"session_id":{"type":"string","title":"Session Id"},"device_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Id","default":""}},"type":"object","required":["session_id"],"title":"RedeemRequest"},"RegenerateSectionRequest":{"properties":{"audio_path":{"type":"string","title":"Audio Path"},"start_sec":{"type":"number","title":"Start Sec"},"end_sec":{"type":"number","title":"End Sec"},"prompt":{"type":"string","title":"Prompt","default":""},"genre":{"type":"string","title":"Genre","default":""},"bpm":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Bpm"},"key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key"}},"type":"object","required":["audio_path","start_sec","end_sec"],"title":"RegenerateSectionRequest"},"ResumeRequest":{"properties":{"name":{"type":"string","title":"Name"},"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary"},"experience":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Experience","default":[]},"skills":{"items":{"type":"string"},"type":"array","title":"Skills","default":[]},"education":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Education","default":[]}},"type":"object","required":["name"],"title":"ResumeRequest"},"ResumeResponse":{"properties":{"pdf_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pdf Path"},"content":{"type":"string","title":"Content","default":""},"success":{"type":"boolean","title":"Success","default":true}},"type":"object","title":"ResumeResponse"},"SampleCoverRequest":{"properties":{"email":{"type":"string","title":"Email"},"job_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Job Id"},"job_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Job Title"},"job_company":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Job Company"},"job_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Job Description"}},"type":"object","required":["email"],"title":"SampleCoverRequest"},"SearchPreferences":{"properties":{"query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query"},"location":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location"},"country":{"type":"string","title":"Country","default":"ca"},"results_per_page":{"type":"integer","title":"Results Per Page","default":20},"page":{"type":"integer","title":"Page","default":1},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"salary_min":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Salary Min"},"salary_max":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Salary Max"},"remote_only":{"type":"boolean","title":"Remote Only","default":false}},"type":"object","title":"SearchPreferences","description":"Job search preferences."},"SendSignalRequest":{"properties":{"system":{"type":"string","title":"System"},"exchange":{"type":"string","title":"Exchange"},"market":{"type":"string","title":"Market"},"signal_type":{"type":"string","title":"Signal Type"},"percentage_profit":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Percentage Profit"},"stop_loss":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Stop Loss"},"stop_loss_timeout_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Stop Loss Timeout Count"},"stop_loss_timeout_val":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stop Loss Timeout Val"},"trailing_percentage":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Trailing Percentage"},"trailing_arm_percentage":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Trailing Arm Percentage"},"test_mode":{"type":"boolean","title":"Test Mode","default":false}},"type":"object","required":["system","exchange","market","signal_type"],"title":"SendSignalRequest"},"SessionAdvanceRequest":{"properties":{"choice_id":{"type":"string","title":"Choice Id"},"tier":{"type":"string","title":"Tier","default":"free"}},"type":"object","required":["choice_id"],"title":"SessionAdvanceRequest"},"SessionCreateRequest":{"properties":{"story_id":{"type":"string","title":"Story Id"},"reader_id":{"type":"string","title":"Reader Id"}},"type":"object","required":["story_id","reader_id"],"title":"SessionCreateRequest"},"SetCookieRequest":{"properties":{"cookie":{"type":"string","title":"Cookie"}},"type":"object","required":["cookie"],"title":"SetCookieRequest"},"SettingsUpdate":{"properties":{"ollama_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ollama Url"},"vault_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vault Path"},"default_text_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Default Text Model"},"default_image_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Default Image Model"},"default_voice":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Default Voice"},"chrome_user_data_dir":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chrome User Data Dir"},"chrome_profile_dir":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chrome Profile Dir"},"playwright_browser":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Playwright Browser"},"payhip_link":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Payhip Link"},"paypal_link":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Paypal Link"},"stripe_link":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stripe Link"}},"type":"object","title":"SettingsUpdate"},"SnapshotStateRequest":{"properties":{"state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"State"}},"type":"object","title":"SnapshotStateRequest"},"StatusRequest":{"properties":{"ids":{"items":{"type":"string"},"type":"array","title":"Ids"}},"type":"object","required":["ids"],"title":"StatusRequest"},"StockSearchRequest":{"properties":{"query":{"type":"string","title":"Query"},"source":{"type":"string","title":"Source","default":"pexels"},"count":{"type":"integer","title":"Count","default":5},"orientation":{"type":"string","title":"Orientation","default":"portrait"}},"type":"object","required":["query"],"title":"StockSearchRequest"},"StoryCreateRequest":{"properties":{"creator_id":{"type":"string","title":"Creator Id"},"theme":{"type":"string","title":"Theme"},"genre":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Genre"},"tone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tone"}},"type":"object","required":["creator_id","theme"],"title":"StoryCreateRequest"},"StripeFulfillRequest":{"properties":{"session_id":{"type":"string","title":"Session Id"}},"type":"object","required":["session_id"],"title":"StripeFulfillRequest"},"TTSRequest":{"properties":{"text":{"type":"string","title":"Text"},"voice":{"type":"string","title":"Voice","default":"en-US-GuyNeural"},"engine":{"type":"string","title":"Engine","default":"edge_tts"}},"type":"object","required":["text"],"title":"TTSRequest"},"TextGenRequest":{"properties":{"prompt":{"type":"string","title":"Prompt"},"system_message":{"type":"string","title":"System Message","default":""},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider"},"temperature":{"type":"number","title":"Temperature","default":0.7},"max_tokens":{"type":"integer","title":"Max Tokens","default":4096}},"type":"object","required":["prompt"],"title":"TextGenRequest"},"TradingAnalyzeRequest":{"properties":{"symbol":{"type":"string","title":"Symbol"},"timeframe":{"type":"string","title":"Timeframe","default":"1h"}},"type":"object","required":["symbol"],"title":"TradingAnalyzeRequest"},"TradingCheckoutRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"tier":{"type":"string","title":"Tier","default":"basic"},"market":{"type":"string","title":"Market"},"broker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Broker"},"webhook_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Webhook Url"}},"type":"object","required":["email","market"],"title":"TradingCheckoutRequest"},"TradingConnectionRequest":{"properties":{"system":{"type":"string","title":"System"},"signal_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Signal Id"},"api_key":{"type":"string","title":"Api Key"},"api_secret":{"type":"string","title":"Api Secret"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","required":["system","api_key","api_secret"],"title":"TradingConnectionRequest"},"TradingDeliverRequest":{"properties":{"signals":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Signals"},"market":{"type":"string","title":"Market"},"tier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tier"}},"type":"object","required":["signals","market"],"title":"TradingDeliverRequest"},"TradingFulfillRequest":{"properties":{"session_id":{"type":"string","title":"Session Id"}},"type":"object","required":["session_id"],"title":"TradingFulfillRequest"},"TradingProfileRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"broker":{"type":"string","title":"Broker"},"api_key":{"type":"string","title":"Api Key"},"webhook_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Webhook Url"},"subscription_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subscription Id"}},"type":"object","required":["email","broker","api_key"],"title":"TradingProfileRequest"},"TradingSubscribeRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"tier":{"type":"string","title":"Tier","default":"basic"},"market":{"type":"string","title":"Market","default":"crypto"},"webhook_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Webhook Url"},"broker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Broker"},"api_key_encrypted":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Key Encrypted"},"payment_intent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Payment Intent Id"}},"type":"object","required":["email"],"title":"TradingSubscribeRequest"},"TranscriptionResult":{"properties":{"success":{"type":"boolean","title":"Success","default":true},"text":{"type":"string","title":"Text","default":""},"summary":{"type":"string","title":"Summary","default":""},"duration_minutes":{"type":"number","title":"Duration Minutes","default":0},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","title":"TranscriptionResult"},"UnlockRequest":{"properties":{"plan":{"type":"string","title":"Plan","default":"onetime"},"device_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Id","default":""},"local":{"type":"boolean","title":"Local","default":false}},"type":"object","title":"UnlockRequest"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"ViabilityBatchRequest":{"properties":{"opportunities":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Opportunities","default":[]},"threshold":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Threshold"}},"type":"object","title":"ViabilityBatchRequest"},"ViabilityScoreRequest":{"properties":{"demand":{"type":"number","title":"Demand","default":0.5},"competition":{"type":"number","title":"Competition","default":0.5},"differentiation":{"type":"number","title":"Differentiation","default":0.5},"monetization":{"type":"number","title":"Monetization","default":1.0}},"type":"object","title":"ViabilityScoreRequest"},"VideoGenRequest":{"properties":{"prompt":{"type":"string","title":"Prompt"},"style":{"type":"string","title":"Style","default":"cinematic"},"duration":{"type":"integer","title":"Duration","default":5},"resolution":{"type":"string","title":"Resolution","default":"1920x1080"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider"},"engine_mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Engine Mode"},"image_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Path"},"num_inference_steps":{"type":"integer","title":"Num Inference Steps","default":30},"seed":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Seed"},"negative_prompt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Negative Prompt"}},"type":"object","required":["prompt"],"title":"VideoGenRequest"},"VideoProjectRequest":{"properties":{"title":{"type":"string","title":"Title"},"slides":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Slides"},"style":{"type":"string","title":"Style","default":"cyberpunk"},"voice_engine":{"type":"string","title":"Voice Engine","default":"edge_tts"},"voice_name":{"type":"string","title":"Voice Name","default":"en-US-GuyNeural"},"music_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Music File"},"music_volume":{"type":"number","title":"Music Volume","default":0.3},"resolution":{"type":"string","title":"Resolution","default":"portrait"},"camera_motion":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Camera Motion"},"duration_preset":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Duration Preset"},"duration_custom_sec":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration Custom Sec"},"narration_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Narration File"},"export_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Export Format","default":"mp4"},"short_clip_sec":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Short Clip Sec"}},"type":"object","required":["title","slides"],"title":"VideoProjectRequest"},"VideoStudioRequest":{"properties":{"video_type":{"type":"string","title":"Video Type","default":"narrated_video"},"story_prompt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Story Prompt"},"script":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Script"},"scenes":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Scenes"},"shot_list":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Shot List"},"title":{"type":"string","title":"Title","default":"video"},"style":{"type":"string","title":"Style","default":"cyberpunk"},"visual_style":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visual Style"},"voice":{"type":"string","title":"Voice","default":"en-US-GuyNeural"},"voice_engine":{"type":"string","title":"Voice Engine","default":"edge_tts"},"voice_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice Name"},"resolution":{"type":"string","title":"Resolution","default":"1080p"},"aspect":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Aspect","default":"portrait"},"camera_motion":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Camera Motion","default":"static"},"duration_preset":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Duration Preset","default":"auto"},"duration_custom_sec":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration Custom Sec"},"attach_music_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Attach Music Path"},"attach_narration_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Attach Narration Path"},"auto_sync_lyrics":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Auto Sync Lyrics"},"lyrics_script":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lyrics Script"},"export_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Export Format","default":"mp4"},"short_clip_sec":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Short Clip Sec","default":30},"music_volume":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Music Volume","default":0.3},"prompt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prompt"},"engine_mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Engine Mode"},"image_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Path"},"duration":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration","default":5}},"type":"object","title":"VideoStudioRequest","description":"Unified request for Video Studio: routes by video_type to quick/project/AI."},"VoiceGenRequest":{"properties":{"text":{"type":"string","title":"Text"},"voice":{"type":"string","title":"Voice","default":"alloy"},"speed":{"type":"number","title":"Speed","default":1.0},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model"},"engine_mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Engine Mode"},"speaker_wav":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Speaker Wav"},"language":{"type":"string","title":"Language","default":"en"},"use_ssml":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Use Ssml"},"voice_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice Source"},"voice_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Voice Type"},"accent":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Accent"},"emotion":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Emotion"},"pitch":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Pitch"},"energy":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Energy"},"pauses":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pauses"},"breath_sounds":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Breath Sounds"},"output_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output Format"},"sample_rate":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sample Rate"},"channels":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Channels"}},"type":"object","required":["text"],"title":"VoiceGenRequest"},"WriteRequest":{"properties":{"occasion":{"type":"string","title":"Occasion","default":"general"},"tone":{"type":"string","title":"Tone","default":"heartfelt"},"speaker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Speaker","default":""},"subject":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subject","default":""},"relationship":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Relationship","default":""},"details":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Details","default":""},"polished":{"type":"boolean","title":"Polished","default":false},"device_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Id","default":""}},"type":"object","title":"WriteRequest"}}}}