> ## Documentation Index
> Fetch the complete documentation index at: https://docs.replyify.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Totals

> Get aggregated analytics totals for a date range

Returns a single object with totals across the entire requested date range — conversations, replies sent, positive leads, meetings booked, speed-to-lead averages, and a category breakdown.

Conversations are deduplicated by thread so each unique conversation is counted once. Speed metrics use all replies (not deduplicated).

## Query Parameters

<ParamField query="start_date" type="string" required>
  Start of date range in `YYYY-MM-DD` format
</ParamField>

<ParamField query="end_date" type="string" required>
  End of date range in `YYYY-MM-DD` format
</ParamField>

<ParamField query="client_id" type="string">
  Filter to a specific client UUID
</ParamField>

## Examples

<CodeGroup>
  ```bash cURL theme={null}
  curl -X GET "https://app.replyify.ai/api/analytics/totals?start_date=2025-03-01&end_date=2025-03-31" \
    -H "Authorization: Bearer rpl_your_api_key"
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch(
    'https://app.replyify.ai/api/analytics/totals?start_date=2025-03-01&end_date=2025-03-31',
    {
      headers: {
        'Authorization': 'Bearer rpl_your_api_key'
      }
    }
  );
  const data = await response.json();
  ```

  ```python Python theme={null}
  import requests

  response = requests.get(
      'https://app.replyify.ai/api/analytics/totals',
      params={'start_date': '2025-03-01', 'end_date': '2025-03-31'},
      headers={'Authorization': 'Bearer rpl_your_api_key'}
  )
  data = response.json()
  ```
</CodeGroup>

## Response Example

```json theme={null}
{
  "data": {
    "start_date": "2025-03-01",
    "end_date": "2025-03-31",
    "total_replies": 342,
    "conversations": 218,
    "sent": 156,
    "positive": 74,
    "meetings_booked": 23,
    "booking_rate": 31.08,
    "avg_reply_speed_minutes": 6.41,
    "avg_auto_reply_speed_minutes": 1.15,
    "avg_manual_reply_speed_minutes": 18.23,
    "category_breakdown": [
      { "category": "Interested", "slug": "interested", "count": 74 },
      { "category": "Not Interested", "slug": "not-interested", "count": 62 },
      { "category": "Out of Office", "slug": "ooo", "count": 38 },
      { "category": "Meeting Booked", "slug": "meeting-booked", "count": 23 },
      { "category": "Bounce", "slug": "bounce", "count": 12 },
      { "category": "Uncategorized", "slug": "uncategorized", "count": 9 }
    ]
  }
}
```

## Response Fields

| Field                            | Type           | Description                                          |
| -------------------------------- | -------------- | ---------------------------------------------------- |
| `start_date`                     | string         | Start of the queried range                           |
| `end_date`                       | string         | End of the queried range                             |
| `total_replies`                  | number         | Raw inbound reply count (not deduplicated)           |
| `conversations`                  | number         | Unique conversations (deduplicated by thread)        |
| `sent`                           | number         | Responses sent or handled                            |
| `positive`                       | number         | Interested / positive leads                          |
| `meetings_booked`                | number         | Replies categorized as "meeting-booked"              |
| `booking_rate`                   | number         | Percentage of positive replies that booked a meeting |
| `avg_reply_speed_minutes`        | number \| null | Average time to reply (all replies)                  |
| `avg_auto_reply_speed_minutes`   | number \| null | Average time for automated replies                   |
| `avg_manual_reply_speed_minutes` | number \| null | Average time for manual replies                      |
| `category_breakdown`             | array          | Count per category, sorted by count descending       |
