Skip to main content
Use the Analytics API to retrieve sending history and delivery outcomes.

Authentication

Base URL: https://pro.api.serversmtp.com/api/v2 Send consumerKey and consumerSecret headers with a key that has Statistics & Management APIs (APIS) permission. Its IP restrictions must allow your server. See authentication.

List delivery records

GET /analytics returns a paginated object with count and results.
Terminal
Example response:
Treat message IDs as 64-bit identifiers. JavaScript’s JSON.parse can round large numeric IDs; use a parser that preserves large integers when you need the exact value.

Get one record

GET /analytics/{Id} returns one delivery record with the same fields as an item in results, except that the recipient domain is named contact_domain instead of recipient_domain. Use the message ID as {Id}. A missing record returns 404 with message: "email_not_found".

Export CSV

GET /analytics/csv accepts the same date, status, search, sorting, and timezone parameters as the list endpoint, without page or limit. Both status[] and comma-separated status work, and orderby and ordertype take the same values as the list.
Terminal
CSV columns are Message Id, Status, Subject, From, To, Date, Reason, and Consumer Key. In the dashboard, use Analytics → Export.

Status values

Status values are case-sensitive. Send them in uppercase exactly as listed. For delivered totals, include SUCCESS, OPEN, CLICK, UNSUB, and REPORT. For opens, include OPEN, CLICK, UNSUB, and REPORT. Queued totals combine NEW and DEFER; bounces use FAIL and drops use SYSFAIL. These are groups of status values, not additional API status strings.

Tracking tools

GET /tools returns an array of tool objects containing only id and enabled.
Terminal
Change account tracking settings with these bodyless requests:
Terminal
In the dashboard, Settings → Tracking also includes Google Analytics and Custom Tracking Domains.