- Upload a local video file to
POST /v1/upload/analyze - Read
engagement_state,signals[](including per-signalrationale), and optionalconversation_qualityoutputs
You’ll need an API key. Follow the API key guide for details.
You’ll also need a video file. You can download an example from here.
1) Upload and analyze a video
Use one of the requests below to send a local video file (mp4, avi, mov, mkv, mpeg-ts, webm; minimum 10 KB, maximum 32MB) toPOST /v1/upload/analyze.
Video and audio content
Include both video and audio. Black video, silent audio, and muted screen captures may upload successfully but return unreliable results. The API returns core analysis by default. You can optionally request conversation-quality sections by passinginclude[] flags (shown below).
include[] lines.
Reference: Upload & Analyze API
2) Read the response
After your upload is processed, the API returns a structured response with three complementary outputs:- engagement_state: Time-bounded labels such as
engaged,disengaged, orneutral. - signals[]: Time-bounded social signals, each with
type,probability, andrationale. - conversation_quality (optional): Reuses the
conversation_quality_valuesshape in bothoveralland each timeline window’svaluesobject.
start, end) are expressed in seconds from the start of the uploaded video.
conversation_quality_values shape (reused by conversation_quality.overall and conversation_quality.timeline[].values):
How to interpret it quickly
signals[]gives moment-level events;rationaleexplains why each signal was inferred.engagement_stateshows attention level over contiguous windows.conversation_quality.overallis a single interaction summary.conversation_quality.timeline[]shows how quality changes over time.
Next steps
- Build a Video Analyzer App — full UI codealong.
- Social signals — meaning of each signal type.
- Conversation quality — quality dimensions and interpretation.
- Upload & Analyze API — full request/response and error details.