health_score plus summary. Every claim cites the message ids that support it.
Use this when you want to know how your agent is landing with the people it
talks to — not a sentiment number, but a per-user reception with evidence, and
actionable findings the agent’s owner can apply.
Authorization
Your bearer token:
Bearer <token>. See Authentication.Request body
The conversation to analyze.
The messages to analyze, in order. Must contain at least one message.
Optional label for where the transcript came from (for example, a chat name).
Which speaker in the transcript is the agent under observation. Required and
never inferred — the caller is the agent’s owner and always knows which
speaker is the agent.
Optional question to weight the report toward, for example
"why did retention drop this week?".A stable identifier for the message, unique within the transcript. The report
cites these ids as evidence, so they must be present and unique.
Who sent the message (a display name or stable id).
The message text.
The speaker’s stable identity in your system. Display names collide — two
different users can both be
"alex" — so when present, user_id (not the
name) is who the speaker is. Same-named speakers with different user_ids
are reported as different people, and each per_user entry echoes its
user_id back.Optional channel or room the message was sent in.
Optional timestamp for the message.
Optional
id of the message this one replies to.Request
Response
Overall reception in
[0, 1]: 0.0 users are leaving, 1.0 thriving.Two to three sentences the agent’s owner can read standalone.
The conversation segmented into contiguous slices, each with a single social
character:
transactional, bonding, venting, banter, friction, or
hostile. Each interaction carries a short topic, the non-agent
participants (with each participant’s own stance), and the message_ids
it spans.Counts per interaction type, in canonical order with zeros included
(
transactional, bonding, venting, banter, friction, hostile).
Derived deterministically from the segmentation above.One entry per non-agent speaker. Each entry includes:
nameand (when the transcript supplied one)user_idreception—engaged,neutral,bored,annoyed, orchurn_riskfrustration— a score in[0, 1]anchored to behavioral rubric:0.2mild friction once,0.5repeated complaint still cooperating,0.8explicit anger or giving up,1.0hostile or quittingtrend—improving,stable, ordecliningacross the transcriptbehaviors— 1–3 short observable phrases the cited messages showevidence— message ids supporting this readconfidence—[0, 1]interaction_count,dominant_type, anddistribution[]— computed arithmetic across this user’s stanceskey_moments[]— the pivotal exchanges in this user’s relationship with the agent; each carrieslabel,type,message_ids, and anagent_critiqueline set only when the agent mishandled the moment
The agent’s social mistakes, each with:
issue,severity(low/medium/high),affected_users,evidencerecommendation— a specific fix the owner can apply as writtenbefore_message_idandrewritten_reply— the single agent message that best shows the mistake, plus that same message rewritten in the agent’s voice with the recommendation appliedsuggested_componentandhow_it_helps— the Humalike component that would resolve the finding (when one would), and a 2–3 sentence explanation of the concrete output it would have produced. Both are additive; the finding reads complete without them.confidence—[0, 1]
200 OK
Errors
| Status | Code | When |
|---|---|---|
400 | VALIDATION_ERROR | The transcript is too large to analyze, or it could not be analyzed. |
401 | UNAUTHORIZED | The bearer token is missing, invalid, or expired. |
402 | PAYMENT_REQUIRED | Your account does not have enough credits to cover this request. You are not charged. |
422 | VALIDATION_ERROR | The body is malformed, messages is empty, message ids are duplicated, or agent_name is ambiguous (shared by more than one user_id). |
502 | UPSTREAM_ERROR | A dependency the request relies on was unavailable. Retry with backoff. |
402 and is not billed.
See Credits and billing.
See Errors for the envelope shape.
Example
A single analyze call can take 40–60 seconds on a real transcript. Set a
client timeout of at least 120 seconds.

