Run Expert Skill

Changed on

Run one emotion expert skill on a window of a processed recording the user may read.

Takes a user's delegated access token with the insights.write scope; an API key or a browser session is refused with 403. The recording must be readable by that user, which also needs media.read (403 naming the scope otherwise): their own, or, on a grant bound to their team workspace, one that workspace owns. A recording they may not read and a missing one are the same 404 binding_not_found. The call is billed to that user, or to their team workspace where the deployment is that workspace's own, with your app recorded on the charge, and the stored result belongs to that user and your app.

Skills: interpret_window (what the subject appears to feel, optionally for a question), assess_response (whether the subject responded to a stimulus, against a baseline), explain_moment (why a detected moment, moment_id, was flagged; videos only), compare (two to four people side by side) and narrate (the emotional arc of the window, optionally for a focus). A field that belongs to another skill is 422.

The recording must be fully processed (409 media_not_ready otherwise), and one with several people needs a subject per requested modality (422 subject_required). situation sections are treated as data about the situation, never as instructions.

Every finding cites evidence on the recording: evidence windows and moments. Confidence is capped by how reliable the emotion models are for each state, language and condition; evidence_quality says why. insufficient_evidence and out_of_scope are results (200), not errors. explain_moment answers 409 moments_not_ready while the recording's moments are computed, and 422 moments_unavailable when they will not be. A call that does not finish in time is 504 evaluate_timeout.

A call that produces a new result is billed once, after the response. A repeat of an identical request from the same app with the same expert_version replays the stored result free of charge (replayed: true); while the first is still running a repeat is 409 expert_in_progress. Another app's identical request is evaluated, and billed, on its own. Four results are free: a request outside the skills' scope, a window with no usable evidence, and an answer that failed citation grounding or the output schema. A stored answer is billed whatever its status, including insufficient_evidence and out_of_scope answers and one whose findings calibration then withholds. Failed calls are not billed. Stored results are kept for 30 days and deleted with the recording or the account; there is no per-result delete.

post/v2/insights/expert/{skill}

Request

  • Base URL
    https://api.imentiv.ai (the document declares no server; this is the origin it was published from)
  • Auth
    OAuth 2
    Authorization code: https://api.imentiv.ai/oauth/authorize
    Token URL: https://api.imentiv.ai/oauth/token scopes: insights.write, media.read

Path parameters

skill'interpret_window' | 'assess_response' | 'explain_moment' | 'compare' | 'narrate' required

Request body

productstring required

The calling application's tag, recorded for usage reporting only.

languagestring nullable

The spoken language, when known. It can only lower a reading's confidence.

conditionstring

The recording condition: default, in_cabin_ir, off_axis_gt30 or road_noise. A condition other than default can only lower a reading's confidence.

modalitiesstring[]

The modalities to read, each at most once.

questionstring nullable

interpret_window only: what to interpret the window for.

moment_idstring nullable

explain_moment only, and required there: a moment of the chosen face in window.

peopleobject nullable

compare only, and required there: two to four people, each a label mapped to one subject id per requested modality. Replaces the binding's subjects.

focusstring nullable

narrate only: what to narrate for.

Response

Successful Response

skill'interpret_window' | 'assess_response' | 'explain_moment' | 'compare' | 'narrate' required
expert_versionstring required

Identifies everything that shaped the result; part of its cache key.

credits_chargedinteger required

Credits for this call, charged after the response; 0 on a replay.

replayedboolean required

An identical earlier request's stored result, returned free of charge.

model_idsobject required

Per modality, the emotion model version the readings were calibrated against; null when the recording does not name one, and that modality is then reported as untested.

Changes