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.

GET/api/v1/calls/{callId}/intelligence

Path parameters

ParameterTypeDescription
callIdrequired
string

Platform call id.

Responses

{
"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…"
}
}
Request
curl -X GET "https://voice.evryhealth.com/api/v1/calls/{callId}/intelligence" \
-H "Authorization: Bearer YOUR_API_KEY"

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.

GET/api/v1/calls/{callId}/intelligence/live

Path parameters

ParameterTypeDescription
callIdrequired
string

Platform call id.

Responses

{
"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_…"
}
}
Request
curl -X GET "https://voice.evryhealth.com/api/v1/calls/{callId}/intelligence/live" \
-H "Authorization: Bearer YOUR_API_KEY"

List people

Everyone the organization has spoken to, most recently heard first. People are built from calls rather than from a contact list.

GET/api/v1/people

Query parameters

ParameterTypeDescription
search
string

Match on the resolved name.

limit
number

Up to 200.

Default: 50

cursor
string

From meta.pagination.nextCursor.

Responses

{
"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
}
}
}
Request
curl -X GET "https://voice.evryhealth.com/api/v1/people" \
-H "Authorization: Bearer YOUR_API_KEY"

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.

GET/api/v1/people/{personId}

Path parameters

ParameterTypeDescription
personIdrequired
string

Person id.

Responses

{
"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_…"
}
}
Request
curl -X GET "https://voice.evryhealth.com/api/v1/people/{personId}" \
-H "Authorization: Bearer YOUR_API_KEY"

List places

The far ends of the numbers called — a practice, a household, a person's own line. Places are what tie people together.

GET/api/v1/places

Query parameters

ParameterTypeDescription
search
string

Match on the resolved name.

limit
number

Up to 200.

Default: 50

cursor
string

From meta.pagination.nextCursor.

Responses

{
"data": {
"places": [
{
"type": "place",
"id": "bb01…",
"displayName": "Riverside Family Practice",
"phoneKey": "+15125550147",
"kind": "business",
"callCount": 12
}
]
},
"meta": {
"requestId": "req_…",
"pagination": {
"nextCursor": null,
"limit": 50
}
}
}
Request
curl -X GET "https://voice.evryhealth.com/api/v1/places" \
-H "Authorization: Bearer YOUR_API_KEY"

Get a place

One place and the people reached there.

GET/api/v1/places/{placeId}

Path parameters

ParameterTypeDescription
placeIdrequired
string

Place id.

Responses

{
"data": {
"place": {
"type": "place",
"id": "bb01…",
"displayName": "Riverside Family Practice"
},
"people": [
{
"id": "1c7d…",
"name": "Maria Alvarez"
}
]
},
"meta": {
"requestId": "req_…"
}
}
Request
curl -X GET "https://voice.evryhealth.com/api/v1/places/{placeId}" \
-H "Authorization: Bearer YOUR_API_KEY"

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.

GET/api/v1/voiceprints/{voiceprintId}

Path parameters

ParameterTypeDescription
voiceprintIdrequired
string

Voiceprint id.

Responses

{
"data": {
"history": [
{
"callId": "5f1c…",
"decidedAt": "2026-09-15T14:02:11.000Z",
"status": "returning"
}
]
},
"meta": {
"requestId": "req_…"
}
}
Request
curl -X GET "https://voice.evryhealth.com/api/v1/voiceprints/{voiceprintId}" \
-H "Authorization: Bearer YOUR_API_KEY"

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.

DELETE/api/v1/voiceprints/{voiceprintId}

Path parameters

ParameterTypeDescription
voiceprintIdrequired
string

Voiceprint id.

Responses

{
"data": {
"erased": true
},
"meta": {
"requestId": "req_…"
}
}
Request
curl -X DELETE "https://voice.evryhealth.com/api/v1/voiceprints/{voiceprintId}" \
-H "Authorization: Bearer YOUR_API_KEY"