This documentation is based on our OAI specification.
INITIALIZATION¶ ↑
var sg = require('sendgrid')(process.env.SENDGRID_API_KEY)
Table of Contents¶ ↑
ACCESS SETTINGS¶ ↑
Retrieve all recent access attempts¶ ↑
This endpoint allows you to retrieve a list of all of the IP addresses that recently attempted to access your account either through the User Interface or the API.
IP Access Management allows you to control which IP addresses can be used to access your account, either through the User Interface or the API. There is no limit to the number of IP addresses that you can add to your whitelist. It is possible to remove your own IP address from the whitelist, thus preventing yourself from accessing your account.
For more information, please see our User Guide.
GET /access_settings/activity¶ ↑
var request = sg.emptyRequest() request.queryParams["limit"] = '1' request.method = 'GET' request.path = '/v3/access_settings/activity' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Add one or more IPs to the whitelist¶ ↑
This endpoint allows you to add one or more IP addresses to your IP whitelist.
When adding an IP to your whitelist, include the IP address in an array. You can whitelist one IP at a time, or you can whitelist multiple IPs at once.
IP Access Management allows you to control which IP addresses can be used to access your account, either through the User Interface or the API. There is no limit to the number of IP addresses that you can add to your whitelist. It is possible to remove your own IP address from the whitelist, thus preventing yourself from accessing your account.
For more information, please see our User Guide.
POST /access_settings/whitelist¶ ↑
var request = sg.emptyRequest() request.body = { "ips": [ { "ip": "<IP_ADDRESS>" }, { "ip": "192.*.*.*" }, { "ip": "<IP_ADDRESS>/32" } ] }; request.method = 'POST' request.path = '/v3/access_settings/whitelist' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve a list of currently whitelisted IPs¶ ↑
This endpoint allows you to retrieve a list of IP addresses that are currently whitelisted.
IP Access Management allows you to control which IP addresses can be used to access your account, either through the User Interface or the API. There is no limit to the number of IP addresses that you can add to your whitelist. It is possible to remove your own IP address from the whitelist, thus preventing yourself from accessing your account.
For more information, please see our User Guide.
GET /access_settings/whitelist¶ ↑
var request = sg.emptyRequest() request.method = 'GET' request.path = '/v3/access_settings/whitelist' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Remove one or more IPs from the whitelist¶ ↑
This endpoint allows you to remove one or more IPs from your IP whitelist.
You can remove one IP at a time, or you can remove multiple IP addresses.
IP Access Management allows you to control which IP addresses can be used to access your account, either through the User Interface or the API. There is no limit to the number of IP addresses that you can add to your whitelist. It is possible to remove your own IP address from the whitelist, thus preventing yourself from accessing your account.
For more information, please see our User Guide.
DELETE /access_settings/whitelist¶ ↑
var request = sg.emptyRequest() request.body = { "ids": [ 1, 2, 3 ] }; request.method = 'DELETE' request.path = '/v3/access_settings/whitelist' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve a specific whitelisted IP¶ ↑
This endpoint allows you to retreive a specific IP address that has been whitelisted.
You must include the ID for the specific IP address you want to retrieve in your call.
IP Access Management allows you to control which IP addresses can be used to access your account, either through the User Interface or the API. There is no limit to the number of IP addresses that you can add to your whitelist. It is possible to remove your own IP address from the whitelist, thus preventing yourself from accessing your account.
For more information, please see our User Guide.
GET /access_settings/whitelist/{rule_id}¶ ↑
var request = sg.emptyRequest() request.method = 'GET' request.path = '/v3/access_settings/whitelist/{rule_id}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Remove a specific IP from the whitelist¶ ↑
This endpoint allows you to remove a specific IP address from your IP whitelist.
When removing a specific IP address from your whitelist, you must include the ID in your call.
IP Access Management allows you to control which IP addresses can be used to access your account, either through the User Interface or the API. There is no limit to the number of IP addresses that you can add to your whitelist. It is possible to remove your own IP address from the whitelist, thus preventing yourself from accessing your account.
For more information, please see our User Guide.
DELETE /access_settings/whitelist/{rule_id}¶ ↑
var request = sg.emptyRequest() request.method = 'DELETE' request.path = '/v3/access_settings/whitelist/{rule_id}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
ALERTS¶ ↑
Create a new Alert¶ ↑
This endpoint allows you to create a new alert.
Alerts allow you to specify an email address to receive notifications regarding your email usage or statistics. * Usage alerts allow you to set the threshold at which an alert will be sent. * Stats notifications allow you to set how frequently you would like to receive email statistics reports. For example, “daily”, “weekly”, or “monthly”.
For more information about alerts, please see our User Guide.
POST /alerts¶ ↑
var request = sg.emptyRequest() request.body = { "email_to"<EMAIL_ADDRESS>"frequency": "daily", "type": "stats_notification" }; request.method = 'POST' request.path = '/v3/alerts' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve all alerts¶ ↑
This endpoint allows you to retieve all of your alerts.
Alerts allow you to specify an email address to receive notifications regarding your email usage or statistics. * Usage alerts allow you to set the threshold at which an alert will be sent. * Stats notifications allow you to set how frequently you would like to receive email statistics reports. For example, “daily”, “weekly”, or “monthly”.
For more information about alerts, please see our User Guide.
GET /alerts¶ ↑
var request = sg.emptyRequest() request.method = 'GET' request.path = '/v3/alerts' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Update an alert¶ ↑
This endpoint allows you to update an alert.
Alerts allow you to specify an email address to receive notifications regarding your email usage or statistics. * Usage alerts allow you to set the threshold at which an alert will be sent. * Stats notifications allow you to set how frequently you would like to receive email statistics reports. For example, “daily”, “weekly”, or “monthly”.
For more information about alerts, please see our User Guide.
PATCH /alerts/{alert_id}¶ ↑
var request = sg.emptyRequest() request.body = { "email_to"<EMAIL_ADDRESS>}; request.method = 'PATCH' request.path = '/v3/alerts/{alert_id}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve a specific alert¶ ↑
This endpoint allows you to retrieve a specific alert.
Alerts allow you to specify an email address to receive notifications regarding your email usage or statistics. * Usage alerts allow you to set the threshold at which an alert will be sent. * Stats notifications allow you to set how frequently you would like to receive email statistics reports. For example, “daily”, “weekly”, or “monthly”.
For more information about alerts, please see our User Guide.
GET /alerts/{alert_id}¶ ↑
var request = sg.emptyRequest() request.method = 'GET' request.path = '/v3/alerts/{alert_id}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Delete an alert¶ ↑
This endpoint allows you to delete an alert.
Alerts allow you to specify an email address to receive notifications regarding your email usage or statistics. * Usage alerts allow you to set the threshold at which an alert will be sent. * Stats notifications allow you to set how frequently you would like to receive email statistics reports. For example, “daily”, “weekly”, or “monthly”.
For more information about alerts, please see our User Guide.
DELETE /alerts/{alert_id}¶ ↑
var request = sg.emptyRequest() request.method = 'DELETE' request.path = '/v3/alerts/{alert_id}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
API KEYS¶ ↑
Create API keys¶ ↑
This enpoint allows you to create a new random API Key for the user.
A JSON request body containing a “name” property is required. If number of maximum keys is reached, HTTP 403 will be returned.
There is a limit of 100 API Keys on your account.
The API Keys feature allows customers to be able to generate an API Key credential which can be used for authentication with the SendGrid v3 Web API or the Mail API Endpoint.
See the API Key Permissions List for a list of all available scopes.
POST /api_keys¶ ↑
var request = sg.emptyRequest() request.body = { "name": "My API Key", "sample": "data", "scopes": [ "mail.send", "alerts.create", "alerts.read" ] }; request.method = 'POST' request.path = '/v3/api_keys' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve all API Keys belonging to the authenticated user¶ ↑
This endpoint allows you to retrieve all API Keys that belong to the authenticated user.
The API Keys feature allows customers to be able to generate an API Key credential which can be used for authentication with the SendGrid v3 Web API or the Mail API Endpoint.
GET /api_keys¶ ↑
var request = sg.emptyRequest() request.queryParams["limit"] = '1' request.method = 'GET' request.path = '/v3/api_keys' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Update the name & scopes of an API Key¶ ↑
This endpoint allows you to update the name and scopes of a given API key.
A JSON request body with a “name” property is required. Most provide the list of all the scopes an api key should have.
The API Keys feature allows customers to be able to generate an API Key credential which can be used for authentication with the SendGrid v3 Web API or the Mail API Endpoint.
PUT /api_keys/{api_key_id}¶ ↑
var request = sg.emptyRequest() request.body = { "name": "A New Hope", "scopes": [ "user.profile.read", "user.profile.update" ] }; request.method = 'PUT' request.path = '/v3/api_keys/{api_key_id}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Update API keys¶ ↑
This endpoint allows you to update the name of an existing API Key.
A JSON request body with a “name” property is required.
The API Keys feature allows customers to be able to generate an API Key credential which can be used for authentication with the SendGrid v3 Web API or the Mail API Endpoint.
URI Parameters¶ ↑
| URI Parameter | Type | Required? | Description | |—|—|—|—| |api_key_id |string | required | The ID of the API Key you are updating.|
PATCH /api_keys/{api_key_id}¶ ↑
var request = sg.emptyRequest() request.body = { "name": "A New Hope" }; request.method = 'PATCH' request.path = '/v3/api_keys/{api_key_id}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve an existing API Key¶ ↑
This endpoint allows you to retrieve a single api key.
If the API Key ID does not exist an HTTP 404 will be returned.
GET /api_keys/{api_key_id}¶ ↑
var request = sg.emptyRequest() request.method = 'GET' request.path = '/v3/api_keys/{api_key_id}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Delete API keys¶ ↑
This endpoint allows you to revoke an existing API Key
Authentications using this API Key will fail after this request is made, with some small propogation delay.If the API Key ID does not exist an HTTP 404 will be returned.
The API Keys feature allows customers to be able to generate an API Key credential which can be used for authentication with the SendGrid v3 Web API or the Mail API Endpoint.
URI Parameters¶ ↑
| URI Parameter | Type | Required? | Description | |—|—|—|—| |api_key_id |string | required | The ID of the API Key you are deleting.|
DELETE /api_keys/{api_key_id}¶ ↑
var request = sg.emptyRequest() request.method = 'DELETE' request.path = '/v3/api_keys/{api_key_id}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
ASM¶ ↑
Create a new suppression group¶ ↑
This endpoint allows you to create a new suppression group.
Suppression groups, or unsubscribe groups, are specific types or categories of email that you would like your recipients to be able to unsubscribe from. For example: Daily Newsletters, Invoices, System Alerts.
The name and description of the unsubscribe group will be visible by recipients when they are managing their subscriptions.
Each user can create up to 25 different suppression groups.
POST /asm/groups¶ ↑
var request = sg.emptyRequest() request.body = { "description": "Suggestions for products our users might like.", "is_default": true, "name": "Product Suggestions" }; request.method = 'POST' request.path = '/v3/asm/groups' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve information about multiple suppression groups¶ ↑
This endpoint allows you to retrieve information about multiple suppression groups.
This endpoint will return information for each group ID that you include in
your request. To add a group ID to your request, simply append
&id=
followed by the group ID.
Suppressions are a list of email addresses that will not receive content sent under a given group.
Suppression groups, or unsubscribe groups, allow you to label a category of content that you regularly send. This gives your recipients the ability to opt out of a specific set of your email. For example, you might define a group for your transactional email, and one for your marketing email so that your users can continue recieving your transactional email witout having to receive your marketing content.
GET /asm/groups¶ ↑
var request = sg.emptyRequest() request.queryParams["id"] = '1' request.method = 'GET' request.path = '/v3/asm/groups' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Update a suppression group.¶ ↑
This endpoint allows you to update or change a suppression group.
Suppression groups, or unsubscribe groups, are specific types or categories of email that you would like your recipients to be able to unsubscribe from. For example: Daily Newsletters, Invoices, System Alerts.
The name and description of the unsubscribe group will be visible by recipients when they are managing their subscriptions.
Each user can create up to 25 different suppression groups.
PATCH /asm/groups/{group_id}¶ ↑
var request = sg.emptyRequest() request.body = { "description": "Suggestions for items our users might like.", "id": 103, "name": "Item Suggestions" }; request.method = 'PATCH' request.path = '/v3/asm/groups/{group_id}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Get information on a single suppression group.¶ ↑
This endpoint allows you to retrieve a single suppression group.
Suppression groups, or unsubscribe groups, are specific types or categories of email that you would like your recipients to be able to unsubscribe from. For example: Daily Newsletters, Invoices, System Alerts.
The name and description of the unsubscribe group will be visible by recipients when they are managing their subscriptions.
Each user can create up to 25 different suppression groups.
GET /asm/groups/{group_id}¶ ↑
var request = sg.emptyRequest() request.method = 'GET' request.path = '/v3/asm/groups/{group_id}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Delete a suppression group.¶ ↑
This endpoint allows you to delete a suppression group.
You can only delete groups that have not been attached to sent mail in the last 60 days. If a recipient uses the “one-click unsubscribe” option on an email associated with a deleted group, that recipient will be added to the global suppression list.
Suppression groups, or unsubscribe groups, are specific types or categories of email that you would like your recipients to be able to unsubscribe from. For example: Daily Newsletters, Invoices, System Alerts.
The name and description of the unsubscribe group will be visible by recipients when they are managing their subscriptions.
Each user can create up to 25 different suppression groups.
DELETE /asm/groups/{group_id}¶ ↑
var request = sg.emptyRequest() request.method = 'DELETE' request.path = '/v3/asm/groups/{group_id}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Add suppressions to a suppression group¶ ↑
This endpoint allows you to add email addresses to an unsubscribe group.
If you attempt to add suppressions to a group that has been deleted or does not exist, the suppressions will be added to the global suppressions list.
Suppressions are recipient email addresses that are added to unsubscribe groups. Once a recipient's address is on the suppressions list for an unsubscribe group, they will not receive any emails that are tagged with that unsubscribe group.
POST /asm/groups/{group_id}/suppressions¶ ↑
var request = sg.emptyRequest() request.body = { "recipient_emails": [<EMAIL_ADDRESS><EMAIL_ADDRESS>] }; request.method = 'POST' request.path = '/v3/asm/groups/{group_id}/suppressions' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve all suppressions for a suppression group¶ ↑
This endpoint allows you to retrieve all suppressed email addresses belonging to the given group.
Suppressions are recipient email addresses that are added to unsubscribe groups. Once a recipient's address is on the suppressions list for an unsubscribe group, they will not receive any emails that are tagged with that unsubscribe group.
GET /asm/groups/{group_id}/suppressions¶ ↑
var request = sg.emptyRequest() request.method = 'GET' request.path = '/v3/asm/groups/{group_id}/suppressions' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Search for suppressions within a group¶ ↑
This endpoint allows you to search a suppression group for multiple suppressions.
When given a list of email addresses and a group ID, this endpoint will return only the email addresses that have been unsubscribed from the given group.
Suppressions are a list of email addresses that will not receive content sent under a given group.
POST /asm/groups/{group_id}/suppressions/search¶ ↑
var request = sg.emptyRequest() request.body = { "recipient_emails": [<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>] }; request.method = 'POST' request.path = '/v3/asm/groups/{group_id}/suppressions/search' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Delete a suppression from a suppression group¶ ↑
This endpoint allows you to remove a suppressed email address from the given suppression group.
Suppressions are recipient email addresses that are added to unsubscribe groups. Once a recipient's address is on the suppressions list for an unsubscribe group, they will not receive any emails that are tagged with that unsubscribe group.
DELETE /asm/groups/{group_id}/suppressions/{email}¶ ↑
var request = sg.emptyRequest() request.method = 'DELETE' request.path = '/v3/asm/groups/{group_id}/suppressions/{email}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve all suppressions¶ ↑
This endpoint allows you to retrieve a list of all suppressions.
Suppressions are a list of email addresses that will not receive content sent under a given group.
GET /asm/suppressions¶ ↑
var request = sg.emptyRequest() request.method = 'GET' request.path = '/v3/asm/suppressions' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Add recipient addresses to the global suppression group.¶ ↑
This endpoint allows you to add one or more email addresses to the global suppressions group.
A global suppression (or global unsubscribe) is an email address of a recipient who does not want to receive any of your messages. A globally suppressed recipient will be removed from any email you send. For more information, please see our User Guide.
POST /asm/suppressions/global¶ ↑
var request = sg.emptyRequest() request.body = { "recipient_emails": [<EMAIL_ADDRESS><EMAIL_ADDRESS>] }; request.method = 'POST' request.path = '/v3/asm/suppressions/global' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve a Global Suppression¶ ↑
This endpoint allows you to retrieve a global suppression. You can also use this endpoint to confirm if an email address is already globally suppresed.
If the email address you include in the URL path parameter
{email}
is alreayd globally suppressed, the response will
include that email address. If the address you enter for
{email}
is not globally suppressed, an empty JSON object
{}
will be returned.
A global suppression (or global unsubscribe) is an email address of a recipient who does not want to receive any of your messages. A globally suppressed recipient will be removed from any email you send. For more information, please see our User Guide.
GET /asm/suppressions/global/{email}¶ ↑
var request = sg.emptyRequest() request.method = 'GET' request.path = '/v3/asm/suppressions/global/{email}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Delete a Global Suppression¶ ↑
This endpoint allows you to remove an email address from the global suppressions group.
A global suppression (or global unsubscribe) is an email address of a recipient who does not want to receive any of your messages. A globally suppressed recipient will be removed from any email you send. For more information, please see our User Guide.
DELETE /asm/suppressions/global/{email}¶ ↑
var request = sg.emptyRequest() request.method = 'DELETE' request.path = '/v3/asm/suppressions/global/{email}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve all suppression groups for an email address¶ ↑
This endpoint returns the list of all groups that the given email address has been unsubscribed from.
Suppressions are a list of email addresses that will not receive content sent under a given group.
GET /asm/suppressions/{email}¶ ↑
var request = sg.emptyRequest() request.method = 'GET' request.path = '/v3/asm/suppressions/{email}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
BROWSERS¶ ↑
Retrieve email statistics by browser.¶ ↑
This endpoint allows you to retrieve your email statistics segmented by browser type.
We only store up to 7 days of email activity in our database. By default, 500 items will be returned per request via the Advanced Stats API endpoints.
Advanced Stats provide a more in-depth view of your email statistics and the actions taken by your recipients. You can segment these statistics by geographic location, device type, client type, browser, and mailbox provider. For more information about statistics, please see our User Guide.
GET /browsers/stats¶ ↑
var request = sg.emptyRequest() request.queryParams["end_date"] = '2016-04-01' request.queryParams["aggregated_by"] = 'day' request.queryParams["browsers"] = 'test_string' request.queryParams["limit"] = 'test_string' request.queryParams["offset"] = 'test_string' request.queryParams["start_date"] = '2016-01-01' request.method = 'GET' request.path = '/v3/browsers/stats' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
CAMPAIGNS¶ ↑
Create a Campaign¶ ↑
This endpoint allows you to create a campaign.
Our Marketing Campaigns API lets you create, manage, send, and schedule campaigns.
Note: In order to send or schedule the campaign, you will be required to provide a subject, sender ID, content (we suggest both html and plain text), and at least one list or segment ID. This information is not required when you create a campaign.
For more information:
POST /campaigns¶ ↑
var request = sg.emptyRequest() request.body = { "categories": [ "spring line" ], "custom_unsubscribe_url": "", "html_content": "<html><head><title></title></head><body><p>Check out our spring line!</p></body></html>", "ip_pool": "marketing", "list_ids": [ 110, 124 ], "plain_content": "Check out our spring line!", "segment_ids": [ 110 ], "sender_id": 124451, "subject": "New Products for Spring!", "suppression_group_id": 42, "title": "March Newsletter" }; request.method = 'POST' request.path = '/v3/campaigns' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve all Campaigns¶ ↑
This endpoint allows you to retrieve a list of all of your campaigns.
Returns campaigns in reverse order they were created (newest first).
Returns an empty array if no campaigns exist.
For more information:
GET /campaigns¶ ↑
var request = sg.emptyRequest() request.queryParams["limit"] = '1' request.queryParams["offset"] = '1' request.method = 'GET' request.path = '/v3/campaigns' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Update a Campaign¶ ↑
Update a campaign. This is especially useful if you only set up the campaign using POST /campaigns, but didn't set many of the parameters.
For more information:
PATCH /campaigns/{campaign_id}¶ ↑
var request = sg.emptyRequest() request.body = { "categories": [ "summer line" ], "html_content": "<html><head><title></title></head><body><p>Check out our summer line!</p></body></html>", "plain_content": "Check out our summer line!", "subject": "New Products for Summer!", "title": "May Newsletter" }; request.method = 'PATCH' request.path = '/v3/campaigns/{campaign_id}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve a single campaign¶ ↑
This endpoint allows you to retrieve a specific campaign.
Our Marketing Campaigns API lets you create, manage, send, and schedule campaigns.
For more information:
GET /campaigns/{campaign_id}¶ ↑
var request = sg.emptyRequest() request.method = 'GET' request.path = '/v3/campaigns/{campaign_id}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Delete a Campaign¶ ↑
This endpoint allows you to delete a specific campaign.
Our Marketing Campaigns API lets you create, manage, send, and schedule campaigns.
For more information:
DELETE /campaigns/{campaign_id}¶ ↑
var request = sg.emptyRequest() request.method = 'DELETE' request.path = '/v3/campaigns/{campaign_id}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Update a Scheduled Campaign¶ ↑
This endpoint allows to you change the scheduled time and date for a campaign to be sent.
For more information:
PATCH /campaigns/{campaign_id}/schedules¶ ↑
var request = sg.emptyRequest() request.body = { "send_at":<PHONE_NUMBER> }; request.method = 'PATCH' request.path = '/v3/campaigns/{campaign_id}/schedules' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Schedule a Campaign¶ ↑
This endpoint allows you to schedule a specific date and time for your campaign to be sent.
For more information:
POST /campaigns/{campaign_id}/schedules¶ ↑
var request = sg.emptyRequest() request.body = { "send_at":<PHONE_NUMBER> }; request.method = 'POST' request.path = '/v3/campaigns/{campaign_id}/schedules' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
View Scheduled Time of a Campaign¶ ↑
This endpoint allows you to retrieve the date and time that the given campaign has been scheduled to be sent.
For more information:
GET /campaigns/{campaign_id}/schedules¶ ↑
var request = sg.emptyRequest() request.method = 'GET' request.path = '/v3/campaigns/{campaign_id}/schedules' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Unschedule a Scheduled Campaign¶ ↑
This endpoint allows you to unschedule a campaign that has already been scheduled to be sent.
A successful unschedule will return a 204. If the specified campaign is in the process of being sent, the only option is to cancel (a different method).
For more information:
DELETE /campaigns/{campaign_id}/schedules¶ ↑
var request = sg.emptyRequest() request.method = 'DELETE' request.path = '/v3/campaigns/{campaign_id}/schedules' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Send a Campaign¶ ↑
This endpoint allows you to immediately send a campaign at the time you make the API call.
Normally a POST would have a request body, but since this endpoint is telling us to send a resource that is already created, a request body is not needed.
For more information:
POST /campaigns/{campaign_id}/schedules/now¶ ↑
var request = sg.emptyRequest() request.method = 'POST' request.path = '/v3/campaigns/{campaign_id}/schedules/now' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Send a Test Campaign¶ ↑
This endpoint allows you to send a test campaign.
To send to multiple addresses, use an array for the JSON “to” value [“one@address”,“two@address”]
For more information:
POST /campaigns/{campaign_id}/schedules/test¶ ↑
var request = sg.emptyRequest() request.body = { "to"<EMAIL_ADDRESS>}; request.method = 'POST' request.path = '/v3/campaigns/{campaign_id}/schedules/test' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
CATEGORIES¶ ↑
Retrieve all categories¶ ↑
This endpoint allows you to retrieve a list of all of your categories.
Categories can help organize your email analytics by enabling you to tag emails by type or broad topic. You can define your own custom categories. For more information, please see our User Guide.
GET /categories¶ ↑
var request = sg.emptyRequest() request.queryParams["category"] = 'test_string' request.queryParams["limit"] = '1' request.queryParams["offset"] = '1' request.method = 'GET' request.path = '/v3/categories' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve Email Statistics for Categories¶ ↑
This endpoint allows you to retrieve all of your email statistics for each of your categories.
If you do not define any query parameters, this endpoint will return a sum for each category in groups of 10.
Categories allow you to group your emails together according to broad topics that you define. For more information, please see our User Guide.
GET /categories/stats¶ ↑
var request = sg.emptyRequest() request.queryParams["end_date"] = '2016-04-01' request.queryParams["aggregated_by"] = 'day' request.queryParams["limit"] = '1' request.queryParams["offset"] = '1' request.queryParams["start_date"] = '2016-01-01' request.queryParams["categories"] = 'test_string' request.method = 'GET' request.path = '/v3/categories/stats' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve sums of email stats for each category [Needs: Stats object defined, has category ID?]¶ ↑
This endpoint allows you to retrieve the total sum of each email statistic for every category over the given date range.
If you do not define any query parameters, this endpoint will return a sum for each category in groups of 10.
Categories allow you to group your emails together according to broad topics that you define. For more information, please see our User Guide.
GET /categories/stats/sums¶ ↑
var request = sg.emptyRequest() request.queryParams["end_date"] = '2016-04-01' request.queryParams["aggregated_by"] = 'day' request.queryParams["limit"] = '1' request.queryParams["sort_by_metric"] = 'test_string' request.queryParams["offset"] = '1' request.queryParams["start_date"] = '2016-01-01' request.queryParams["sort_by_direction"] = 'asc' request.method = 'GET' request.path = '/v3/categories/stats/sums' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
CLIENTS¶ ↑
Retrieve email statistics by client type.¶ ↑
This endpoint allows you to retrieve your email statistics segmented by client type.
We only store up to 7 days of email activity in our database. By default, 500 items will be returned per request via the Advanced Stats API endpoints.
Advanced Stats provide a more in-depth view of your email statistics and the actions taken by your recipients. You can segment these statistics by geographic location, device type, client type, browser, and mailbox provider. For more information about statistics, please see our User Guide.
GET /clients/stats¶ ↑
var request = sg.emptyRequest() request.queryParams["aggregated_by"] = 'day' request.queryParams["start_date"] = '2016-01-01' request.queryParams["end_date"] = '2016-04-01' request.method = 'GET' request.path = '/v3/clients/stats' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve stats by a specific client type.¶ ↑
This endpoint allows you to retrieve your email statistics segmented by a specific client type.
We only store up to 7 days of email activity in our database. By default, 500 items will be returned per request via the Advanced Stats API endpoints.
Available Client Types¶ ↑
-
phone
-
tablet
-
webmail
-
desktop
Advanced Stats provide a more in-depth view of your email statistics and the actions taken by your recipients. You can segment these statistics by geographic location, device type, client type, browser, and mailbox provider. For more information about statistics, please see our User Guide.
GET /clients/{client_type}/stats¶ ↑
var request = sg.emptyRequest() request.queryParams["aggregated_by"] = 'day' request.queryParams["start_date"] = '2016-01-01' request.queryParams["end_date"] = '2016-04-01' request.method = 'GET' request.path = '/v3/clients/{client_type}/stats' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
CONTACTDB¶ ↑
Create a Custom Field¶ ↑
This endpoint allows you to create a custom field.
The contactdb is a database of your contacts for SendGrid Marketing Campaigns.
POST /contactdb/custom_fields¶ ↑
var request = sg.emptyRequest() request.body = { "name": "pet", "type": "text" }; request.method = 'POST' request.path = '/v3/contactdb/custom_fields' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve all custom fields¶ ↑
This endpoint allows you to retrieve all custom fields.
The contactdb is a database of your contacts for SendGrid Marketing Campaigns.
GET /contactdb/custom_fields¶ ↑
var request = sg.emptyRequest() request.method = 'GET' request.path = '/v3/contactdb/custom_fields' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve a Custom Field¶ ↑
This endpoint allows you to retrieve a custom field by ID.
The contactdb is a database of your contacts for SendGrid Marketing Campaigns.
GET /contactdb/custom_fields/{custom_field_id}¶ ↑
var request = sg.emptyRequest() request.method = 'GET' request.path = '/v3/contactdb/custom_fields/{custom_field_id}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Delete a Custom Field¶ ↑
This endpoint allows you to delete a custom field by ID.
The contactdb is a database of your contacts for SendGrid Marketing Campaigns.
DELETE /contactdb/custom_fields/{custom_field_id}¶ ↑
var request = sg.emptyRequest() request.method = 'DELETE' request.path = '/v3/contactdb/custom_fields/{custom_field_id}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Create a List¶ ↑
This endpoint allows you to create a list for your recipients.
The Contacts API helps you manage your Marketing Campaigns recipients.
POST /contactdb/lists¶ ↑
var request = sg.emptyRequest() request.body = { "name": "your list name" }; request.method = 'POST' request.path = '/v3/contactdb/lists' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve all lists¶ ↑
This endpoint allows you to retrieve all of your recipient lists. If you don't have any lists, an empty array will be returned.
The Contacts API helps you manage your Marketing Campaigns recipients.
GET /contactdb/lists¶ ↑
var request = sg.emptyRequest() request.method = 'GET' request.path = '/v3/contactdb/lists' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Delete Multiple lists¶ ↑
This endpoint allows you to delete multiple recipient lists.
The Contacts API helps you manage your Marketing Campaigns recipients.
DELETE /contactdb/lists¶ ↑
var request = sg.emptyRequest() request.body = [ 1, 2, 3, 4 ]; request.method = 'DELETE' request.path = '/v3/contactdb/lists' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Update a List¶ ↑
This endpoint allows you to update the name of one of your recipient lists.
The Contacts API helps you manage your Marketing Campaigns recipients.
PATCH /contactdb/lists/{list_id}¶ ↑
var request = sg.emptyRequest() request.body = { "name": "newlistname" }; request.queryParams["list_id"] = '1' request.method = 'PATCH' request.path = '/v3/contactdb/lists/{list_id}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve a single list¶ ↑
This endpoint allows you to retrieve a single recipient list.
The Contacts API helps you manage your Marketing Campaigns recipients.
GET /contactdb/lists/{list_id}¶ ↑
var request = sg.emptyRequest() request.queryParams["list_id"] = '1' request.method = 'GET' request.path = '/v3/contactdb/lists/{list_id}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Delete a List¶ ↑
This endpoint allows you to delete a specific recipient list with the given ID.
The Contacts API helps you manage your Marketing Campaigns recipients.
DELETE /contactdb/lists/{list_id}¶ ↑
var request = sg.emptyRequest() request.queryParams["delete_contacts"] = 'true' request.method = 'DELETE' request.path = '/v3/contactdb/lists/{list_id}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Add Multiple Recipients to a List¶ ↑
This endpoint allows you to add multiple recipients to a list.
Adds existing recipients to a list, passing in the recipient IDs to add. Recipient IDs should be passed exactly as they are returned from recipient endpoints.
The Contacts API helps you manage your Marketing Campaigns recipients.
POST /contactdb/lists/{list_id}/recipients¶ ↑
var request = sg.emptyRequest() request.body = [ "recipient_id1", "recipient_id2" ]; request.method = 'POST' request.path = '/v3/contactdb/lists/{list_id}/recipients' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve all recipients on a List¶ ↑
This endpoint allows you to retrieve all recipients on the list with the given ID.
The Contacts API helps you manage your Marketing Campaigns recipients.
GET /contactdb/lists/{list_id}/recipients¶ ↑
var request = sg.emptyRequest() request.queryParams["page"] = '1' request.queryParams["page_size"] = '1' request.queryParams["list_id"] = '1' request.method = 'GET' request.path = '/v3/contactdb/lists/{list_id}/recipients' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Add a Single Recipient to a List¶ ↑
This endpoint allows you to add a single recipient to a list.
The Contacts API helps you manage your Marketing Campaigns recipients.
POST /contactdb/lists/{list_id}/recipients/{recipient_id}¶ ↑
var request = sg.emptyRequest() request.method = 'POST' request.path = '/v3/contactdb/lists/{list_id}/recipients/{recipient_id}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Delete a Single Recipient from a Single List¶ ↑
This endpoint allows you to delete a single recipient from a list.
The Contacts API helps you manage your Marketing Campaigns recipients.
DELETE /contactdb/lists/{list_id}/recipients/{recipient_id}¶ ↑
var request = sg.emptyRequest() request.queryParams["recipient_id"] = '1' request.queryParams["list_id"] = '1' request.method = 'DELETE' request.path = '/v3/contactdb/lists/{list_id}/recipients/{recipient_id}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Update Recipient¶ ↑
This endpoint allows you to update one or more recipients.
The body of an API call to this endpoint must include an array of one or more recipient objects.
It is of note that you can add custom field data as parameters on recipient objects. We have provided an example using some of the default custom fields SendGrid provides.
The contactdb is a database of your contacts for SendGrid Marketing Campaigns.
PATCH /contactdb/recipients¶ ↑
var request = sg.emptyRequest() request.body = [ { "email"<EMAIL_ADDRESS>"first_name": "Guy", "last_name": "Jones" } ]; request.method = 'PATCH' request.path = '/v3/contactdb/recipients' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Add recipients¶ ↑
This endpoint allows you to add a Marketing Campaigns recipient.
It is of note that you can add custom field data as a parameter on this endpoint. We have provided an example using some of the default custom fields SendGrid provides.
The Contacts API helps you manage your Marketing Campaigns recipients.
POST /contactdb/recipients¶ ↑
var request = sg.emptyRequest() request.body = [ { "age": 25, "email"<EMAIL_ADDRESS>"first_name": "", "last_name": "User" }, { "age": 25, "email"<EMAIL_ADDRESS>"first_name": "Example", "last_name": "User" } ]; request.method = 'POST' request.path = '/v3/contactdb/recipients' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve recipients¶ ↑
This endpoint allows you to retrieve all of your Marketing Campaigns recipients.
Batch deletion of a page makes it possible to receive an empty page of recipients before reaching the end of the list of recipients. To avoid this issue; iterate over pages until a 404 is retrieved.
The Contacts API helps you manage your Marketing Campaigns recipients.
GET /contactdb/recipients¶ ↑
var request = sg.emptyRequest() request.queryParams["page"] = '1' request.queryParams["page_size"] = '1' request.method = 'GET' request.path = '/v3/contactdb/recipients' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Delete Recipient¶ ↑
This endpoint allows you to deletes one or more recipients.
The body of an API call to this endpoint must include an array of recipient IDs of the recipients you want to delete.
The contactdb is a database of your contacts for SendGrid Marketing Campaigns.
DELETE /contactdb/recipients¶ ↑
var request = sg.emptyRequest() request.body = [ "recipient_id1", "recipient_id2" ]; request.method = 'DELETE' request.path = '/v3/contactdb/recipients' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve the count of billable recipients¶ ↑
This endpoint allows you to retrieve the number of Marketing Campaigns recipients that you will be billed for.
You are billed for marketing campaigns based on the highest number of recipients you have had in your account at one time. This endpoint will allow you to know the current billable count value.
The Contacts API helps you manage your Marketing Campaigns recipients.
GET /contactdb/recipients/billable_count¶ ↑
var request = sg.emptyRequest() request.method = 'GET' request.path = '/v3/contactdb/recipients/billable_count' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve a Count of Recipients¶ ↑
This endpoint allows you to retrieve the total number of Marketing Campaigns recipients.
The contactdb is a database of your contacts for SendGrid Marketing Campaigns.
GET /contactdb/recipients/count¶ ↑
var request = sg.emptyRequest() request.method = 'GET' request.path = '/v3/contactdb/recipients/count' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve recipients matching search criteria¶ ↑
This endpoint allows you to perform a search on all of your Marketing Campaigns recipients.
field_name:
-
is a variable that is substituted for your actual custom field name from your recipient.
-
Text fields must be url-encoded. Date fields are searchable only by unix timestamp (e.g. 2/2/2015 becomes<PHONE_NUMBER>)
-
If field_name is a 'reserved' date field, such as created_at or updated_at, the system will internally convert your epoch time to a date range encompassing the entire day. For example, an epoch time of<PHONE_NUMBER> converts to Mon, 02 Feb 2015 00:06:40 GMT, but internally the system will search from Mon, 02 Feb 2015 00:00:00 GMT through Mon, 02 Feb 2015 23:59:59 GMT.
The contactdb is a database of your contacts for SendGrid Marketing Campaigns.
GET /contactdb/recipients/search¶ ↑
var request = sg.emptyRequest() request.queryParams["%7Bfield_name%7D"] = 'test_string' request.queryParams["{field_name}"] = 'test_string' request.method = 'GET' request.path = '/v3/contactdb/recipients/search' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve a single recipient¶ ↑
This endpoint allows you to retrieve a single recipient by ID from your contact database.
The Contacts API helps you manage your Marketing Campaigns recipients.
GET /contactdb/recipients/{recipient_id}¶ ↑
var request = sg.emptyRequest() request.method = 'GET' request.path = '/v3/contactdb/recipients/{recipient_id}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Delete a Recipient¶ ↑
This endpoint allows you to delete a single recipient with the given ID from your contact database.
The Contacts API helps you manage your Marketing Campaigns recipients.
DELETE /contactdb/recipients/{recipient_id}¶ ↑
var request = sg.emptyRequest() request.method = 'DELETE' request.path = '/v3/contactdb/recipients/{recipient_id}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve the lists that a recipient is on¶ ↑
This endpoint allows you to retrieve the lists that a given recipient belongs to.
Each recipient can be on many lists. This endpoint gives you all of the lists that any one recipient has been added to.
The Contacts API helps you manage your Marketing Campaigns recipients.
GET /contactdb/recipients/{recipient_id}/lists¶ ↑
var request = sg.emptyRequest() request.method = 'GET' request.path = '/v3/contactdb/recipients/{recipient_id}/lists' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve reserved fields¶ ↑
This endpoint allows you to list all fields that are reserved and can't be used for custom field names.
The contactdb is a database of your contacts for SendGrid Marketing Campaigns.
GET /contactdb/reserved_fields¶ ↑
var request = sg.emptyRequest() request.method = 'GET' request.path = '/v3/contactdb/reserved_fields' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Create a Segment¶ ↑
This endpoint allows you to create a segment.
All recipients in your contactdb will be added or removed automatically depending on whether they match the criteria for this segment.
List Id:
-
Send this to segment from an existing list
-
Don't send this in order to segment from your entire contactdb.
Valid operators for create and update depend on the type of the field you are segmenting:
-
Dates: “eq”, “ne”, “lt” (before), “gt” (after)
-
Text: “contains”, “eq” (is - matches the full field), “ne” (is not - matches any field where the entire field is not the condition value)
-
Numbers: “eq”, “lt”, “gt”
-
Email Clicks and Opens: “eq” (opened), “ne” (not opened)
Segment conditions using “eq” or “ne” for email clicks and opens should provide a “field” of either clicks.campaign_identifier or opens.campaign_identifier. The condition value should be a string containing the id of a completed campaign.
Segments may contain multiple condtions, joined by an “and” or “or” in the “and_or” field. The first condition in the conditions list must have an empty “and_or”, and subsequent conditions must all specify an “and_or”.
The Contacts API helps you manage your Marketing Campaigns recipients.
For more information about segments in Marketing Campaigns, please see our User Guide.
POST /contactdb/segments¶ ↑
var request = sg.emptyRequest() request.body = { "conditions": [ { "and_or": "", "field": "last_name", "operator": "eq", "value": "Miller" }, { "and_or": "and", "field": "last_clicked", "operator": "gt", "value": "01/02/2015" }, { "and_or": "or", "field": "clicks.campaign_identifier", "operator": "eq", "value": "513" } ], "list_id": 4, "name": "Last Name Miller" }; request.method = 'POST' request.path = '/v3/contactdb/segments' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve all segments¶ ↑
This endpoint allows you to retrieve all of your segments.
The Contacts API helps you manage your Marketing Campaigns recipients.
For more information about segments in Marketing Campaigns, please see our User Guide.
GET /contactdb/segments¶ ↑
var request = sg.emptyRequest() request.method = 'GET' request.path = '/v3/contactdb/segments' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Update a segment¶ ↑
This endpoint allows you to update a segment.
The Contacts API helps you manage your Marketing Campaigns recipients.
For more information about segments in Marketing Campaigns, please see our User Guide.
PATCH /contactdb/segments/{segment_id}¶ ↑
var request = sg.emptyRequest() request.body = { "conditions": [ { "and_or": "", "field": "last_name", "operator": "eq", "value": "Miller" } ], "list_id": 5, "name": "The Millers" }; request.queryParams["segment_id"] = 'test_string' request.method = 'PATCH' request.path = '/v3/contactdb/segments/{segment_id}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve a segment¶ ↑
This endpoint allows you to retrieve a single segment with the given ID.
The Contacts API helps you manage your Marketing Campaigns recipients.
For more information about segments in Marketing Campaigns, please see our User Guide.
GET /contactdb/segments/{segment_id}¶ ↑
var request = sg.emptyRequest() request.queryParams["segment_id"] = '1' request.method = 'GET' request.path = '/v3/contactdb/segments/{segment_id}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Delete a segment¶ ↑
This endpoint allows you to delete a segment from your recipients database.
You also have the option to delete all the contacts from your Marketing Campaigns recipient database who were in this segment.
The Contacts API helps you manage your Marketing Campaigns recipients.
For more information about segments in Marketing Campaigns, please see our User Guide.
DELETE /contactdb/segments/{segment_id}¶ ↑
var request = sg.emptyRequest() request.queryParams["delete_contacts"] = 'true' request.method = 'DELETE' request.path = '/v3/contactdb/segments/{segment_id}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve recipients on a segment¶ ↑
This endpoint allows you to retrieve all of the recipients in a segment with the given ID.
The Contacts API helps you manage your Marketing Campaigns recipients.
For more information about segments in Marketing Campaigns, please see our User Guide.
GET /contactdb/segments/{segment_id}/recipients¶ ↑
var request = sg.emptyRequest() request.queryParams["page"] = '1' request.queryParams["page_size"] = '1' request.method = 'GET' request.path = '/v3/contactdb/segments/{segment_id}/recipients' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
DEVICES¶ ↑
Retrieve email statistics by device type.¶ ↑
This endpoint allows you to retrieve your email statistics segmented by the device type.
We only store up to 7 days of email activity in our database. By default, 500 items will be returned per request via the Advanced Stats API endpoints.
Available Device Types¶ ↑
| Device | Description | Example | |—|—|—| | Desktop | Email software on desktop computer. | I.E., Outlook, Sparrow, or Apple Mail. | | Webmail | A web-based email client. | I.E., Yahoo, Google, AOL, or Outlook.com. | | Phone | A smart phone. | iPhone, Android, Blackberry, etc. | Tablet | A tablet computer. | iPad, android based tablet, etc. | | Other | An unrecognized device. |
Advanced Stats provide a more in-depth view of your email statistics and the actions taken by your recipients. You can segment these statistics by geographic location, device type, client type, browser, and mailbox provider. For more information about statistics, please see our User Guide.
GET /devices/stats¶ ↑
var request = sg.emptyRequest() request.queryParams["aggregated_by"] = 'day' request.queryParams["limit"] = '1' request.queryParams["start_date"] = '2016-01-01' request.queryParams["end_date"] = '2016-04-01' request.queryParams["offset"] = '1' request.method = 'GET' request.path = '/v3/devices/stats' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
GEO¶ ↑
Retrieve email statistics by country and state/province.¶ ↑
This endpoint allows you to retrieve your email statistics segmented by country and state/province.
We only store up to 7 days of email activity in our database. By default, 500 items will be returned per request via the Advanced Stats API endpoints.
Advanced Stats provide a more in-depth view of your email statistics and the actions taken by your recipients. You can segment these statistics by geographic location, device type, client type, browser, and mailbox provider. For more information about statistics, please see our User Guide.
GET /geo/stats¶ ↑
var request = sg.emptyRequest() request.queryParams["end_date"] = '2016-04-01' request.queryParams["country"] = 'US' request.queryParams["aggregated_by"] = 'day' request.queryParams["limit"] = '1' request.queryParams["offset"] = '1' request.queryParams["start_date"] = '2016-01-01' request.method = 'GET' request.path = '/v3/geo/stats' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
IPS¶ ↑
Retrieve all IP addresses¶ ↑
This endpoint allows you to retrieve a list of all assigned and unassigned IPs.
Response includes warm up status, pools, assigned subusers, and whitelabel info. The start_date field corresponds to when warmup started for that IP.
A single IP address or a range of IP addresses may be dedicated to an account in order to send email for multiple domains. The reputation of this IP is based on the aggregate performance of all the senders who use it.
GET /ips¶ ↑
var request = sg.emptyRequest() request.queryParams["subuser"] = 'test_string' request.queryParams["ip"] = 'test_string' request.queryParams["limit"] = '1' request.queryParams["exclude_whitelabels"] = 'true' request.queryParams["offset"] = '1' request.method = 'GET' request.path = '/v3/ips' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve all assigned IPs¶ ↑
This endpoint allows you to retrieve only assigned IP addresses.
A single IP address or a range of IP addresses may be dedicated to an account in order to send email for multiple domains. The reputation of this IP is based on the aggregate performance of all the senders who use it.
GET /ips/assigned¶ ↑
var request = sg.emptyRequest() request.method = 'GET' request.path = '/v3/ips/assigned' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Create an IP pool.¶ ↑
This endpoint allows you to create an IP pool.
Each user can create up to 10 different IP pools.
IP Pools allow you to group your dedicated SendGrid IP addresses together. For example, you could create separate pools for your transactional and marketing email. When sending marketing emails, specify that you want to use the marketing IP pool. This allows you to maintain separate reputations for your different email traffic.
IP pools can only be used with whitelabeled IP addresses.
If an IP pool is NOT specified for an email, it will use any IP available, including ones in pools.
POST /ips/pools¶ ↑
var request = sg.emptyRequest() request.body = { "name": "marketing" }; request.method = 'POST' request.path = '/v3/ips/pools' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve all IP pools.¶ ↑
This endpoint allows you to retreive all of your IP pools.
IP Pools allow you to group your dedicated SendGrid IP addresses together. For example, you could create separate pools for your transactional and marketing email. When sending marketing emails, specify that you want to use the marketing IP pool. This allows you to maintain separate reputations for your different email traffic.
IP pools can only be used with whitelabeled IP addresses.
If an IP pool is NOT specified for an email, it will use any IP available, including ones in pools.
GET /ips/pools¶ ↑
var request = sg.emptyRequest() request.method = 'GET' request.path = '/v3/ips/pools' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Update an IP pools name.¶ ↑
This endpoint allows you to update the name of an IP pool.
IP Pools allow you to group your dedicated SendGrid IP addresses together. For example, you could create separate pools for your transactional and marketing email. When sending marketing emails, specify that you want to use the marketing IP pool. This allows you to maintain separate reputations for your different email traffic.
IP pools can only be used with whitelabeled IP addresses.
If an IP pool is NOT specified for an email, it will use any IP available, including ones in pools.
PUT /ips/pools/{pool_name}¶ ↑
var request = sg.emptyRequest() request.body = { "name": "new_pool_name" }; request.method = 'PUT' request.path = '/v3/ips/pools/{pool_name}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve all IPs in a specified pool.¶ ↑
This endpoint allows you to list all of the IP addresses that are in a specific IP pool.
IP Pools allow you to group your dedicated SendGrid IP addresses together. For example, you could create separate pools for your transactional and marketing email. When sending marketing emails, specify that you want to use the marketing IP pool. This allows you to maintain separate reputations for your different email traffic.
IP pools can only be used with whitelabeled IP addresses.
If an IP pool is NOT specified for an email, it will use any IP available, including ones in pools.
GET /ips/pools/{pool_name}¶ ↑
var request = sg.emptyRequest() request.method = 'GET' request.path = '/v3/ips/pools/{pool_name}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Delete an IP pool.¶ ↑
This endpoint allows you to delete an IP pool.
IP Pools allow you to group your dedicated SendGrid IP addresses together. For example, you could create separate pools for your transactional and marketing email. When sending marketing emails, specify that you want to use the marketing IP pool. This allows you to maintain separate reputations for your different email traffic.
IP pools can only be used with whitelabeled IP addresses.
If an IP pool is NOT specified for an email, it will use any IP available, including ones in pools.
DELETE /ips/pools/{pool_name}¶ ↑
var request = sg.emptyRequest() request.method = 'DELETE' request.path = '/v3/ips/pools/{pool_name}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Add an IP address to a pool¶ ↑
This endpoint allows you to add an IP address to an IP pool.
You can add the same IP address to multiple pools. It may take up to 60 seconds for your IP address to be added to a pool after your request is made.
A single IP address or a range of IP addresses may be dedicated to an account in order to send email for multiple domains. The reputation of this IP is based on the aggregate performance of all the senders who use it.
POST /ips/pools/{pool_name}/ips¶ ↑
var request = sg.emptyRequest() request.body = { "ip": "<IP_ADDRESS>" }; request.method = 'POST' request.path = '/v3/ips/pools/{pool_name}/ips' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Remove an IP address from a pool.¶ ↑
This endpoint allows you to remove an IP address from an IP pool.
The same IP address can be added to multiple IP pools.
A single IP address or a range of IP addresses may be dedicated to an account in order to send email for multiple domains. The reputation of this IP is based on the aggregate performance of all the senders who use it.
DELETE /ips/pools/{pool_name}/ips/{ip}¶ ↑
var request = sg.emptyRequest() request.method = 'DELETE' request.path = '/v3/ips/pools/{pool_name}/ips/{ip}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Add an IP to warmup¶ ↑
This endpoint allows you to enter an IP address into warmup mode.
SendGrid can automatically warm up dedicated IP addresses by limiting the amount of mail that can be sent through them per hour, with the limit determined by how long the IP address has been in warmup. See the warmup schedule for more details on how SendGrid limits your email traffic for IPs in warmup.
For more general information about warming up IPs, please see our Classroom.
POST /ips/warmup¶ ↑
var request = sg.emptyRequest() request.body = { "ip": "<IP_ADDRESS>" }; request.method = 'POST' request.path = '/v3/ips/warmup' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve all IPs currently in warmup¶ ↑
This endpoint allows you to retrieve all of your IP addresses that are currently warming up.
SendGrid can automatically warm up dedicated IP addresses by limiting the amount of mail that can be sent through them per hour, with the limit determined by how long the IP address has been in warmup. See the warmup schedule for more details on how SendGrid limits your email traffic for IPs in warmup.
For more general information about warming up IPs, please see our Classroom.
GET /ips/warmup¶ ↑
var request = sg.emptyRequest() request.method = 'GET' request.path = '/v3/ips/warmup' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve warmup status for a specific IP address¶ ↑
This endpoint allows you to retrieve the warmup status for a specific IP address.
SendGrid can automatically warm up dedicated IP addresses by limiting the amount of mail that can be sent through them per hour, with the limit determined by how long the IP address has been in warmup. See the warmup schedule for more details on how SendGrid limits your email traffic for IPs in warmup.
For more general information about warming up IPs, please see our Classroom.
GET /ips/warmup/{ip_address}¶ ↑
var request = sg.emptyRequest() request.method = 'GET' request.path = '/v3/ips/warmup/{ip_address}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Remove an IP from warmup¶ ↑
This endpoint allows you to remove an IP address from warmup mode.
SendGrid can automatically warm up dedicated IP addresses by limiting the amount of mail that can be sent through them per hour, with the limit determined by how long the IP address has been in warmup. See the warmup schedule for more details on how SendGrid limits your email traffic for IPs in warmup.
For more general information about warming up IPs, please see our Classroom.
DELETE /ips/warmup/{ip_address}¶ ↑
var request = sg.emptyRequest() request.method = 'DELETE' request.path = '/v3/ips/warmup/{ip_address}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve all IP pools an IP address belongs to¶ ↑
This endpoint allows you to see which IP pools a particular IP address has been added to.
The same IP address can be added to multiple IP pools.
A single IP address or a range of IP addresses may be dedicated to an account in order to send email for multiple domains. The reputation of this IP is based on the aggregate performance of all the senders who use it.
GET /ips/{ip_address}¶ ↑
var request = sg.emptyRequest() request.method = 'GET' request.path = '/v3/ips/{ip_address}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
MAIL¶ ↑
Create a batch ID¶ ↑
This endpoint allows you to generate a new batch ID. This batch ID can be associated with scheduled sends via the mail/send endpoint.
If you set the SMTPAPI header batch_id
, it allows you to then
associate multiple scheduled mail/send requests together with the same ID.
Then at anytime up to 10 minutes before the schedule date, you can cancel
all of the mail/send requests that have this batch ID by calling the Cancel
Scheduled Send endpoint.
More Information:
POST /mail/batch¶ ↑
var request = sg.emptyRequest() request.method = 'POST' request.path = '/v3/mail/batch' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Validate batch ID¶ ↑
This endpoint allows you to validate a batch ID.
If you set the SMTPAPI header batch_id
, it allows you to then
associate multiple scheduled mail/send requests together with the same ID.
Then at anytime up to 10 minutes before the schedule date, you can cancel
all of the mail/send requests that have this batch ID by calling the Cancel
Scheduled Send endpoint.
More Information:
GET /mail/batch/{batch_id}¶ ↑
var request = sg.emptyRequest() request.method = 'GET' request.path = '/v3/mail/batch/{batch_id}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
v3 Mail Send¶ ↑
This endpoint allows you to send email over SendGrids v3 Web API, the most recent version of our API. If you are looking for documentation about the v2 Mail Send endpoint, please see our v2 API Reference.
-
Top level parameters are referred to as “global”.
-
Individual fields within the personalizations array will override any other global, or message level, parameters that are defined outside of personalizations.
For an overview of the v3 Mail Send endpoint, please visit our v3 API Reference
For more detailed information about how to use the v3 Mail Send endpoint, please visit our Classroom.
POST /mail/send¶ ↑
// This endpoint has a helper, check it out here.
var request = sg.emptyRequest() request.body = { "asm": { "group_id": 1, "groups_to_display": [ 1, 2, 3 ] }, "attachments": [ { "content": "[BASE64 encoded content block here]", "content_id": "ii_139db99fdb5c3704", "disposition": "inline", "filename": "file1.jpg", "name": "file1", "type": "jpg" } ], "batch_id": "[YOUR BATCH ID GOES HERE]", "categories": [ "category1", "category2" ], "content": [ { "type": "text/html", "value": "<html><p>Hello, world!</p><img src=[CID GOES HERE]></img></html>" } ], "custom_args": { "New Argument 1": "New Value 1", "activationAttempt": "1", "customerAccountNumber": "[CUSTOMER ACCOUNT NUMBER GOES HERE]" }, "from": { "email"<EMAIL_ADDRESS>"name": "Sam Smith" }, "headers": {}, "ip_pool_name": "[YOUR POOL NAME GOES HERE]", "mail_settings": { "bcc": { "email"<EMAIL_ADDRESS>"enable": true }, "bypass_list_management": { "enable": true }, "footer": { "enable": true, "html": "<p>Thanks</br>The SendGrid Team</p>", "text": "Thanks,/n The SendGrid Team" }, "sandbox_mode": { "enable": false }, "spam_check": { "enable": true, "post_to_url": "http://example.com/compliance", "threshold": 3 } }, "personalizations": [ { "bcc": [ { "email"<EMAIL_ADDRESS>"name": "Sam Doe" } ], "cc": [ { "email"<EMAIL_ADDRESS>"name": "Jane Doe" } ], "custom_args": { "New Argument 1": "New Value 1", "activationAttempt": "1", "customerAccountNumber": "[CUSTOMER ACCOUNT NUMBER GOES HERE]" }, "headers": { "X-Accept-Language": "en", "X-Mailer": "MyApp" }, "send_at":<PHONE_NUMBER>, "subject": "Hello, World!", "substitutions": { "id": "substitutions", "type": "object" }, "to": [ { "email"<EMAIL_ADDRESS>"name": "John Doe" } ] } ], "reply_to": { "email"<EMAIL_ADDRESS>"name": "Sam Smith" }, "sections": { "section": { ":sectionName1": "section 1 text", ":sectionName2": "section 2 text" } }, "send_at":<PHONE_NUMBER>, "subject": "Hello, World!", "template_id": "[YOUR TEMPLATE ID GOES HERE]", "tracking_settings": { "click_tracking": { "enable": true, "enable_text": true }, "ganalytics": { "enable": true, "utm_campaign": "[NAME OF YOUR REFERRER SOURCE]", "utm_content": "[USE THIS SPACE TO DIFFERENTIATE YOUR EMAIL FROM ADS]", "utm_medium": "[NAME OF YOUR MARKETING MEDIUM e.g. email]", "utm_name": "[NAME OF YOUR CAMPAIGN]", "utm_term": "[IDENTIFY PAID KEYWORDS HERE]" }, "open_tracking": { "enable": true, "substitution_tag": "%opentrack" }, "subscription_tracking": { "enable": true, "html": "If you would like to unsubscribe and stop receiving these emails <% clickhere %>.", "substitution_tag": "<%click here%>", "text": "If you would like to unsubscribe and stop receiveing these emails <% click here %>." } } }; request.method = 'POST' request.path = '/v3/mail/send' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
MAIL SETTINGS¶ ↑
Retrieve all mail settings¶ ↑
This endpoint allows you to retrieve a list of all mail settings.
Mail settings allow you to tell SendGrid specific things to do to every email that you send to your recipients over SendGrids Web API or SMTP Relay.
GET /mail_settings¶ ↑
var request = sg.emptyRequest() request.queryParams["limit"] = '1' request.queryParams["offset"] = '1' request.method = 'GET' request.path = '/v3/mail_settings' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Update address whitelist mail settings¶ ↑
This endpoint allows you to update your current email address whitelist settings.
The address whitelist setting whitelists a specified email address or domain for which mail should never be suppressed. For example, you own the domain example.com, and one or more of your recipients use<EMAIL_ADDRESS>addresses, by placing example.com in the address whitelist setting, all bounces, blocks, and unsubscribes logged for that domain will be ignored and sent as if under normal sending conditions.
Mail settings allow you to tell SendGrid specific things to do to every email that you send to your recipients over SendGrids Web API or SMTP Relay.
PATCH /mail_settings/address_whitelist¶ ↑
var request = sg.emptyRequest() request.body = { "enabled": true, "list": [<EMAIL_ADDRESS>"example.com" ] }; request.method = 'PATCH' request.path = '/v3/mail_settings/address_whitelist' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve address whitelist mail settings¶ ↑
This endpoint allows you to retrieve your current email address whitelist settings.
The address whitelist setting whitelists a specified email address or domain for which mail should never be suppressed. For example, you own the domain example.com, and one or more of your recipients use<EMAIL_ADDRESS>addresses, by placing example.com in the address whitelist setting, all bounces, blocks, and unsubscribes logged for that domain will be ignored and sent as if under normal sending conditions.
Mail settings allow you to tell SendGrid specific things to do to every email that you send to your recipients over SendGrids Web API or SMTP Relay.
GET /mail_settings/address_whitelist¶ ↑
var request = sg.emptyRequest() request.method = 'GET' request.path = '/v3/mail_settings/address_whitelist' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Update BCC mail settings¶ ↑
This endpoint allows you to update your current BCC mail settings.
When the BCC mail setting is enabled, SendGrid will automatically send a blind carbon copy (BCC) to an address for every email sent without adding that address to the header. Please note that only one email address may be entered in this field, if you wish to distribute BCCs to multiple addresses you will need to create a distribution group or use forwarding rules.
Mail settings allow you to tell SendGrid specific things to do to every email that you send to your recipients over SendGrids Web API or SMTP Relay.
PATCH /mail_settings/bcc¶ ↑
var request = sg.emptyRequest() request.body = { "email"<EMAIL_ADDRESS>"enabled": false }; request.method = 'PATCH' request.path = '/v3/mail_settings/bcc' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve all BCC mail settings¶ ↑
This endpoint allows you to retrieve your current BCC mail settings.
When the BCC mail setting is enabled, SendGrid will automatically send a blind carbon copy (BCC) to an address for every email sent without adding that address to the header. Please note that only one email address may be entered in this field, if you wish to distribute BCCs to multiple addresses you will need to create a distribution group or use forwarding rules.
Mail settings allow you to tell SendGrid specific things to do to every email that you send to your recipients over SendGrids Web API or SMTP Relay.
GET /mail_settings/bcc¶ ↑
var request = sg.emptyRequest() request.method = 'GET' request.path = '/v3/mail_settings/bcc' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Update bounce purge mail settings¶ ↑
This endpoint allows you to update your current bounce purge settings.
This setting allows you to set a schedule for SendGrid to automatically delete contacts from your soft and hard bounce suppression lists.
Mail settings allow you to tell SendGrid specific things to do to every email that you send to your recipients over SendGrids Web API or SMTP Relay.
PATCH /mail_settings/bounce_purge¶ ↑
var request = sg.emptyRequest() request.body = { "enabled": true, "hard_bounces": 5, "soft_bounces": 5 }; request.method = 'PATCH' request.path = '/v3/mail_settings/bounce_purge' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve bounce purge mail settings¶ ↑
This endpoint allows you to retrieve your current bounce purge settings.
This setting allows you to set a schedule for SendGrid to automatically delete contacts from your soft and hard bounce suppression lists.
Mail settings allow you to tell SendGrid specific things to do to every email that you send to your recipients over SendGrids Web API or SMTP Relay.
GET /mail_settings/bounce_purge¶ ↑
var request = sg.emptyRequest() request.method = 'GET' request.path = '/v3/mail_settings/bounce_purge' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Update footer mail settings¶ ↑
This endpoint allows you to update your current Footer mail settings.
The footer setting will insert a custom footer at the bottom of the text and HTML bodies. Use the embedded HTML editor and plain text entry fields to create the content of the footers to be inserted into your emails.
Mail settings allow you to tell SendGrid specific things to do to every email that you send to your recipients over SendGrids Web API or SMTP Relay.
PATCH /mail_settings/footer¶ ↑
var request = sg.emptyRequest() request.body = { "enabled": true, "html_content": "...", "plain_content": "..." }; request.method = 'PATCH' request.path = '/v3/mail_settings/footer' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve footer mail settings¶ ↑
This endpoint allows you to retrieve your current Footer mail settings.
The footer setting will insert a custom footer at the bottom of the text and HTML bodies. Use the embedded HTML editor and plain text entry fields to create the content of the footers to be inserted into your emails.
Mail settings allow you to tell SendGrid specific things to do to every email that you send to your recipients over SendGrids Web API or SMTP Relay.
GET /mail_settings/footer¶ ↑
var request = sg.emptyRequest() request.method = 'GET' request.path = '/v3/mail_settings/footer' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Update forward bounce mail settings¶ ↑
This endpoint allows you to update your current bounce forwarding mail settings.
Activating this setting allows you to specify an email address to which bounce reports are forwarded.
Mail settings allow you to tell SendGrid specific things to do to every email that you send to your recipients over SendGrids Web API or SMTP Relay.
PATCH /mail_settings/forward_bounce¶ ↑
var request = sg.emptyRequest() request.body = { "email"<EMAIL_ADDRESS>"enabled": true }; request.method = 'PATCH' request.path = '/v3/mail_settings/forward_bounce' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve forward bounce mail settings¶ ↑
This endpoint allows you to retrieve your current bounce forwarding mail settings.
Activating this setting allows you to specify an email address to which bounce reports are forwarded.
Mail settings allow you to tell SendGrid specific things to do to every email that you send to your recipients over SendGrids Web API or SMTP Relay.
GET /mail_settings/forward_bounce¶ ↑
var request = sg.emptyRequest() request.method = 'GET' request.path = '/v3/mail_settings/forward_bounce' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Update forward spam mail settings¶ ↑
This endpoint allows you to update your current Forward Spam mail settings.
Enabling the forward spam setting allows you to specify an email address to which spam reports will be forwarded.
Mail settings allow you to tell SendGrid specific things to do to every email that you send to your recipients over SendGrids Web API or SMTP Relay.
PATCH /mail_settings/forward_spam¶ ↑
var request = sg.emptyRequest() request.body = { "email": "", "enabled": false }; request.method = 'PATCH' request.path = '/v3/mail_settings/forward_spam' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve forward spam mail settings¶ ↑
This endpoint allows you to retrieve your current Forward Spam mail settings.
Enabling the forward spam setting allows you to specify an email address to which spam reports will be forwarded.
Mail settings allow you to tell SendGrid specific things to do to every email that you send to your recipients over SendGrids Web API or SMTP Relay.
GET /mail_settings/forward_spam¶ ↑
var request = sg.emptyRequest() request.method = 'GET' request.path = '/v3/mail_settings/forward_spam' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Update plain content mail settings¶ ↑
This endpoint allows you to update your current Plain Content mail settings.
The plain content setting will automatically convert any plain text emails that you send to HTML before sending.
Mail settings allow you to tell SendGrid specific things to do to every email that you send to your recipients over SendGrids Web API or SMTP Relay.
PATCH /mail_settings/plain_content¶ ↑
var request = sg.emptyRequest() request.body = { "enabled": false }; request.method = 'PATCH' request.path = '/v3/mail_settings/plain_content' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve plain content mail settings¶ ↑
This endpoint allows you to retrieve your current Plain Content mail settings.
The plain content setting will automatically convert any plain text emails that you send to HTML before sending.
Mail settings allow you to tell SendGrid specific things to do to every email that you send to your recipients over SendGrids Web API or SMTP Relay.
GET /mail_settings/plain_content¶ ↑
var request = sg.emptyRequest() request.method = 'GET' request.path = '/v3/mail_settings/plain_content' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Update spam check mail settings¶ ↑
This endpoint allows you to update your current spam checker mail settings.

Mail settings allow you to tell SendGrid specific things to do to every email that you send to your recipients over SendGrids Web API or SMTP Relay.
PATCH /mail_settings/spam_check¶ ↑
var request = sg.emptyRequest() request.body = { "enabled": true, "max_score": 5, "url": "url" }; request.method = 'PATCH' request.path = '/v3/mail_settings/spam_check' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve spam check mail settings¶ ↑
This endpoint allows you to retrieve your current Spam Checker mail settings.

Mail settings allow you to tell SendGrid specific things to do to every email that you send to your recipients over SendGrids Web API or SMTP Relay.
GET /mail_settings/spam_check¶ ↑
var request = sg.emptyRequest() request.method = 'GET' request.path = '/v3/mail_settings/spam_check' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Update template mail settings¶ ↑
This endpoint allows you to update your current legacy email template settings.
This setting refers to our original email templates. We currently support more fully featured transactional templates.
The legacy email template setting wraps an HTML template around your email content. This can be useful for sending out marketing email and/or other HTML formatted messages.
Mail settings allow you to tell SendGrid specific things to do to every email that you send to your recipients over SendGrids Web API or SMTP Relay.
PATCH /mail_settings/template¶ ↑
var request = sg.emptyRequest() request.body = { "enabled": true, "html_content": "<% body %>" }; request.method = 'PATCH' request.path = '/v3/mail_settings/template' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve legacy template mail settings¶ ↑
This endpoint allows you to retrieve your current legacy email template settings.
This setting refers to our original email templates. We currently support more fully featured transactional templates.
The legacy email template setting wraps an HTML template around your email content. This can be useful for sending out marketing email and/or other HTML formatted messages.
Mail settings allow you to tell SendGrid specific things to do to every email that you send to your recipients over SendGrids Web API or SMTP Relay.
GET /mail_settings/template¶ ↑
var request = sg.emptyRequest() request.method = 'GET' request.path = '/v3/mail_settings/template' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
MAILBOX PROVIDERS¶ ↑
Retrieve email statistics by mailbox provider.¶ ↑
This endpoint allows you to retrieve your email statistics segmented by recipient mailbox provider.
We only store up to 7 days of email activity in our database. By default, 500 items will be returned per request via the Advanced Stats API endpoints.
Advanced Stats provide a more in-depth view of your email statistics and the actions taken by your recipients. You can segment these statistics by geographic location, device type, client type, browser, and mailbox provider. For more information about statistics, please see our User Guide.
GET /mailbox_providers/stats¶ ↑
var request = sg.emptyRequest() request.queryParams["end_date"] = '2016-04-01' request.queryParams["mailbox_providers"] = 'test_string' request.queryParams["aggregated_by"] = 'day' request.queryParams["limit"] = '1' request.queryParams["offset"] = '1' request.queryParams["start_date"] = '2016-01-01' request.method = 'GET' request.path = '/v3/mailbox_providers/stats' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
PARTNER SETTINGS¶ ↑
Returns a list of all partner settings.¶ ↑
This endpoint allows you to retrieve a list of all partner settings that you can enable.
Our partner settings allow you to integrate your SendGrid account with our partners to increase your SendGrid experience and functionality. For more information about our partners, and how you can begin integrating with them, please visit our User Guide.
GET /partner_settings¶ ↑
var request = sg.emptyRequest() request.queryParams["limit"] = '1' request.queryParams["offset"] = '1' request.method = 'GET' request.path = '/v3/partner_settings' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Updates New Relic partner settings.¶ ↑
This endpoint allows you to update or change your New Relic partner settings.
Our partner settings allow you to integrate your SendGrid account with our partners to increase your SendGrid experience and functionality. For more information about our partners, and how you can begin integrating with them, please visit our User Guide.
By integrating with New Relic, you can send your SendGrid email statistics to your New Relic Dashboard. If you enable this setting, your stats will be sent to New Relic every 5 minutes. You will need your New Relic License Key to enable this setting. For more information, please see our Classroom.
PATCH /partner_settings/new_relic¶ ↑
var request = sg.emptyRequest() request.body = { "enable_subuser_statistics": true, "enabled": true, "license_key": "" }; request.method = 'PATCH' request.path = '/v3/partner_settings/new_relic' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Returns all New Relic partner settings.¶ ↑
This endpoint allows you to retrieve your current New Relic partner settings.
Our partner settings allow you to integrate your SendGrid account with our partners to increase your SendGrid experience and functionality. For more information about our partners, and how you can begin integrating with them, please visit our User Guide.
By integrating with New Relic, you can send your SendGrid email statistics to your New Relic Dashboard. If you enable this setting, your stats will be sent to New Relic every 5 minutes. You will need your New Relic License Key to enable this setting. For more information, please see our Classroom.
GET /partner_settings/new_relic¶ ↑
var request = sg.emptyRequest() request.method = 'GET' request.path = '/v3/partner_settings/new_relic' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
SCOPES¶ ↑
Retrieve a list of scopes for which this user has access.¶ ↑
This endpoint returns a list of all scopes that this user has access to.
API Keys can be used to authenticate the use of SendGrids v3 Web API, or the Mail API Endpoint. API Keys may be assigned certain permissions, or scopes, that limit which API endpoints they are able to access. For a more detailed explanation of how you can use API Key permissios, please visit our User Guide or Classroom.
GET /scopes¶ ↑
var request = sg.emptyRequest() request.method = 'GET' request.path = '/v3/scopes' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
STATS¶ ↑
Retrieve global email statistics¶ ↑
This endpoint allows you to retrieve all of your global email statistics between a given date range.
Parent accounts will see aggregated stats for their account and all subuser accounts. Subuser accounts will only see their own stats.
GET /stats¶ ↑
var request = sg.emptyRequest() request.queryParams["aggregated_by"] = 'day' request.queryParams["limit"] = '1' request.queryParams["start_date"] = '2016-01-01' request.queryParams["end_date"] = '2016-04-01' request.queryParams["offset"] = '1' request.method = 'GET' request.path = '/v3/stats' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
SUBUSERS¶ ↑
Create Subuser¶ ↑
This endpoint allows you to retrieve a list of all of your subusers. You can choose to retrieve specific subusers as well as limit the results that come back from the API.
For more information about Subusers:
POST /subusers¶ ↑
var request = sg.emptyRequest() request.body = { "email"<EMAIL_ADDRESS>"ips": [ "<IP_ADDRESS>", "<IP_ADDRESS>" ], "password": "johns_password", "username"<EMAIL_ADDRESS>}; request.method = 'POST' request.path = '/v3/subusers' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
List all Subusers¶ ↑
This endpoint allows you to retrieve a list of all of your subusers. You can choose to retrieve specific subusers as well as limit the results that come back from the API.
For more information about Subusers:
GET /subusers¶ ↑
var request = sg.emptyRequest() request.queryParams["username"] = 'test_string' request.queryParams["limit"] = '1' request.queryParams["offset"] = '1' request.method = 'GET' request.path = '/v3/subusers' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve Subuser Reputations¶ ↑
Subuser sender reputations give a good idea how well a sender is doing with regards to how recipients and recipient servers react to the mail that is being received. When a bounce, spam report, or other negative action happens on a sent email, it will effect your sender rating.
This endpoint allows you to request the reputations for your subusers.
GET /subusers/reputations¶ ↑
var request = sg.emptyRequest() request.queryParams["usernames"] = 'test_string' request.method = 'GET' request.path = '/v3/subusers/reputations' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve email statistics for your subusers.¶ ↑
This endpoint allows you to retrieve the email statistics for the given subusers.
You may retrieve statistics for up to 10 different subusers by including an additional subusers parameter for each additional subuser.
While you can always view the statistics for all email activity on your account, subuser statistics enable you to view specific segments of your stats. Emails sent, bounces, and spam reports are always tracked for subusers. Unsubscribes, clicks, and opens are tracked if you have enabled the required settings.
For more information, see our User Guide.
GET /subusers/stats¶ ↑
var request = sg.emptyRequest() request.queryParams["end_date"] = '2016-04-01' request.queryParams["aggregated_by"] = 'day' request.queryParams["limit"] = '1' request.queryParams["offset"] = '1' request.queryParams["start_date"] = '2016-01-01' request.queryParams["subusers"] = 'test_string' request.method = 'GET' request.path = '/v3/subusers/stats' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve monthly stats for all subusers¶ ↑
This endpoint allows you to retrieve the monthly email statistics for all subusers over the given date range.
While you can always view the statistics for all email activity on your account, subuser statistics enable you to view specific segments of your stats for your subusers. Emails sent, bounces, and spam reports are always tracked for subusers. Unsubscribes, clicks, and opens are tracked if you have enabled the required settings.
When using the sort_by_metric
to sort your stats by a specific
metric, you can not sort by the following metrics:
bounce_drops
, deferred
,
invalid_emails
, processed
,
spam_report_drops
, spam_reports
, or
unsubscribe_drops
.
For more information, see our User Guide.
GET /subusers/stats/monthly¶ ↑
var request = sg.emptyRequest() request.queryParams["subuser"] = 'test_string' request.queryParams["limit"] = '1' request.queryParams["sort_by_metric"] = 'test_string' request.queryParams["offset"] = '1' request.queryParams["date"] = 'test_string' request.queryParams["sort_by_direction"] = 'asc' request.method = 'GET' request.path = '/v3/subusers/stats/monthly' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve the totals for each email statistic metric for all subusers.¶ ↑
This endpoint allows you to retrieve the total sums of each email statistic metric for all subusers over the given date range.
While you can always view the statistics for all email activity on your account, subuser statistics enable you to view specific segments of your stats. Emails sent, bounces, and spam reports are always tracked for subusers. Unsubscribes, clicks, and opens are tracked if you have enabled the required settings.
For more information, see our User Guide.
GET /subusers/stats/sums¶ ↑
var request = sg.emptyRequest() request.queryParams["end_date"] = '2016-04-01' request.queryParams["aggregated_by"] = 'day' request.queryParams["limit"] = '1' request.queryParams["sort_by_metric"] = 'test_string' request.queryParams["offset"] = '1' request.queryParams["start_date"] = '2016-01-01' request.queryParams["sort_by_direction"] = 'asc' request.method = 'GET' request.path = '/v3/subusers/stats/sums' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Enable/disable a subuser¶ ↑
This endpoint allows you to enable or disable a subuser.
For more information about Subusers:
PATCH /subusers/{subuser_name}¶ ↑
var request = sg.emptyRequest() request.body = { "disabled": false }; request.method = 'PATCH' request.path = '/v3/subusers/{subuser_name}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Delete a subuser¶ ↑
This endpoint allows you to delete a subuser. This is a permanent action, once deleted a subuser cannot be retrieved.
For more information about Subusers:
DELETE /subusers/{subuser_name}¶ ↑
var request = sg.emptyRequest() request.method = 'DELETE' request.path = '/v3/subusers/{subuser_name}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Update IPs assigned to a subuser¶ ↑
Each subuser should be assigned to an IP address, from which all of this subuser's mail will be sent. Often, this is the same IP as the parent account, but each subuser can have their own, or multiple, IP addresses as well.
More information:
PUT /subusers/{subuser_name}/ips¶ ↑
var request = sg.emptyRequest() request.body = [ "<IP_ADDRESS>" ]; request.method = 'PUT' request.path = '/v3/subusers/{subuser_name}/ips' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Update Monitor Settings for a subuser¶ ↑
Subuser monitor settings allow you to receive a sample of an outgoing message by a specific customer at a specific frequency of emails.
PUT /subusers/{subuser_name}/monitor¶ ↑
var request = sg.emptyRequest() request.body = { "email"<EMAIL_ADDRESS>"frequency": 500 }; request.method = 'PUT' request.path = '/v3/subusers/{subuser_name}/monitor' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Create monitor settings¶ ↑
Subuser monitor settings allow you to receive a sample of an outgoing message by a specific customer at a specific frequency of emails.
POST /subusers/{subuser_name}/monitor¶ ↑
var request = sg.emptyRequest() request.body = { "email"<EMAIL_ADDRESS>"frequency": 50000 }; request.method = 'POST' request.path = '/v3/subusers/{subuser_name}/monitor' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve monitor settings for a subuser¶ ↑
Subuser monitor settings allow you to receive a sample of an outgoing message by a specific customer at a specific frequency of emails.
GET /subusers/{subuser_name}/monitor¶ ↑
var request = sg.emptyRequest() request.method = 'GET' request.path = '/v3/subusers/{subuser_name}/monitor' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Delete monitor settings¶ ↑
Subuser monitor settings allow you to receive a sample of an outgoing message by a specific customer at a specific frequency of emails.
DELETE /subusers/{subuser_name}/monitor¶ ↑
var request = sg.emptyRequest() request.method = 'DELETE' request.path = '/v3/subusers/{subuser_name}/monitor' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve the monthly email statistics for a single subuser¶ ↑
This endpoint allows you to retrive the monthly email statistics for a specific subuser.
While you can always view the statistics for all email activity on your account, subuser statistics enable you to view specific segments of your stats for your subusers. Emails sent, bounces, and spam reports are always tracked for subusers. Unsubscribes, clicks, and opens are tracked if you have enabled the required settings.
When using the sort_by_metric
to sort your stats by a specific
metric, you can not sort by the following metrics:
bounce_drops
, deferred
,
invalid_emails
, processed
,
spam_report_drops
, spam_reports
, or
unsubscribe_drops
.
For more information, see our User Guide.
GET /subusers/{subuser_name}/stats/monthly¶ ↑
var request = sg.emptyRequest() request.queryParams["date"] = 'test_string' request.queryParams["sort_by_direction"] = 'asc' request.queryParams["limit"] = '1' request.queryParams["sort_by_metric"] = 'test_string' request.queryParams["offset"] = '1' request.method = 'GET' request.path = '/v3/subusers/{subuser_name}/stats/monthly' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
SUPPRESSION¶ ↑
Retrieve all blocks¶ ↑
This endpoint allows you to retrieve a list of all email addresses that are currently on your blocks list.
Blocks happen when your message was rejected for a reason related to the message, not the recipient address. This can happen when your mail server IP address has been added to a blacklist or blocked by an ISP, or if the message content is flagged by a filter on the receiving server.
For more information, please see our User Guide.
GET /suppression/blocks¶ ↑
var request = sg.emptyRequest() request.queryParams["start_time"] = '1' request.queryParams["limit"] = '1' request.queryParams["end_time"] = '1' request.queryParams["offset"] = '1' request.method = 'GET' request.path = '/v3/suppression/blocks' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Delete blocks¶ ↑
This endpoint allows you to delete all email addresses on your blocks list.
There are two options for deleting blocked emails:
-
You can delete all blocked emails by setting
delete_all
to true in the request body. -
You can delete some blocked emails by specifying the email addresses in an array in the request body.
Blocks happen when your message was rejected for a reason related to the message, not the recipient address. This can happen when your mail server IP address has been added to a blacklist or blocked by an ISP, or if the message content is flagged by a filter on the receiving server.
For more information, please see our User Guide.
DELETE /suppression/blocks¶ ↑
var request = sg.emptyRequest() request.body = { "delete_all": false, "emails": [<EMAIL_ADDRESS><EMAIL_ADDRESS>] }; request.method = 'DELETE' request.path = '/v3/suppression/blocks' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve a specific block¶ ↑
This endpoint allows you to retrieve a specific email address from your blocks list.
Blocks happen when your message was rejected for a reason related to the message, not the recipient address. This can happen when your mail server IP address has been added to a blacklist or blocked by an ISP, or if the message content is flagged by a filter on the receiving server.
For more information, please see our User Guide.
GET /suppression/blocks/{email}¶ ↑
var request = sg.emptyRequest() request.method = 'GET' request.path = '/v3/suppression/blocks/{email}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Delete a specific block¶ ↑
This endpoint allows you to delete a specific email address from your blocks list.
Blocks happen when your message was rejected for a reason related to the message, not the recipient address. This can happen when your mail server IP address has been added to a blacklist or blocked by an ISP, or if the message content is flagged by a filter on the receiving server.
For more information, please see our User Guide.
DELETE /suppression/blocks/{email}¶ ↑
var request = sg.emptyRequest() request.method = 'DELETE' request.path = '/v3/suppression/blocks/{email}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve all bounces¶ ↑
This endpoint allows you to retrieve all of your bounces.
Bounces are messages that are returned to the server that sent it.
For more information see:
-
User Guide > Bounces for more information
GET /suppression/bounces¶ ↑
var request = sg.emptyRequest() request.queryParams["start_time"] = '1' request.queryParams["end_time"] = '1' request.method = 'GET' request.path = '/v3/suppression/bounces' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Delete bounces¶ ↑
This endpoint allows you to delete all of your bounces. You can also use this endpoint to remove a specific email address from your bounce list.
Bounces are messages that are returned to the server that sent it.
For more information see:
-
User Guide > Bounces for more information
Note: the delete_all
and emails
parameters should
be used independently of each other as they have different purposes.
DELETE /suppression/bounces¶ ↑
var request = sg.emptyRequest() request.body = { "delete_all": true, "emails": [<EMAIL_ADDRESS><EMAIL_ADDRESS>] }; request.method = 'DELETE' request.path = '/v3/suppression/bounces' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve a Bounce¶ ↑
This endpoint allows you to retrieve a specific bounce for a given email address.
Bounces are messages that are returned to the server that sent it.
For more information see:
-
User Guide > Bounces for more information
GET /suppression/bounces/{email}¶ ↑
var request = sg.emptyRequest() request.method = 'GET' request.path = '/v3/suppression/bounces/{email}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Delete a bounce¶ ↑
This endpoint allows you to remove an email address from your bounce list.
Bounces are messages that are returned to the server that sent it. This endpoint allows you to delete a single email addresses from your bounce list.
For more information see:
-
User Guide > Bounces for more information
DELETE /suppression/bounces/{email}¶ ↑
var request = sg.emptyRequest() request.queryParams["email_address"] =<EMAIL_ADDRESS>request.method = 'DELETE' request.path = '/v3/suppression/bounces/{email}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve all invalid emails¶ ↑
This endpoint allows you to retrieve a list of all invalid email addresses.
An invalid email occurs when you attempt to send email to an address that is formatted in a manner that does not meet internet email format standards or the email does not exist at the recipients mail server.
Examples include addresses without the @ sign or addresses that include certain special characters and/or spaces. This response can come from our own server or the recipient mail server.
For more information, please see our User Guide.
GET /suppression/invalid_emails¶ ↑
var request = sg.emptyRequest() request.queryParams["start_time"] = '1' request.queryParams["limit"] = '1' request.queryParams["end_time"] = '1' request.queryParams["offset"] = '1' request.method = 'GET' request.path = '/v3/suppression/invalid_emails' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Delete invalid emails¶ ↑
This endpoint allows you to remove email addresses from your invalid email address list.
There are two options for deleting invalid email addresses:
1) You can delete all invalid email addresses by setting
delete_all
to true in the request body. 2) You can delete some
invalid email addresses by specifying certain addresses in an array in the
request body.
An invalid email occurs when you attempt to send email to an address that is formatted in a manner that does not meet internet email format standards or the email does not exist at the recipients mail server.
Examples include addresses without the @ sign or addresses that include certain special characters and/or spaces. This response can come from our own server or the recipient mail server.
For more information, please see our User Guide.
DELETE /suppression/invalid_emails¶ ↑
var request = sg.emptyRequest() request.body = { "delete_all": false, "emails": [<EMAIL_ADDRESS><EMAIL_ADDRESS>] }; request.method = 'DELETE' request.path = '/v3/suppression/invalid_emails' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve a specific invalid email¶ ↑
This endpoint allows you to retrieve a specific invalid email addresses.
An invalid email occurs when you attempt to send email to an address that is formatted in a manner that does not meet internet email format standards or the email does not exist at the recipients mail server.
Examples include addresses without the @ sign or addresses that include certain special characters and/or spaces. This response can come from our own server or the recipient mail server.
For more information, please see our User Guide.
GET /suppression/invalid_emails/{email}¶ ↑
var request = sg.emptyRequest() request.method = 'GET' request.path = '/v3/suppression/invalid_emails/{email}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Delete a specific invalid email¶ ↑
This endpoint allows you to remove a specific email address from the invalid email address list.
An invalid email occurs when you attempt to send email to an address that is formatted in a manner that does not meet internet email format standards or the email does not exist at the recipients mail server.
Examples include addresses without the @ sign or addresses that include certain special characters and/or spaces. This response can come from our own server or the recipient mail server.
For more information, please see our User Guide.
DELETE /suppression/invalid_emails/{email}¶ ↑
var request = sg.emptyRequest() request.method = 'DELETE' request.path = '/v3/suppression/invalid_emails/{email}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve a specific spam report¶ ↑
This endpoint allows you to retrieve a specific spam report.
Spam reports happen when a recipient indicates that they think your email is spam and then their email provider reports this to SendGrid.
For more information, please see our User Guide.
GET /suppression/spam_report/{email}¶ ↑
var request = sg.emptyRequest() request.method = 'GET' request.path = '/v3/suppression/spam_report/{email}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Delete a specific spam report¶ ↑
This endpoint allows you to delete a specific spam report.
Spam reports happen when a recipient indicates that they think your email is spam and then their email provider reports this to SendGrid.
For more information, please see our User Guide.
DELETE /suppression/spam_report/{email}¶ ↑
var request = sg.emptyRequest() request.method = 'DELETE' request.path = '/v3/suppression/spam_report/{email}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve all spam reports¶ ↑
This endpoint allows you to retrieve all spam reports.
Spam reports happen when a recipient indicates that they think your email is spam and then their email provider reports this to SendGrid.
For more information, please see our User Guide.

There are two options for deleting spam reports:
1) You can delete all spam reports by setting “delete_all” to true in the request body. 2) You can delete some spam reports by specifying the email addresses in an array in the request body.
Spam reports happen when a recipient indicates that they think your email is spam and then their email provider reports this to SendGrid.
For more information, please see our User Guide.
DELETE /suppression/spam_reports¶ ↑
var request = sg.emptyRequest() request.body = { "delete_all": false, "emails": [<EMAIL_ADDRESS><EMAIL_ADDRESS>] }; request.method = 'DELETE' request.path = '/v3/suppression/spam_reports' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve all global suppressions¶ ↑
This endpoint allows you to retrieve a list of all email address that are globally suppressed.
A global suppression (or global unsubscribe) is an email address of a recipient who does not want to receive any of your messages. A globally suppressed recipient will be removed from any email you send. For more information, please see our User Guide.
GET /suppression/unsubscribes¶ ↑
var request = sg.emptyRequest() request.queryParams["start_time"] = '1' request.queryParams["limit"] = '1' request.queryParams["end_time"] = '1' request.queryParams["offset"] = '1' request.method = 'GET' request.path = '/v3/suppression/unsubscribes' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
TEMPLATES¶ ↑
Create a transactional template.¶ ↑
This endpoint allows you to create a transactional template.
Each user can create up to 300 different transactional templates. Transactional templates are specific to accounts and subusers. Templates created on a parent account will not be accessible from the subuser accounts.
Transactional templates are templates created specifically for transactional email and are not to be confused with Marketing Campaigns templates. For more information about transactional templates, please see our User Guide.
POST /templates¶ ↑
var request = sg.emptyRequest() request.body = { "name": "example_name" }; request.method = 'POST' request.path = '/v3/templates' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve all transactional templates.¶ ↑
This endpoint allows you to retrieve all transactional templates.
Each user can create up to 300 different transactional templates. Transactional templates are specific to accounts and subusers. Templates created on a parent account will not be accessible from the subuser accounts.
Transactional templates are templates created specifically for transactional email and are not to be confused with Marketing Campaigns templates. For more information about transactional templates, please see our User Guide.
GET /templates¶ ↑
var request = sg.emptyRequest() request.method = 'GET' request.path = '/v3/templates' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Edit a transactional template.¶ ↑
This endpoint allows you to edit a transactional template.
Each user can create up to 300 different transactional templates. Transactional templates are specific to accounts and subusers. Templates created on a parent account will not be accessible from the subuser accounts.
Transactional templates are templates created specifically for transactional email and are not to be confused with Marketing Campaigns templates. For more information about transactional templates, please see our User Guide.
PATCH /templates/{template_id}¶ ↑
var request = sg.emptyRequest() request.body = { "name": "new_example_name" }; request.method = 'PATCH' request.path = '/v3/templates/{template_id}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve a single transactional template.¶ ↑
This endpoint allows you to retrieve a single transactional template.
Each user can create up to 300 different transactional templates. Transactional templates are specific to accounts and subusers. Templates created on a parent account will not be accessible from the subuser accounts.
Transactional templates are templates created specifically for transactional email and are not to be confused with Marketing Campaigns templates. For more information about transactional templates, please see our User Guide.
GET /templates/{template_id}¶ ↑
var request = sg.emptyRequest() request.method = 'GET' request.path = '/v3/templates/{template_id}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Delete a template.¶ ↑
This endpoint allows you to delete a transactional template.
Each user can create up to 300 different transactional templates. Transactional templates are specific to accounts and subusers. Templates created on a parent account will not be accessible from the subuser accounts.
Transactional templates are templates created specifically for transactional email and are not to be confused with Marketing Campaigns templates. For more information about transactional templates, please see our User Guide.
DELETE /templates/{template_id}¶ ↑
var request = sg.emptyRequest() request.method = 'DELETE' request.path = '/v3/templates/{template_id}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Create a new transactional template version.¶ ↑
This endpoint allows you to create a new version of a template.
Each transactional template can have multiple versions, each version with its own subject and content. Each user can have up to 300 versions across across all templates.
For more information about transactional templates, please see our User Guide.
POST /templates/{template_id}/versions¶ ↑
var request = sg.emptyRequest() request.body = { "active": 1, "html_content": "<%body%>", "name": "example_version_name", "plain_content": "<%body%>", "subject": "<%subject%>", "template_id": "ddb96bbc-9b92-425e-8979-99464621b543" }; request.method = 'POST' request.path = '/v3/templates/{template_id}/versions' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Edit a transactional template version.¶ ↑
This endpoint allows you to edit a version of one of your transactional templates.
Each transactional template can have multiple versions, each version with its own subject and content. Each user can have up to 300 versions across across all templates.
For more information about transactional templates, please see our User Guide.
URI Parameters¶ ↑
| URI Parameter | Type | Description | |—|—|—| | template_id | string | The ID of the original template | | version_id | string | The ID of the template version |
PATCH /templates/{template_id}/versions/{version_id}¶ ↑
var request = sg.emptyRequest() request.body = { "active": 1, "html_content": "<%body%>", "name": "updated_example_name", "plain_content": "<%body%>", "subject": "<%subject%>" }; request.method = 'PATCH' request.path = '/v3/templates/{template_id}/versions/{version_id}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve a specific transactional template version.¶ ↑
This endpoint allows you to retrieve a specific version of a template.
Each transactional template can have multiple versions, each version with its own subject and content. Each user can have up to 300 versions across across all templates.
For more information about transactional templates, please see our User Guide.
URI Parameters¶ ↑
| URI Parameter | Type | Description | |—|—|—| | template_id | string | The ID of the original template | | version_id | string | The ID of the template version |
GET /templates/{template_id}/versions/{version_id}¶ ↑
var request = sg.emptyRequest() request.method = 'GET' request.path = '/v3/templates/{template_id}/versions/{version_id}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Delete a transactional template version.¶ ↑
This endpoint allows you to delete one of your transactional template versions.
Each transactional template can have multiple versions, each version with its own subject and content. Each user can have up to 300 versions across across all templates.
For more information about transactional templates, please see our User Guide.
URI Parameters¶ ↑
| URI Parameter | Type | Description | |—|—|—| | template_id | string | The ID of the original template | | version_id | string | The ID of the template version |
DELETE /templates/{template_id}/versions/{version_id}¶ ↑
var request = sg.emptyRequest() request.method = 'DELETE' request.path = '/v3/templates/{template_id}/versions/{version_id}' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Activate a transactional template version.¶ ↑
This endpoint allows you to activate a version of one of your templates.
Each transactional template can have multiple versions, each version with its own subject and content. Each user can have up to 300 versions across across all templates.
For more information about transactional templates, please see our User Guide.
URI Parameters¶ ↑
| URI Parameter | Type | Description | |—|—|—| | template_id | string | The ID of the original template | | version_id | string | The ID of the template version |
POST /templates/{template_id}/versions/{version_id}/activate¶ ↑
var request = sg.emptyRequest() request.method = 'POST' request.path = '/v3/templates/{template_id}/versions/{version_id}/activate' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
TRACKING SETTINGS¶ ↑
Retrieve Tracking Settings¶ ↑
This endpoint allows you to retrieve a list of all tracking settings that you can enable on your account.
You can track a variety of the actions your recipients may take when interacting with your emails including opening your emails, clicking on links in your emails, and subscribing to (or unsubscribing from) your emails.
For more information about tracking, please see our User Guide.
GET /tracking_settings¶ ↑
var request = sg.emptyRequest() request.queryParams["limit"] = '1' request.queryParams["offset"] = '1' request.method = 'GET' request.path = '/v3/tracking_settings' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Update Click Tracking Settings¶ ↑
This endpoint allows you to change your current click tracking setting. You can enable, or disable, click tracking using this endpoint.
You can track a variety of the actions your recipients may take when interacting with your emails including opening your emails, clicking on links in your emails, and subscribing to (or unsubscribing from) your emails.
For more information about tracking, please see our User Guide.
PATCH /tracking_settings/click¶ ↑
var request = sg.emptyRequest() request.body = { "enabled": true }; request.method = 'PATCH' request.path = '/v3/tracking_settings/click' sg.API(request, function (error, response) { console.log(response.statusCode) console.log(response.body) console.log(response.headers) })
Retrieve Click Track Settings¶ ↑
This endpoint allows you to retrieve your current click tracking setting.
You can track a variety of the actions your recipients may take when interacting with your emails including opening your emails, clicking on links in your emails, and subscribing to (or unsubscribing from) your emails.