Call Intelligence
Who was speaking, how the call sounded, and what we learned about them.
Three analyzers run over a call and produce three different kinds of answer. Speaker recognition says whether the voice on the line is one we have heard before on this number. Voice insights describe how the call sounded (tone, talk-over, hold, line quality) rather than what was said. Profiles are what reading the transcript taught us about the people involved, kept as evidence and resolved rather than overwritten. Each runs during the call and again over the recording afterwards, so the same endpoint answers during and after.
Call intelligence#
Everything the analyzers found on one finished call, in a single read. A section is null when its analyzer is switched off for the organization or has not finished.
/api/v1/calls/{callId}/intelligencePath parameters
callIdstringrequired- Platform call id.
Responses
The call's intelligence.
curl -X GET "https://voice.evryhealth.com/api/v1/calls/{callId}/intelligence" \-H "Authorization: Bearer YOUR_API_KEY"
{"data": {"callId": "5f1c…","engine": "realtime","status": "completed","speakers": [{"voiceprintId": "9ab2…","status": "returning","displayName": "Maria","normalizedScore": 4.21,"threshold": 3.616,"priorCallCount": 3,"previousCallAt": "2026-09-02T16:41:09.000Z"}],"voice": {"source": "recording","summary": {"callerTone": "tense","callerTalkShare": 0.38,"agentSlowReplies": 2,"longestSilenceSeconds": 7.4}},"profiles": {"status": "done","people": [{"id": "1c7d…","displayName": "Maria Alvarez","callCount": 4}],"place": {"id": "bb01…","displayName": "Riverside Family Practice"}}},"meta": {"requestId": "req_8f21…"}}
Live intelligence#
What the analyzers know about a call that is still running, read from the same place the live agent's own tools read. A finished call answers with nulls here and its full record from the endpoint above.
/api/v1/calls/{callId}/intelligence/livePath parameters
callIdstringrequired- Platform call id.
Responses
The current snapshot.
curl -X GET "https://voice.evryhealth.com/api/v1/calls/{callId}/intelligence/live" \-H "Authorization: Bearer YOUR_API_KEY"
{"data": {"callId": "5f1c…","live": true,"speaker": {"known": true,"name": "Maria","timesSpokenBefore": 3,"lastSpokeAt": "2026-09-02T16:41:09.000Z"},"voice": {"live": true,"updatedAt": "2026-09-15T14:02:11.412Z","summary": {"callerTone": "tense","voicemail": false}}},"meta": {"requestId": "req_…"}}
List people#
Everyone the organization has spoken to, most recently heard first. People are built from calls rather than from a contact list.
/api/v1/peopleQuery parameters
searchstring- Match on the resolved name.
limitnumber- Up to 200.
- Default
50 cursorstring- From meta.pagination.nextCursor.
Responses
A page of people.
curl -X GET "https://voice.evryhealth.com/api/v1/people" \-H "Authorization: Bearer YOUR_API_KEY"
{"data": {"people": [{"type": "person","id": "1c7d…","displayName": "Maria Alvarez","callCount": 4,"lastSeenAt": "2026-09-15T14:02:11.000Z"}]},"meta": {"requestId": "req_…","pagination": {"nextCursor": null,"limit": 50}}}
Get a person#
Every attribute held about one person, with the confidence and the number of independent observations behind it, plus the people they work with.
/api/v1/people/{personId}Path parameters
personIdstringrequired- Person id.
Responses
The person.
curl -X GET "https://voice.evryhealth.com/api/v1/people/{personId}" \-H "Authorization: Bearer YOUR_API_KEY"
{"data": {"person": {"type": "person","id": "1c7d…","displayName": "Maria Alvarez","callCount": 4,"facts": [{"attribute": "role","value": "Practice manager","isCurrent": true,"confidence": 0.82,"supportCount": 3,"sources": ["transcript","contact"]}],"relations": [{"relation": "works_at","direction": "out","otherType": "place","otherName": "Riverside Family Practice"}]},"colleagues": [{"id": "77aa…","displayName": "Dan Whitfield"}]},"meta": {"requestId": "req_…"}}
List places#
The far ends of the numbers called: a practice, a household, a person's own line. Places are what tie people together.
/api/v1/placesQuery parameters
searchstring- Match on the resolved name.
limitnumber- Up to 200.
- Default
50 cursorstring- From meta.pagination.nextCursor.
Responses
A page of places.
curl -X GET "https://voice.evryhealth.com/api/v1/places" \-H "Authorization: Bearer YOUR_API_KEY"
{"data": {"places": [{"type": "place","id": "bb01…","displayName": "Riverside Family Practice","phoneKey": "+15125550147","kind": "business","callCount": 12}]},"meta": {"requestId": "req_…","pagination": {"nextCursor": null,"limit": 50}}}
Get a place#
One place and the people reached there.
/api/v1/places/{placeId}Path parameters
placeIdstringrequired- Place id.
Responses
The place.
curl -X GET "https://voice.evryhealth.com/api/v1/places/{placeId}" \-H "Authorization: Bearer YOUR_API_KEY"
{"data": {"place": {"type": "place","id": "bb01…","displayName": "Riverside Family Practice"},"people": [{"id": "1c7d…","name": "Maria Alvarez"}]},"meta": {"requestId": "req_…"}}
Voice history#
Every call one recognized voice has been heard on. The embedding itself is never served: it is the biometric identifier, and a copy of it is only useful for identifying someone somewhere else.
/api/v1/voiceprints/{voiceprintId}Path parameters
voiceprintIdstringrequired- Voiceprint id.
Responses
The calls this voice was heard on.
curl -X GET "https://voice.evryhealth.com/api/v1/voiceprints/{voiceprintId}" \-H "Authorization: Bearer YOUR_API_KEY"
{"data": {"history": [{"callId": "5f1c…","decidedAt": "2026-09-15T14:02:11.000Z","status": "returning"}]},"meta": {"requestId": "req_…"}}
Erase a voice#
Delete the voice and every embedding taken from it. A real delete rather than a flag, because this is how an erasure request is serviced. The call-level match rows remain: they record that a recognition happened and carry no biometric content once the vectors are destroyed.
/api/v1/voiceprints/{voiceprintId}Path parameters
voiceprintIdstringrequired- Voiceprint id.
Responses
Erased.
curl -X DELETE "https://voice.evryhealth.com/api/v1/voiceprints/{voiceprintId}" \-H "Authorization: Bearer YOUR_API_KEY"
{"data": {"erased": true},"meta": {"requestId": "req_…"}}