Email performance
Outbound emails sent in the range and their tracking events (delivered, opened, clicked, bounced, complained, unsubscribed), with rates.
GET
https://api.centerfy.ai/webhooks/inbound/analytics/email Headers
| Header | Required | Value | Description |
|---|---|---|---|
x-api-key | Yes | your sub-account API key (cfy_…) | Authenticates the request; or use Authorization: Bearer <key>. |
Query parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
from | string (YYYY-MM-DD) | No | — | First day of the range (inclusive, local date). Defaults to 29 days before to (a 30-day range). |
to | string (YYYY-MM-DD) | No | — | Last day of the range (inclusive, local date). Defaults to today. The range can span at most 366 days. |
timezone | string | No | — | IANA time zone for day boundaries, e.g. America/New_York (max 64 characters). Defaults to your company time zone, else UTC. |
Example
curl -X GET "https://api.centerfy.ai/webhooks/inbound/analytics/email" \
-H "x-api-key: $CENTERFY_API_KEY" import { CenterfyClient } from "@centerfy/sdk";
const centerfy = new CenterfyClient({ apiKey: process.env.CENTERFY_API_KEY! });
const result = await centerfy.analytics.email();
console.log(result); centerfy analytics email MCP tool: centerfy_analytics_email (see MCP server)
Response
{
"status": "success",
"tz": "America/New_York",
"from": "2026-09-06",
"to": "2026-10-05",
"capped": false,
"sent": 200,
"events": {
"delivered": 190,
"opened": 120,
"clicked": 30,
"bounced": 6,
"complained": 0,
"unsubscribed": 2
},
"unique_emails": {
"delivered": 188,
"opened": 95,
"clicked": 22,
"bounced": 6,
"complained": 0,
"unsubscribed": 2
},
"rates": {
"delivery_rate": 0.94,
"open_rate": 0.475,
"click_rate": 0.11,
"bounce_rate": 0.03,
"complaint_rate": 0,
"unsubscribe_rate": 0.01
}
}Errors
400— if from/to aren’t real YYYY-MM-DD dates, from is after to, the range is over 366 days, or the timezone is unknown.401— if unauthenticated.
Notes
events counts every event; unique_emails counts distinct emails per event. Rates are unique_emails ÷ sent as fractions (0.475 = 47.5%), rounded to 4 decimal places, and null when nothing was sent. Events are only recorded for email sent through a tracked provider, so rates are a lower bound. Days run from local midnight to midnight in tz. capped is true when a data source exceeded 20,000 rows — narrow the range for exact figures.