Tracking your emails is an important part of being a good sender and learning about how your users interact with your email. This includes everything from basics of clicks and opens to looking at which browsers and mailbox providers your customers use.
We have broken up statistics in specific ways so that you can get at-a-glance data, as well as allowing you to get into the details of how your email is being used.
Category statistics are available for the previous thirteen months only.
This endpoint allows you to retrieve all of your global email statistics between a given date range.
Parent accounts can see either aggregated stats for the parent account or aggregated stats for a subuser specified in the on-behalf-of
header. Subuser accounts will see only their own stats.
Bearer <<YOUR_API_KEY_HERE>>
Optional
The on-behalf-of
header allows you to make API calls from a parent account on behalf of the parent's Subusers or customer accounts. You will use the parent account's API key when using this header. When making a call on behalf of a customer account, the property value should be "account-id" followed by the customer account's ID (e.g., on-behalf-of: account-id <account-id>
). When making a call on behalf of a Subuser, the property value should be the Subuser's username (e.g., on-behalf-of: <subuser-username>
). See On Behalf Of for more information.
Optional
The number of results to return.
Optional
The point in the list to begin retrieving results.
Optional
How to group the statistics. Must be either "day", "week", or "month".
day
week
month
The starting date of the statistics to retrieve. Must follow format YYYY-MM-DD.
Optional
The end date of the statistics to retrieve. Defaults to today. Must follow format YYYY-MM-DD.
Array of:
The date the stats were gathered.
The individual email activity stats.
1const client = require("@sendgrid/client");2client.setApiKey(process.env.SENDGRID_API_KEY);34const queryParams = {5start_date: "2010-01-22",6};78const request = {9url: `/v3/stats`,10method: "GET",11qs: queryParams,12};1314client15.request(request)16.then(([response, body]) => {17console.log(response.statusCode);18console.log(response.body);19})20.catch((error) => {21console.error(error);22});