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

# Comms Delivery Events

> Return daily delivery event counts grouped by channel and event type.

## Method

`GET` `/v1/analytics/comms/delivery-events`

## Query Parameters

<ParamField query="from" type="string" required>Start date (YYYY-MM-DD, inclusive).</ParamField>
<ParamField query="to" type="string" required>End date (YYYY-MM-DD, inclusive).</ParamField>
<ParamField query="workspaceId" type="uuid" required>Workspace identifier.</ParamField>

## Headers

<ParamField header="Authorization" type="string">Bearer token with `analytics:read` scope.</ParamField>

## Request Example

<RequestExample>
  ```bash cURL theme={null}
  curl "https://api.voyantcloud.com/v1/analytics/comms/delivery-events?from=2025-02-01&to=2025-02-07&workspaceId=ws_abc" \
    -H "Authorization: Bearer $VOYANT_API_KEY"
  ```

  ```javascript Node.js theme={null}
  const res = await fetch(
    "https://api.voyantcloud.com/v1/analytics/comms/delivery-events?from=2025-02-01&to=2025-02-07&workspaceId=ws_abc",
    { headers: { Authorization: `Bearer ${process.env.VOYANT_API_KEY}` } },
  )
  const events = await res.json()
  ```

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

  params = {"from": "2025-02-01", "to": "2025-02-07", "workspaceId": "ws_abc"}
  resp = requests.get(
    "https://api.voyantcloud.com/v1/analytics/comms/delivery-events",
    params=params,
    headers={"Authorization": f"Bearer {os.environ['VOYANT_API_KEY']}"},
  )
  data = resp.json()
  ```
</RequestExample>

## Response

<ResponseExample>
  ```json 200 OK theme={null}
  [
    { "day": "2025-02-01", "channel": "email", "event": "delivered", "cnt": 1284 },
    { "day": "2025-02-01", "channel": "email", "event": "opened", "cnt": 742 },
    { "day": "2025-02-02", "channel": "sms", "event": "delivered", "cnt": 96 }
  ]
  ```

  ```json 400 Bad Request theme={null}
  { "error": "from, to, workspaceId required" }
  ```
</ResponseExample>

<Tip>Use the `event` field to separate provider-specific delivery states (`delivered`, `opened`, `bounced`, etc.) when charting performance.</Tip>
