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 applies
    • volume — the number of sales in this stage during the window
    • value — 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
}

Was this page helpful?