Skip to main content
GET
/
api
/
templates
/
email
/
{id}
/
stats
Retrieve Transactional Detail and Statistics
curl --request GET \
  --url https://app.minimo.it/api/templates/email/{id}/stats \
  --header 'Authorization: Bearer <token>'
{
  "created": "2023-12-01T10:00:00Z",
  "openRate": "85%",
  "clickRate": "50%",
  "totalMessagesSent": 1000
}

Overview

Track the performance of your email templates with detailed analytics including:
  • Delivery metrics: Total sent, delivered, bounced
  • Engagement metrics: Opens, clicks, unsubscribes
  • Time-based data: Performance over time periods
  • Geographic data: Where your emails are being opened (coming soon)

Use Cases

Track which templates have the best engagement:
const templates = await getTemplateList();

for (const template of templates) {
  const stats = await getTemplateStats(template.id);
  console.log(`${template.name}: ${stats.openRate}% open rate`);
}
Compare performance between template variants:
const templateA = await getTemplateStats('tmpl_variant_a');
const templateB = await getTemplateStats('tmpl_variant_b');

if (templateB.clickRate > templateA.clickRate) {
  console.log('Template B performs better');
}
Display real-time stats in your application:
async function updateDashboard() {
  const stats = await getTemplateStats('tmpl_welcome');
  
  document.getElementById('sent-count').textContent = stats.sent;
  document.getElementById('open-rate').textContent = `${stats.openRate}%`;
  document.getElementById('click-rate').textContent = `${stats.clickRate}%`;
}

Response Example

{
  "templateId": "tmpl_abc123",
  "templateName": "Order Confirmation",
  "period": "all_time",
  "metrics": {
    "sent": 1250,
    "delivered": 1230,
    "bounced": 20,
    "opened": 980,
    "clicked": 450,
    "unsubscribed": 5,
    "complained": 2
  },
  "rates": {
    "deliveryRate": 98.4,
    "openRate": 79.7,
    "clickRate": 36.6,
    "clickToOpenRate": 45.9,
    "bounceRate": 1.6,
    "unsubscribeRate": 0.4,
    "complaintRate": 0.2
  },
  "lastSent": "2025-11-13T14:30:00Z"
}

Metrics Explained

Volume Metrics

MetricDescription
sentTotal emails sent using this template
deliveredSuccessfully delivered to recipient inbox
bouncedFailed to deliver (hard or soft bounce)
openedUnique opens (same recipient counted once)
clickedUnique clicks on links in the email
unsubscribedRecipients who unsubscribed
complainedMarked as spam by recipients

Rate Metrics

RateCalculationGood Benchmark
deliveryRate(delivered / sent) × 100> 95%
openRate(opened / delivered) × 100> 20%
clickRate(clicked / delivered) × 100> 3%
clickToOpenRate(clicked / opened) × 100> 10%
bounceRate(bounced / sent) × 100< 5%
unsubscribeRate(unsubscribed / delivered) × 100< 0.5%
complaintRate(complained / delivered) × 100< 0.1%
High bounce or complaint rates can damage your sender reputation and affect email deliverability. Monitor these metrics closely.

Time Periods (Coming Soon)

Future versions will support different time periods:
GET /api/templates/email/{id}/stats?period=last_30_days
GET /api/templates/email/{id}/stats?period=last_week
GET /api/templates/email/{id}/stats?from=2025-11-01&to=2025-11-13

Best Practices

Monitoring Frequency

  • High-volume templates: Check daily
  • Moderate-volume: Check weekly
  • Low-volume: Check monthly

Setting Alerts

Monitor for issues:
async function checkTemplateHealth(templateId) {
  const stats = await getTemplateStats(templateId);

  if (stats.rates.bounceRate > 5) {
    alert('High bounce rate detected!');
  }

  if (stats.rates.complaintRate > 0.1) {
    alert('High complaint rate - review template content');
  }

  if (stats.rates.deliveryRate < 95) {
    alert('Delivery issues detected');
  }
}

Improving Performance

Low open rate?
  • Test different subject lines
  • Optimize send time
  • Segment your audience better
Low click rate?
  • Make CTAs more prominent
  • Reduce content complexity
  • Test different button styles
High bounce rate?
  • Clean your contact list
  • Verify email addresses before sending
  • Remove hard bounces immediately

Exporting Data (Coming Soon)

Future versions will support exporting stats:
GET /api/templates/email/{id}/stats/export?format=csv

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

id
integer
required

The unique ID of the transactional message.

Example:

123

Response

Successful response with transactional detail and statistics.

created
string<date-time>

Timestamp when the transactional message was created.

Example:

"2023-12-01T10:00:00Z"

openRate
string

Percentage of recipients who opened the message.

Example:

"85%"

clickRate
string

Percentage of recipients who clicked a link in the message.

Example:

"50%"

totalMessagesSent
integer

Total number of messages sent for this transactional message.

Example:

1000