Reference
API Reference
UVAI exposes a small, REST-style surface for transcription, event extraction, pipeline execution, and search. All endpoints accept and return JSON unless noted. Streaming endpoints use Server-Sent Events.
Base URL
https://uvai.ioWant to run it yourself? UVAI is MIT-licensed. See the EventRelay repo for self-hosting.
Endpoints
- GET
/apiService descriptor (name, version, status).
- POST
/api/transcribeFetch a transcript for a YouTube URL.
{ "url": "https://youtu.be/..." } - POST
/api/extract-eventsExtract typed events from a transcript.
- GET
/api/pipelineInspect available pipeline stages.
- POST
/api/pipelineRun the full intake to agents pipeline.
- POST
/api/pipeline/streamStreaming variant of /api/pipeline (SSE).
- POST
/api/chatConversational query over an analyzed video.
- GET
/api/videoList recently analyzed videos.
- POST
/api/videoRegister a new video for analysis.
- GET
/api/video/searchSemantic search across stored videos.
- GET
/api/dashboardDashboard aggregates and recent runs.
- POST
/api/dashboardMutate dashboard state (pin, archive, etc.).
- GET
/api/training/statusCurrent status of training/embedding jobs.
- POST
/api/training/triggerTrigger a training/embedding job.
- POST
/api/video/packEmit a hashed Video Pack from a YouTube URL.
{ "url": "https://www.youtube.com/watch?v=..." } - GET
/api/video/sandboxMaterialize an App Builder Workspace sandbox from a stored Video Pack (startup.sh, 8080, browser-smoke, build/typecheck).
- POST
/api/video/sandboxSame sandbox emit by paste-URL identity. Requires a ready pack from POST /api/video/pack.
{ "url": "https://www.youtube.com/watch?v=..." } - GET
/api/video/assembleSame stored-pack lookup as sandbox plus a planned assembly receipt (file hashes, pinned deps, unresolved requirements). Gates are labeled untested — HTTP does not run npm.
- POST
/api/video/assemblePlanned assembly receipt by paste-URL identity. Requires a ready pack. Does not install, build, or typecheck on the server.
{ "url": "https://www.youtube.com/watch?v=..." } - POST
/api/workflows/video-to-actionsStart the Studio analysis workflow.
{ "url": "https://www.youtube.com/watch?v=..." }
Try it
The studio runs the end-to-end YouTube workflow against a real URL: hashed Video Pack via /api/video/pack, then /api/workflows/video-to-actions.
- Paste a YouTube URL on Home.
- Home redirects to
/studio?video=.... - Studio auto-starts analysis once for that handoff URL.
- Transcript and events flow into actions and output publishing.