Evaluate Conversation
Changed onEvaluate one turn and return an output object valid against the conversation's schema.
Synchronous. Live and unbound conversations answer within a short deadline suited to live use, or fail with 504 evaluate_timeout; a recording-bound conversation has a longer one, since a recording's evidence may have to be loaded first. For a bound conversation send window (milliseconds on the session or recording clock) and the modalities to read; evidence_pending says the live window was still filling.
A turn_key is charged at most once. Repeating a finished turn replays its output free of charge in a session conversation (409 turn_key_conflict if the request differs) and is refused with 409 turn_key_used in an ephemeral one. A repeat while the first is still running is 409 turn_in_progress. A failed turn is not billed and its key can be retried. Rarely, a turn is answered but cannot be recorded; a repeat of its key is then evaluated again after a short wait, and is still charged once. Several turns of one conversation may run at once.
Also available on a user's delegated access token with the insights.write scope, for a conversation your app created for that user; the token must still hold media.read (403 naming the scope otherwise), each turn must request at least one modality (403 otherwise), and a recording that user no longer owns is 404 binding_not_found. None of these is billed. The turn is billed to that user, or to their team workspace where the deployment is that workspace's own.
On a conversation bound with media_bindings, media_ids chooses which of the bound recordings this turn reads (distinct ids, at most 200, each one bound: another id is 422 with field: media_ids.{i}; absent means all of them). window is applied on each chosen recording's own clock, a recording that needs a subject says which one in media_id, and modalities_used reports what was read across them. Every chosen recording is checked again on every turn: one that was deleted, or is no longer readable by the token, is 404 binding_not_found before any work is done or charged. Only a conversation bound to recordings takes media_ids.
Bindings with people supply separately labelled evidence for every selected person. Unbound modalities have no samples and never inherit another person's speaker. Transcript segments are limited to explicitly bound, requested voice/text speakers. Missing evidence is not a negative finding. Larger prompts may increase the turn's usage; billing remains once per turn. The evidence size limit covers all people and selected recordings together (413 payload_too_large, field: recording_evidence).
Selected recordings keep their own clocks; a window may extend beyond a shorter recording. The cohort must become ready within the turn budget (409 media_not_ready otherwise). If recording preparation is temporarily unavailable, the turn answers 503 preparation_busy without a charge; retry after a short wait. Generated evidence and retained evidence each have an aggregate 256,000 UTF-8 byte limit; exceeding either is 413 payload_too_large with field: recording_evidence, before model work. Evidence is never truncated or a selected recording silently omitted to fit these limits.
Request
- Base URLhttps://api.imentiv.ai (the document declares no server; this is the origin it was published from)
- Auth
- API key in header X-API-Key
- or HTTP bearer
- or OAuth 2Authorization code: https://api.imentiv.ai/oauth/authorizeToken URL: https://api.imentiv.ai/oauth/token scopes: insights.write, media.read
Path parameters
Request body
Response
Successful Response
Changes
- info
added the new optional request property
- info
- info
endpoint added
- info