API reference
Metrics
Read daily sending counters and breakdowns by mailbox provider, API key, template or kind.
Metrics
GET /api/v1/metrics returns the same daily counters the Metrics page shows, as JSON or CSV. Any key can read it, including Test keys. A domain-restricted key must name one of its domains.
Query
| Parameter | Values | Default | Effect |
|---|---|---|---|
days |
1 to 90 | 30 | Window that ends today (UTC). |
domain |
name or id | — | One domain instead of the organization total. |
facet |
provider, key, template, kind |
— | Adds a by array: one row per mailbox provider, API key, template or kind. |
key |
string | — | With facet: only that key (for example gmail). |
format |
json, csv |
json |
CSV returns the series, or the breakdown when facet is set. |
Response
{
"object": "metrics",
"days": 7,
"domain": null,
"series": [{ "day": "2026-08-16", "sent": 120, "delivered": 118, "bouncedHard": 1, "bouncedSoft": 1, "complained": 0, "opened": 40, "clicked": 9, "unsubscribed": 0 }],
"totals": { "sent": 840, "delivered": 830, "bouncedHard": 4, "bouncedSoft": 6, "complained": 0, "opened": 300, "clicked": 61, "unsubscribed": 2 },
"rates": { "delivery": 98.8, "bounce": 1.19, "hardBounce": 0.48, "softBounce": 0.71, "complaint": 0, "open": 35.7, "click": 7.26 },
"facet": "provider",
"by": [{ "key": "gmail", "label": "Gmail", "sent": 500, "delivered": 498, "bouncedHard": 1, "bouncedSoft": 1, "complained": 0, "opened": 200, "clicked": 40, "unsubscribed": 1, "delayed": 3, "blocked": 0 }]
}
delayed counts delivery delays. blocked counts replies the platform classified as a provider block or throttle (see Metrics & alerts).
Errors
| Status | Code | Cause |
|---|---|---|
| 403 | forbidden_domain |
A domain-restricted key asked for the organization total. |
| 422 | unknown_domain |
The domain is not one this key may read. |
| 422 | validation_error |
days outside 1 to 90, or an unknown facet. |
Example
curl -H "Authorization: Bearer $F5SEND_API_KEY" \
"https://api.f5send.com/api/v1/metrics?days=7&facet=provider&format=csv"
Usage
GET /api/v1/usage returns how much of your plan the organization has used. Any key can read it, including Test keys. The quota belongs to the organization, so a domain-restricted key sees the organization totals.
curl -H "Authorization: Bearer $F5SEND_API_KEY" https://api.f5send.com/api/v1/usage
{
"object": "usage",
"plan": "free",
"emails": {
"monthly": { "used": 120, "limit": 3000, "allowance": 3000, "overage": false, "resets_at": "2026-11-01T00:00:00.000Z" },
"daily": { "used": 7, "limit": 100, "resets_at": "2026-10-15T00:00:00.000Z" }
},
"contacts": { "used": 42, "limit": 1000 },
"rate_limit": { "limit": 10, "duration": "1s" }
}
| Field | Meaning |
|---|---|
emails.monthly.used |
Live recipients counted this UTC month. Each recipient is one email. |
emails.monthly.limit |
The hard monthly limit. null means no cap. 0 means sending is stopped. |
emails.monthly.allowance |
The volume the plan includes. |
emails.monthly.overage |
true when mail past the allowance is billed, up to limit. |
emails.daily |
The same counter for the current UTC day. limit is null when the day has no cap. |
contacts |
Stored contacts and the plan allowance. limit is null when unlimited. |
rate_limit |
Requests per duration for the calling key. |
resets_at |
When the counter returns to 0 (UTC). |
If the platform cannot read the counters, the call returns 503 usage_unavailable with Retry-After: 5.