{"status":"ok","message":"Audio Semantic Router API","docs":"See README.md for full documentation.","authentication":"Protected endpoints require header: X-API-Key","routers":["expectativa","ciudad_sede","rival","no_payment","payment_method","yes_no","auth"],"endpoints":[{"path":"/","method":"GET","description":"Health check and API info (this response)"},{"path":"/healthz","method":"GET","description":"Liveness probe (always 200 if process responds)"},{"path":"/readyz","method":"GET","description":"Readiness probe (200 when startup complete and DB/client ready; 503 otherwise)"},{"path":"/audio-semantic-router","method":"POST","description":"Transcribe audio and classify with semantic router. Form: audio_file, language, router_model (yes_no|auth|payment_method|no_payment|default), phone, call_id, turn_number, current_node. Header: X-API-Key."},{"path":"/text-semantic-router","method":"POST","description":"Classify text only (no transcription). JSON body: text, router_model (optional). Header: X-API-Key."},{"path":"/routes","method":"GET","description":"Get routes for a router. Query: router (optional, e.g. yes_no, auth, payment_method, no_payment). Omit for default router."},{"path":"/routers","method":"GET","description":"List all available router names (JSON files in routers/)."},{"path":"/routers","method":"POST","description":"Create a new semantic router with custom routes (JSON body: name, routes[])."},{"path":"/routers/{router_name}","method":"PUT","description":"Create/replace router with full JSON (preserves encoder_type, score_threshold, metadata). Body = same structure as routers/*.json."},{"path":"/routers/cache","method":"DELETE","description":"Clear in-memory and disk embeddings cache, then recreate embeddings for all routers."},{"path":"/visualize","method":"GET","description":"HTML form to upload audio for t-SNE visualization."},{"path":"/visualize-audio","method":"POST","description":"Upload audio and get HTML with t-SNE semantic distances. Form: audio_file, language, router_model."},{"path":"/create-graph","method":"GET","description":"HTML form to create conversation graph from text or audio."},{"path":"/create-graph","method":"POST","description":"Generate graph JSON from text or audio (LLM)."},{"path":"/dashboard","method":"GET","description":"Web dashboard for calls and classifications. Query: graph, campaign."},{"path":"/api/call/{call_id}","method":"GET","description":"Get call details and classifications. Header: X-API-Key."},{"path":"/api/download","method":"GET","description":"Download data as CSV or Excel. Query: data_type (calls|classifications|all), graph, campaign, api_key."}]}