API reference

Artifacts

Beyond the typed result, every succeeded job exposes the raw artifacts the pipeline produced: the evidence chain, the knowledge graph, the transcript, the kept-frame inventory, per-frame vision descriptions, and claim verification when enabled.

Availability#

Each artifact endpoint returns 404 JOB_NOT_FOUND for an unknown job and 404 JOB_RESULT_NOT_READY (or, for the graph, JOB_GRAPH_NOT_FOUND) when the artifact is not available. All artifact endpoints require the bearer API key.

Evidence#

GET/v1/jobs/{id}/evidence
Get the evidence chain for the latest extraction: every extracted field anchored to a source moment.

Body shape: { version, modality, spans: [...] }. Each span carries field_path, modality, t_start, t_end, source_ref (asr#seg_N for audio, frame#NNNNNN for visual), and an optional node_id (v0.4+ jobs only).

bash
curl https://api.lirovo.ai/v1/jobs/job_x9k2m4/evidence \
  -H "Authorization: Bearer $LIROVO_API_KEY"

Graph#

GET/v1/jobs/{id}/graph
Get the temporal knowledge graph Pass A built for this job. Pass ?view=compact for the packed form Pass B reads; the default is canonical.

The view query parameter is one of canonical (default, the full kg.json) or compact (the deterministic kg.compact.json). Jobs that ran before v0.4 have no graph and return 404 JOB_GRAPH_NOT_FOUND.

bash
curl "https://api.lirovo.ai/v1/jobs/job_x9k2m4/graph?view=compact" \
  -H "Authorization: Bearer $LIROVO_API_KEY"

Transcript#

GET/v1/jobs/{id}/transcript
Get the diarized ASR transcript for a job. Every succeeded job has one.

Body shape: { job_id, model, language, duration_s, text, speakers, segments }.

bash
curl https://api.lirovo.ai/v1/jobs/job_x9k2m4/transcript \
  -H "Authorization: Bearer $LIROVO_API_KEY"

Frames#

GET/v1/jobs/{id}/frames
Get the deduped kept-frame inventory Pass A reasoned over. No image bytes. Pass ?include=raw to also list non-kept frames.

Body shape: { kept_count, total_count, frames: [{ idx, source_ref, t_ms, t_s, kept, cluster_id, phash }] }. The source_ref (frame#NNNNNN) matches the evidence spans.

bash
curl "https://api.lirovo.ai/v1/jobs/job_x9k2m4/frames?include=raw" \
  -H "Authorization: Bearer $LIROVO_API_KEY"

Vision#

GET/v1/jobs/{id}/vision
Get the per-frame vision (VLM) descriptions for a job.

Body is the vision analyses plus a visual_branch field. An audio-only succeeded job returns a well-formed empty payload with visual_branch: "absent" (a 200, not a 404).

bash
curl https://api.lirovo.ai/v1/jobs/job_x9k2m4/vision \
  -H "Authorization: Bearer $LIROVO_API_KEY"
One source moment, one modality
Frames and vision are present only for jobs with a visual branch. The transcript and evidence chain exist for every succeeded job, audio-only or not.

Verification#

GET/v1/jobs/{id}/verification
Get the claim web-verification payload for a succeeded job.

Body shape: { job_id, status, model, summary, verifications: [...] }. Each verification includes the claim node id, verdict, confidence, rationale, web sources, search queries, and optional timestamp.

Verification is opt-in and best-effort. If the job succeeded but no verification artifact exists, the endpoint returns 200 with status: "not_run" and an empty verifications array.

bash
curl https://api.lirovo.ai/v1/jobs/job_x9k2m4/verification \
  -H "Authorization: Bearer $LIROVO_API_KEY"