

{"status":"success","message":"TSWG AI provider routing catalog. Routes are metadata only until provider secrets and execution adapters are configured.","providers":[{"provider_slug":"elevenlabs-audio","provider_name":"ElevenLabs Audio Provider","provider_type":"audio_generation","secret_env_name":"TSWG_ELEVENLABS_API_KEY","webhook_secret_env_name":"TSWG_ELEVENLABS_WEBHOOK_SECRET","env_present":"0","webhook_env_present":"0","last_checked_at":"2026-05-23 11:33:42","base_url":"","docs_url":"https://elevenlabs.io/docs","mode":"not_configured","status":"planned","readiness_notes":null,"notes":"Audio provider placeholder. Voice usage must follow permission/compliance rules."},{"provider_slug":"heygen-avatar","provider_name":"HeyGen Avatar Provider","provider_type":"avatar_generation","secret_env_name":"TSWG_HEYGEN_API_KEY","webhook_secret_env_name":"TSWG_HEYGEN_WEBHOOK_SECRET","env_present":"0","webhook_env_present":"0","last_checked_at":"2026-05-23 11:33:42","base_url":"","docs_url":"https://docs.heygen.com","mode":"not_configured","status":"planned","readiness_notes":null,"notes":"Avatar provider placeholder. Requires account, API key, usage limit, callback/webhook handling."},{"provider_slug":"openai-media","provider_name":"OpenAI Media / Responses Provider","provider_type":"ai_generation","secret_env_name":"TSWG_OPENAI_API_KEY","webhook_secret_env_name":"TSWG_OPENAI_WEBHOOK_SECRET","env_present":"0","webhook_env_present":"0","last_checked_at":"2026-05-23 11:33:42","base_url":"https://api.openai.com","docs_url":"https://platform.openai.com/docs","mode":"not_configured","status":"planned","readiness_notes":null,"notes":"Provider placeholder. Do not execute until env key, quota, and output review are configured."},{"provider_slug":"runway-video","provider_name":"Runway Video Provider","provider_type":"video_generation","secret_env_name":"TSWG_RUNWAY_API_KEY","webhook_secret_env_name":"TSWG_RUNWAY_WEBHOOK_SECRET","env_present":"0","webhook_env_present":"0","last_checked_at":"2026-05-23 11:33:42","base_url":"","docs_url":"https://docs.dev.runwayml.com","mode":"not_configured","status":"planned","readiness_notes":null,"notes":"Video provider placeholder. Requires provider contract and review gate."},{"provider_slug":"workflow-orchestrator","provider_name":"Workflow Orchestrator","provider_type":"workflow_automation","secret_env_name":"TSWG_WORKFLOW_PROVIDER_KEY","webhook_secret_env_name":"TSWG_WORKFLOW_WEBHOOK_SECRET","env_present":"0","webhook_env_present":"0","last_checked_at":"2026-05-23 11:33:42","base_url":"","docs_url":"","mode":"not_configured","status":"planned","readiness_notes":null,"notes":"Internal/no-code automation route placeholder for webhooks, approvals, and delivery workflows."}],"routes":[{"route_slug":"audio-elevenlabs-primary","request_type":"audio","product_slug":"text-to-audio-voice","provider_slug":"elevenlabs-audio","model_name":"text-to-speech","endpoint_path":"/v1/text-to-speech","input_contract":"script, voice_id, callback_url","output_contract":"request_id, status, audio_url, proof_required","proof_required":"1","route_status":"planned","notes":"Primary audio route."},{"route_slug":"avatar-heygen-primary","request_type":"avatar","product_slug":"ai-avatar-creation","provider_slug":"heygen-avatar","model_name":"avatar-generation","endpoint_path":"/v1/avatar/generate","input_contract":"prompt, avatar_style, voice_id, callback_url","output_contract":"request_id, status, video_url, proof_required","proof_required":"1","route_status":"planned","notes":"Primary avatar route. Provider execution not enabled until configured."},{"route_slug":"image-openai-primary","request_type":"image","product_slug":"text-to-image-generation","provider_slug":"openai-media","model_name":"image-generation","endpoint_path":"/v1/images/generations","input_contract":"prompt, size, style, callback_url","output_contract":"request_id, status, image_url, proof_required","proof_required":"1","route_status":"planned","notes":"Primary text-to-image route."},{"route_slug":"image-to-video-runway-primary","request_type":"image-to-video","product_slug":"text-image-to-video","provider_slug":"runway-video","model_name":"image-to-video","endpoint_path":"/v1/video/from-image","input_contract":"image_url, prompt, duration, callback_url","output_contract":"request_id, status, video_url, proof_required","proof_required":"1","route_status":"planned","notes":"Image-to-video route."},{"route_slug":"text-to-audio-elevenlabs-primary","request_type":"text-to-audio","product_slug":"text-to-audio-voice","provider_slug":"elevenlabs-audio","model_name":"text-to-speech","endpoint_path":"/v1/text-to-speech","input_contract":"script, voice_id, callback_url","output_contract":"request_id, status, audio_url, proof_required","proof_required":"1","route_status":"planned","notes":"Alias route for text-to-audio."},{"route_slug":"text-to-image-openai-primary","request_type":"text-to-image","product_slug":"text-to-image-generation","provider_slug":"openai-media","model_name":"image-generation","endpoint_path":"/v1/images/generations","input_contract":"prompt, size, style, callback_url","output_contract":"request_id, status, image_url, proof_required","proof_required":"1","route_status":"planned","notes":"Alias route for text-to-image."},{"route_slug":"video-runway-primary","request_type":"video","product_slug":"text-image-to-video","provider_slug":"runway-video","model_name":"video-generation","endpoint_path":"/v1/video/generate","input_contract":"prompt, image_url, duration, callback_url","output_contract":"request_id, status, video_url, proof_required","proof_required":"1","route_status":"planned","notes":"Primary video route."},{"route_slug":"workflow-orchestrator-primary","request_type":"workflow","product_slug":"workflow-automation-api","provider_slug":"workflow-orchestrator","model_name":"workflow-run","endpoint_path":"/v1/workflows/run","input_contract":"trigger, payload, callback_url","output_contract":"request_id, status, workflow_log, proof_required","proof_required":"1","route_status":"planned","notes":"Workflow route for automation and approvals."}],"security_note":"Raw provider secrets are not stored here. Use environment variable names and server-side configuration only."}