Questions · Updated 2026-09-27

How do I see my usage?

See your usage with GET /usage, which returns the account's sent_24h and sent_30d counts and one row per API key with its budget, what it has consumed and when it resets. GET /billing puts the same usage against each plan limit, and GET /metrics gives the daily series.

See your usage with GET /usage. Its summary is "This period usage, per key: budget, consumed, remaining, rate window, last used. The bill, made legible." The reply has an account block with sent_24h, sent_30d, bounced_30d and complained_30d, and a keys array with one row per API key. GET /billing puts the same consumption against the plan's limits, and GET /metrics gives the daily series. In the console it is Settings → Usage.

Per key

Each keys[] row has id, name, period (hourly, daily or monthly), budget_per_period (null when the key has no ceiling), consumed_in_period, remaining, used_percent, period_started_at and resets_at. consumed_in_window and rate_ceiling_per_minute are the per-minute side. last_used_at says when the key last did anything, and paused is true while the kill switch holds it.

curl -sS -X GET https://api.agentisend.com/usage \
  -H "Authorization: Bearer $AGENTISEND_API_KEY"
200
{
  "account": {},
  "keys": [],
  "period_started_at": "2026-09-04T09:14:00Z"
}
Response

GET /api-keys adds request_count_30d to every key — its summary is "List API keys with 30-day request counts. Permission, domain scope and the key’s own budget ceiling are always returned (PRD F3); never the token." Requests and emails are different counts: a refused send is a request that consumed nothing. To read one agent's messages rather than its totals, filter GET /emails on api_key_id, as How do I see everything my AI agent sent? describes.

Against the plan

GET /billing — "Plan, usage against each published limit, and what the next tier changes." limits[] has one row per published limit, with metric one of emails_per_month, domains, seats or retention_days, and used, limit, unit and at_limit, the sentence for what happens when used reaches limit. period gives started_at and resets_at for the send counter. overage.consumed_this_period counts sends past the inclusion, and next_tier is what moving up would change. The figures behind limit are on the pricing page; GET /billing/plan returns the plan on the account.

Over time

GET /metrics — "Send/delivery/engagement KPIs with a daily series, computed from the event spine over a window." Pass since and until for the window, group_by with domain, api_key or both, and domain or api_key_id to narrow to one. The reply has totals with sent, delivered, bounced and complaints; previous, the same counts for the window before, for comparison; series[], one row per day; and by_domain[] and by_api_key[], each with its own series. GET /emails/metrics is an alias that also accepts start_date and end_date.

curl -sS -X GET https://api.agentisend.com/metrics \
  -H "Authorization: Bearer $AGENTISEND_API_KEY"
200
{
  "by_api_key": [],
  "by_domain": [],
  "event": "sent",
  "previous": {},
  "series": [],
  "since": "string",
  "totals": {},
  "until": "string"
}
Response

Over MCP the same numbers come from get_metrics, which needs the trust:read scope; MCP server has the scope table. For what your software asked the API rather than what it sent, GET /logs lists every request with method, route, status, duration_ms and error_code. How far back any of these lists reach is bounded by your plan's retention window, stated on the retention policy.

Next