Current backend API reference for Live Conversational Threads.
- Base URL:
http://localhost:8000 - Interactive docs:
- Swagger:
http://localhost:8000/docs - ReDoc:
http://localhost:8000/redoc
- Swagger:
Source of truth is the mounted FastAPI routers in lct_python_backend/backend.py.
- HTTP auth is optional and environment-driven:
- If
AUTH_TOKENis unset, requests are unauthenticated in local dev. - If
AUTH_TOKENis set, non-health endpoints requireAuthorization: Bearer <token>.
- If
- WebSocket auth uses
?token=<AUTH_TOKEN>when token auth is enabled. - Rate limiting and body-size limits are enabled in middleware and configurable via env vars.
Primary realtime endpoint for audio-to-transcript-to-graph flow.
Typical message sequence:
- Client connects to
/ws/transcripts. - Client sends
session_meta. - Client streams
audio_chunkpayloads. - Server emits transcript and graph updates:
transcript_partialtranscript_finalexisting_jsonchunk_dictprocessing_status
- Client sends
final_flushbefore close.
Deprecated compatibility endpoint; returns HTTP 410 with guidance to use /ws/transcripts.
GET /api/import/healthPOST /api/import/google-meetPOST /api/import/google-meet/previewPOST /api/import/from-url(env-gated byENABLE_URL_IMPORT)POST /api/import/from-text
GET /conversations/GET /conversations/{conversation_id}DELETE /conversations/{conversation_id}POST /save_json/POST /get_chunks/POST /generate-context-stream/POST /generate_formalism/
GET /api/settings/sttPUT /api/settings/sttGET /api/settings/stt/telemetryPOST /api/settings/stt/health-checkGET /api/settings/llmPUT /api/settings/llmGET /api/settings/llm/models
GET /api/graph/healthPOST /api/graph/generateGET /api/graph/{conversation_id}GET /api/graph/{conversation_id}/nodesGET /api/graph/{conversation_id}/edgesDELETE /api/graph/{conversation_id}POST /api/conversations/{conversation_id}/themes/generateGET /api/conversations/{conversation_id}/themesGET /api/conversations/{conversation_id}/themes/levels
POST /api/conversations/{conversation_id}/simulacra/analyzeGET /api/conversations/{conversation_id}/simulacraPOST /api/conversations/{conversation_id}/biases/analyzeGET /api/conversations/{conversation_id}/biasesPOST /api/conversations/{conversation_id}/frames/analyzeGET /api/conversations/{conversation_id}/frames
GET /api/analytics/conversations/{conversation_id}/analyticsGET /api/analytics/conversations/{conversation_id}/timelineGET /api/analytics/conversations/{conversation_id}/rolesPOST /api/bookmarksGET /api/bookmarksPATCH /api/bookmarks/{bookmark_id}DELETE /api/bookmarks/{bookmark_id}
GET /api/promptsGET /api/prompts/configGET /api/prompts/{prompt_name}PUT /api/prompts/{prompt_name}POST /api/prompts/{prompt_name}/validatePOST /api/prompts/reload
- Some routes return legacy payload shapes for compatibility with existing frontend flows.
POST /save_json/currently writes through the GCS helper path; in local environments without configured ADC/bucket, this endpoint can return a 500 until cloud credentials are configured.- For latest request/response schemas, use Swagger (
/docs) because those are generated from current Pydantic models and router signatures.