Quickstart
The REST flow is three calls: register a schema, submit a job against a video, then fetch the typed result.
Three REST calls#
All requests go to https://api.lirovo.ai and carry Authorization: Bearer $LIROVO_API_KEY. Keys are stored only as a one-way hash, so copy yours when it is provisioned.
- 1
Register a schema
A schema is a JSON Schema describing the typed output you want. Post it once and reuse its id across jobs. Returns
201with the schema id.bashcurl -X POST https://api.lirovo.ai/v1/schemas \ -H "Authorization: Bearer $LIROVO_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "meeting-recap", "json_schema": { "type": "object", "properties": { "summary": { "type": "string" }, "decisions": { "type": "array" } } } }' # -> 201 { "id": "sch_a1b2c3" } - 2
Submit a job
Point a job at a
source_uriand theschema_idyou just created. The job is accepted and queued; you get back202with a job id and an initial status.bashcurl -X POST https://api.lirovo.ai/v1/jobs \ -H "Authorization: Bearer $LIROVO_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "source_uri": "https://youtube.com/watch?v=...", "schema_id": "sch_a1b2c3" }' # -> 202 { "id": "job_x9k2m4", "status": "queued" } - 3
Fetch the typed result
Poll the result endpoint. Once the job is done you get
200with JSON that conforms to your schema.bashcurl https://api.lirovo.ai/v1/jobs/job_x9k2m4/result \ -H "Authorization: Bearer $LIROVO_API_KEY" # -> 200 { "summary": "...", "decisions": ["..."] }
x-lirovo-request-id header for support and tracing. See the API reference for the full request and response shapes.Next steps#
Prefer typed calls or want an agent to drive the loop? Use the TypeScript SDK for the typed client, or connect over MCP so any MCP client can call extraction as a set of tools.