Skip to contentSkip to navigationSkip to topbar
Rate this page:
On this page

Retrieve all bounces



API Overview

api-overview page anchor

An email is considered bounced when the message is undeliverable and then returned to the server that sent it. Bounced emails can be either permanent or temporary failures to deliver the message.

For more information, see our Bounces documentation.

You can also manage bounced emails from the Suppression settings menu in the Twilio SendGrid App(link takes you to an external page).


GET/v3/suppression/bounces

Base url: https://api.sendgrid.com

This endpoint allows you to retrieve a paginated list of all your bounces.

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.


Authentication

authentication page anchor
Authorizationstringrequired
Default: Bearer <<YOUR_API_KEY_HERE>>

Acceptstringrequired
Default: application/json

on-behalf-ofstring

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.

start_timeinteger

Refers start of the time range in unix timestamp when a bounce was created (inclusive).


end_timeinteger

Refers end of the time range in unix timestamp when a bounce was created (inclusive).


limitinteger

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.

Minimum: 1Maximum: 500

offsetinteger

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.

Minimum: 0Default: 0

emailstring

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(link takes you to an external page), e.g., the @ symbol should be encoded as %40.

200401
SchemaExample

Array of:

creatednumber

The unix timestamp for when the bounce record was created at SendGrid.


emailstring<email>

The email address that was added to the bounce list.


reasonstring

The reason for the bounce. This typically will be a bounce code, an enhanced code, and a description.


statusstring

Enhanced SMTP bounce response


Retrieving paginated results

retrieving-paginated-results page anchor

To perform a request for the first page of the paginated list of all bounces using the default page size, you can omit the limit and offset query parameters:

Retrieve first page from list of all bounces

retrieve-first-page-from-list-of-all-bounces page anchor
Node.js
Python
C#
Java
Go
PHP
Ruby
curl

_21
const client = require('@sendgrid/client');
_21
client.setApiKey(process.env.SENDGRID_API_KEY);
_21
_21
const headers = {
_21
"Accept": "application/json"
_21
};
_21
_21
const request = {
_21
url: `/v3/suppression/bounces`,
_21
method: 'GET',
_21
headers: headers
_21
}
_21
_21
client.request(request)
_21
.then(([response, body]) => {
_21
console.log(response.statusCode);
_21
console.log(response.body);
_21
})
_21
.catch(error => {
_21
console.error(error);
_21
});

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:

Retrieve first page from list of all bounces with a specified page size

retrieve-first-page-from-list-of-all-bounces-with-a-specified-page-size page anchor

Setting page size to 5 using the limit query parameter

Node.js
Python
C#
Java
Go
PHP
Ruby
curl

_25
const client = require('@sendgrid/client');
_25
client.setApiKey(process.env.SENDGRID_API_KEY);
_25
_25
const headers = {
_25
"Accept": "application/json"
_25
};
_25
const queryParams = {
_25
"limit": 5
_25
};
_25
_25
const request = {
_25
url: `/v3/suppression/bounces`,
_25
method: 'GET',
_25
headers: headers,
_25
qs: queryParams
_25
}
_25
_25
client.request(request)
_25
.then(([response, body]) => {
_25
console.log(response.statusCode);
_25
console.log(response.body);
_25
})
_25
.catch(error => {
_25
console.error(error);
_25
});

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:

Retrieve a specific page from the list of all bounces

retrieve-a-specific-page-from-the-list-of-all-bounces page anchor

Using the offset query parameter in combination with the limit query parameter

Node.js
Python
C#
Java
Go
PHP
Ruby
curl

_26
const client = require('@sendgrid/client');
_26
client.setApiKey(process.env.SENDGRID_API_KEY);
_26
_26
const headers = {
_26
"Accept": "application/json"
_26
};
_26
const queryParams = {
_26
"limit": 5,
_26
"offset": 15
_26
};
_26
_26
const request = {
_26
url: `/v3/suppression/bounces`,
_26
method: 'GET',
_26
headers: headers,
_26
qs: queryParams
_26
}
_26
_26
client.request(request)
_26
.then(([response, body]) => {
_26
console.log(response.statusCode);
_26
console.log(response.body);
_26
})
_26
.catch(error => {
_26
console.error(error);
_26
});


Use the email query parameter to filter results

use-the-email-query-parameter-to-filter-results page anchor

The code samples below show how to use the email query parameter to filter the Bounce records returned by the GET request. A Bounce record is included in the results if the Bounce's email property starts with the 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(link takes you to an external page) to avoid any unintended encoding/decoding of characters.

Filter results without wildcard

filter-results-without-wildcard page anchor

The code sample below shows examples of how to GET all Bounce records with email properties that begin with the string "sales".

Filter results without wildcard

filter-results-without-wildcard-1 page anchor

GET all Bounce records with email properties that start with 'sales'

Node.js
Python
C#
Java
Go
PHP
Ruby
curl

_25
const client = require('@sendgrid/client');
_25
client.setApiKey(process.env.SENDGRID_API_KEY);
_25
_25
const headers = {
_25
"Accept": "application/json"
_25
};
_25
const queryParams = {
_25
"email": "sales"
_25
};
_25
_25
const request = {
_25
url: `/v3/suppression/bounces`,
_25
method: 'GET',
_25
headers: headers,
_25
qs: queryParams
_25
}
_25
_25
client.request(request)
_25
.then(([response, body]) => {
_25
console.log(response.statusCode);
_25
console.log(response.body);
_25
})
_25
.catch(error => {
_25
console.error(error);
_25
});

This request would return Bounces with email addresses that start with "sales", such as salesteam@example.com or sales@example.com.

Filter results with wildcard

filter-results-with-wildcard page anchor

The code sample below shows examples of how to GET all Bounce records with email properties that contain the string "sales" anywhere in the email address.

Filter results with a wildcard

filter-results-with-a-wildcard page anchor

GET all Bounce records with email properties that contain the string 'sales' anywhere in the email address

Node.js
Python
C#
Java
Go
PHP
Ruby
curl

_25
const client = require('@sendgrid/client');
_25
client.setApiKey(process.env.SENDGRID_API_KEY);
_25
_25
const headers = {
_25
"Accept": "application/json"
_25
};
_25
const queryParams = {
_25
"email": "%25sales"
_25
};
_25
_25
const request = {
_25
url: `/v3/suppression/bounces`,
_25
method: 'GET',
_25
headers: headers,
_25
qs: queryParams
_25
}
_25
_25
client.request(request)
_25
.then(([response, body]) => {
_25
console.log(response.statusCode);
_25
console.log(response.body);
_25
})
_25
.catch(error => {
_25
console.error(error);
_25
});

This request would return Bounces with email addresses that contain "sales" anywhere in the email address, such as george@sales.example.com or sales@example.com.


Rate this page: