Analytics
Use the analytics endpoints to measure conversation performance and sales outcomes for an organization. Every analytics request requires an organization_id, start_date, and end_date.
Required parameters
Analytics endpoints use a required date range on every request.
- Name
organization_id- Description
Get this from
GET /api/v2/organizations.
- Name
start_date- Description
The inclusive start of the analytics window.
- Name
end_date- Description
The exclusive end of the analytics window.
Conversation analytics
GET /api/v2/organizations/{organization_id}/analytics/conversations
This endpoint returns a combined conversation analytics payload with:
- Name
responseRateStats- Description
Conversation response counts and overall response rate.
- Name
responseTimeStats- Description
Response timing metrics for the selected window.
- Name
volumeStats- Description
Message and conversation volume totals.
- Name
modalityStats- Description
Distribution of first inbound conversation message modalities.
Get combined conversation analytics
curl -G https://api.hyperrep.ai/api/v2/organizations/gAAAAABexampleOrganizationIdReturnedByApi7mN4qP2xLs9dV5kTr8cY1hJ6uW3/analytics/conversations \
-H "X-API-KEY: your-api-key" \
--data-urlencode "start_date=2026-04-01T00:00:00Z" \
--data-urlencode "end_date=2026-04-30T23:59:59Z"
Example response
{
"responseRateStats": {
"numConversationsRespondedTo": 14,
"numConversationsReceived": 20,
"responseRate": 0.7
},
"responseTimeStats": {
"responseTime": 3600
},
"volumeStats": {
"numMessagesReceived": 120,
"numMessagesSent": 118,
"totalConversations": 42
},
"modalityStats": {
"textMessages": 10,
"calls": 4,
"emails": 20,
"liveChats": 6,
"formRequests": 2
}
}
Breakout endpoints
Use these endpoints when you only need one analytics block:
Response rate
GET /api/v2/organizations/{organization_id}/analytics/conversations/response-rate
Returns:
- Name
numConversationsRespondedTo- Description
The number of conversations whose first inbound message occurred during the selected window and later received an agent response.
- Name
numConversationsReceived- Description
The total number of conversations whose first inbound message occurred during the selected window.
- Name
responseRate- Description
The share of the selected conversation cohort that later received at least one agent response.
Get response-rate analytics only
curl -G https://api.hyperrep.ai/api/v2/organizations/gAAAAABexampleOrganizationIdReturnedByApi7mN4qP2xLs9dV5kTr8cY1hJ6uW3/analytics/conversations/response-rate \
-H "X-API-KEY: your-api-key" \
--data-urlencode "start_date=2026-04-01T00:00:00Z" \
--data-urlencode "end_date=2026-04-30T23:59:59Z"
Example response
{
"numConversationsRespondedTo": 14,
"numConversationsReceived": 20,
"responseRate": 0.7
}
Response time
GET /api/v2/organizations/{organization_id}/analytics/conversations/response-time
Returns:
- Name
responseTime- Description
The median time in seconds for an agent to respond to an inbound message.
Get response-time analytics only
curl -G https://api.hyperrep.ai/api/v2/organizations/gAAAAABexampleOrganizationIdReturnedByApi7mN4qP2xLs9dV5kTr8cY1hJ6uW3/analytics/conversations/response-time \
-H "X-API-KEY: your-api-key" \
--data-urlencode "start_date=2026-04-01T00:00:00Z" \
--data-urlencode "end_date=2026-04-30T23:59:59Z"
Example response
{
"responseTime": 3600
}
Conversation volume
GET /api/v2/organizations/{organization_id}/analytics/conversations/volume
Returns:
- Name
numMessagesReceived- Description
The total number of inbound messages received.
- Name
numMessagesSent- Description
The total number of messages sent by agents.
- Name
totalConversations- Description
The total number of conversations whose first inbound message occurred during the selected window.
Get conversation-volume analytics only
curl -G https://api.hyperrep.ai/api/v2/organizations/gAAAAABexampleOrganizationIdReturnedByApi7mN4qP2xLs9dV5kTr8cY1hJ6uW3/analytics/conversations/volume \
-H "X-API-KEY: your-api-key" \
--data-urlencode "start_date=2026-04-01T00:00:00Z" \
--data-urlencode "end_date=2026-04-30T23:59:59Z"
Example response
{
"numMessagesReceived": 120,
"numMessagesSent": 118,
"totalConversations": 42
}
Modality
GET /api/v2/organizations/{organization_id}/analytics/conversations/modality
Returns the distribution of first inbound conversation message modalities for the selected window.
Get modality analytics only
curl -G https://api.hyperrep.ai/api/v2/organizations/gAAAAABexampleOrganizationIdReturnedByApi7mN4qP2xLs9dV5kTr8cY1hJ6uW3/analytics/conversations/modality \
-H "X-API-KEY: your-api-key" \
--data-urlencode "start_date=2026-04-01T00:00:00Z" \
--data-urlencode "end_date=2026-04-30T23:59:59Z"
Example response
{
"textMessages": 10,
"calls": 4,
"emails": 20,
"liveChats": 6,
"formRequests": 2
}
Sales analytics
GET /api/v2/organizations/{organization_id}/analytics/sales
Use this endpoint for the current sales reporting surface.
Key response fields:
- Name
pipeline- Description
An ordered list of pipeline stages. Each stage includes:
name— the display label for the stage (e.g."Qualified","Quoted","Accepted")status— the API status value for the stage, when one appliesvolume— the number of sales in this stage during the windowvalue— the total monetary value of sales in this stage as a decimal string
- Name
salesRate- Description
The share of qualified opportunities that converted into accepted sales.
Get sales analytics
curl -G https://api.hyperrep.ai/api/v2/organizations/gAAAAABexampleOrganizationIdReturnedByApi7mN4qP2xLs9dV5kTr8cY1hJ6uW3/analytics/sales \
-H "X-API-KEY: your-api-key" \
--data-urlencode "start_date=2026-04-01T00:00:00Z" \
--data-urlencode "end_date=2026-04-30T23:59:59Z"
Example response
{
"pipeline": [
{
"name": "Qualified",
"status": null,
"volume": 24,
"value": "28800.00"
},
{
"name": "Quoted",
"status": "quote_sent",
"volume": 18,
"value": "21600.00"
},
{
"name": "Accepted",
"status": "accepted",
"volume": 11,
"value": "13200.00"
}
],
"salesRate": 0.46
}