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.io

Want to run it yourself? UVAI is MIT-licensed. See the EventRelay repo for self-hosting.

Endpoints

  • GET
    /api

    Service descriptor (name, version, status).

  • POST
    /api/transcribe

    Fetch a transcript for a YouTube URL.

    { "url": "https://youtu.be/..." }
  • POST
    /api/extract-events

    Extract typed events from a transcript.

  • GET
    /api/pipeline

    Inspect available pipeline stages.

  • POST
    /api/pipeline

    Run the full intake to agents pipeline.

  • POST
    /api/pipeline/stream

    Streaming variant of /api/pipeline (SSE).

  • POST
    /api/chat

    Conversational query over an analyzed video.

  • GET
    /api/video

    List recently analyzed videos.

  • POST
    /api/video

    Register a new video for analysis.

  • GET
    /api/video/search

    Semantic search across stored videos.

  • GET
    /api/dashboard

    Dashboard aggregates and recent runs.

  • POST
    /api/dashboard

    Mutate dashboard state (pin, archive, etc.).

  • GET
    /api/training/status

    Current status of training/embedding jobs.

  • POST
    /api/training/trigger

    Trigger a training/embedding job.

  • POST
    /api/video/pack

    Emit a hashed Video Pack from a YouTube URL.

    { "url": "https://www.youtube.com/watch?v=..." }
  • GET
    /api/video/sandbox

    Materialize an App Builder Workspace sandbox from a stored Video Pack (startup.sh, 8080, browser-smoke, build/typecheck).

  • POST
    /api/video/sandbox

    Same 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/assemble

    Same 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/assemble

    Planned 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-actions

    Start 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.

  1. Paste a YouTube URL on Home.
  2. Home redirects to /studio?video=....
  3. Studio auto-starts analysis once for that handoff URL.
  4. Transcript and events flow into actions and output publishing.