Spam Reports are triggered when a recipient marks one of your emails as spam. Spam reports can only be gathered from Internet Service Providers (ISPs) that provide a feedback loop.
It is important that addresses that have marked your messages as spam be permanently removed from your send list, even if the recipients have previously opted into receiving your messages. Continuing to send to customers who have reported your email as spam can severely affect your deliverability rating.
You can also access your Spam Reports from the Suppressions settings menu in the Twilio SendGrid App.
For more information, please see our Spam Reports documentation.
This endpoint allows you to retrieve a paginated list of all spam reports.
You can use the limit
query parameter to set the page size. If your list contains more items than the page size permits, you can make multiple requests. Use the offset
query parameter to control the position in the list from which to start retrieving additional items.
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 start of the time range when a spam report was created (inclusive). This is a unix timestamp.
Optional
The end of the time range when a spam report was created (inclusive). This is a unix timestamp.
Optional
limit
sets the page size, i.e. maximum number of items from the list to be returned for a single API request. If omitted, the default page size is used. The maximum page size for this endpoint is 500 items per page.
1
Maximum: 500
Optional
The number of items in the list to skip over before starting to retrieve the items for the requested page. The default offset
of 0
represents the beginning of the list, i.e. the start of the first page. To request the second page of the list, set the offset
to the page size as determined by limit
. Use multiples of the page size as your offset
to request further consecutive pages. E.g. assume your page size is set to 10
. An offset
of 10
requests the second page, an offset
of 20
requests the third page and so on, provided there are sufficiently many items in your list.
0
Default: 0
Optional
Specifies which records to return based on the records' associated email addresses. For example, sales
returns records with email addresses that start with 'sales', such as salesdepartment@example.com
or sales@example.com
. You can also use %25
as a wildcard. For example, %25market
returns records containing email addresses with the string 'market' anywhere in the email address, and %25market%25tree
returns records containing email addresses with the string 'market' followed by the string 'tree'. Any reserved characters should be percent-encoded, e.g., the @
symbol should be encoded as %40
.
Array of:
A Unix timestamp that indicates when the recipient marked your message as spam.
The email address of the recipient that marked your message as spam.
The IP address that the message was sent from.
To perform a request for the first page of the paginated list of all spam reports using the default page size, you can omit the limit
and offset
query parameters:
1const client = require("@sendgrid/client");2client.setApiKey(process.env.SENDGRID_API_KEY);34const request = {5url: `/v3/suppression/spam_reports`,6method: "GET",7};89client10.request(request)11.then(([response, body]) => {12console.log(response.statusCode);13console.log(response.body);14})15.catch((error) => {16console.error(error);17});
If you want to specify a page size of your choice, you can use the limit
query parameter. Assume you want a page size of no more than 5 items per request, to retrieve the first page you can use the limit
parameter without specifying an offset
:
1const client = require("@sendgrid/client");2client.setApiKey(process.env.SENDGRID_API_KEY);34const queryParams = {5limit: 5,6};78const request = {9url: `/v3/suppression/spam_reports`,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});
If you want to retrieve items beyond the first page, you can use the offset
parameter as follows. Assume you are still working with a page size of 5 as determined by your limit
query parameter and you have more than 15 items. To request the fourth page of items, you can use the offset
parameter to skip over the first 15 items, i.e. you start retrieving items starting after the first three pages of 5 items each:
1const client = require("@sendgrid/client");2client.setApiKey(process.env.SENDGRID_API_KEY);34const queryParams = {5limit: 5,6offset: 15,7};89const request = {10url: `/v3/suppression/spam_reports`,11method: "GET",12qs: queryParams,13};1415client16.request(request)17.then(([response, body]) => {18console.log(response.statusCode);19console.log(response.body);20})21.catch((error) => {22console.error(error);23});
The code samples below show how to use the email
query parameter to filter the Spam Report records returned by the GET
request. A Spam Report record is included in the results if the Spam Report email
property starts with the value of the email
query parameter. One or more %25
wildcards can be used in the email
query parameter.
Any reserved characters should be percent-encoded to avoid any unintended encoding/decoding of characters.
The code sample below shows examples of how to GET
all Spam Report records with email
properties that begin with the string "sales".
1const client = require("@sendgrid/client");2client.setApiKey(process.env.SENDGRID_API_KEY);34const queryParams = {5email: "sales",6};78const request = {9url: `/v3/suppression/spam_reports`,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});
This request would return Spam Reports with email addresses that start with "sales", such as salesteam@example.com
or sales@example.com
.
The code sample below shows examples of how to GET
all Spam Report records with email
properties that contain the string "sales" anywhere in the email address.
1const client = require("@sendgrid/client");2client.setApiKey(process.env.SENDGRID_API_KEY);34const queryParams = {5email: "%25sales",6};78const request = {9url: `/v3/suppression/spam_reports`,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});
This request would return Spam Reports with email addresses that contain "sales" anywhere in the email address, such as george@sales.example.com
or sales@example.com
.