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

# Metrics

Query event volume, delivery success rates, and latency percentiles.

The metrics API provides aggregated analytics for your webhook traffic. It uses a hybrid approach: queries within the last 48 hours run against raw event data for instant accuracy, while older queries use Cron-driven pre-aggregated hourly and daily rollups for bounded performance.

Metrics can be aggregated by `hour` or `day` granularity. The `after` and `before` parameters accept ISO 8601 timestamps. If omitted, most endpoints default to the last 24 hours with hourly intervals.

## Overview

GET `/v1/metrics/overview`

Get summary stats: today's events, deliveries, success rate, and active resource counts.

**Authentication:** API key or session cookie.

```bash cURL
curl https://hookstream.io/v1/metrics/overview \
  -H "X-API-Key: $HOOKSTREAM_API_KEY"
```

```json 200 OK
{
  "events_today": 1542,
  "events_this_week": 15420,
  "active_sources": 5,
  "deliveries_today": 1493,
  "success_today": 1470,
  "failed_today": 23,
  "success_rate_today": 98.46,
  "dlq_count": 3,
  "active_destinations": 8,
  "open_issues": 2,
  "active_collections": 4
}
```

## Volume

GET `/v1/metrics/volume`

Get event volume over time grouped by granularity.

**Authentication:** API key or session cookie.

### Query Parameters

ISO 8601 start time.

ISO 8601 end time.

Filter by source ID.

Aggregation granularity: `hour` or `day`.

```json 200 OK
{
  "series": [
    { "bucket": "2026-03-01T00:00:00Z", "source_id": "src_a1b2...", "event_count": 342, "source_name": "Stripe Webhooks" },
    { "bucket": "2026-03-01T01:00:00Z", "source_id": "src_a1b2...", "event_count": 289, "source_name": "Stripe Webhooks" }
  ],
  "granularity": "hour"
}
```

## Deliveries

GET `/v1/metrics/deliveries`

Get delivery success/failure breakdown over time.

**Authentication:** API key or session cookie.

### Query Parameters

ISO 8601 start time.

ISO 8601 end time.

Filter by destination ID.

Aggregation granularity: `hour` or `day`.

```json 200 OK
{
  "series": [
    {
      "bucket": "2026-03-01T00:00:00Z",
      "destination_id": "dst_b2c3...",
      "destination_name": "Backend API",
      "delivery_count": 342,
      "success_count": 330,
      "failed_count": 12,
      "avg_latency_ms": 45
    }
  ],
  "granularity": "hour"
}
```

## Latency

GET `/v1/metrics/latency`

Get delivery latency percentiles (p50, p95, p99) over time.

**Authentication:** API key or session cookie.

### Query Parameters

ISO 8601 start time.

ISO 8601 end time.

Filter by destination ID.

```json 200 OK
{
  "series": [
    {
      "bucket": "2026-03-01T00:00:00Z",
      "destination_id": "dst_b2c3...",
      "destination_name": "Backend API",
      "p50_latency_ms": 45,
      "p95_latency_ms": 230,
      "p99_latency_ms": 890,
      "avg_latency_ms": 127
    }
  ]
}
```