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

Toggle Signature Verification for an Event Webhook



API Overview

api-overview page anchor

The SendGrid Event Webhook sends email event data as SendGrid processes it. This means you can receive data in nearly real-time, making it ideal to integrate with logging or monitoring systems.

Because the Event Webhook delivers data to your systems, it is also well-suited to backing up and storing event data within your infrastructure to meet your own data access and retention needs.

Event types

event-types page anchor

You can think about the types of events provided by the Event Webhook in two categories: deliverability events and engagement events.

  • Deliverability events such as "delivered," "bounced," and "processed" help you understand if your email is being delivered to your customers.
  • Engagement events such as "open," and "click" help you understand if customers are reading and interacting with your emails after they arrive.

Both types of events are important and should be monitored to understand the overall health of your email program. The Webhooks API allows you to configure your Event Webhook configurations.


PATCH/v3/user/webhooks/event/settings/signed/{id}

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

This endpoint allows you to enable or disable signature verification for a single Event Webhook by ID.

If you do not pass a webhook ID to this endpoint, it will enable signature verification for your oldest webhook by created_date. This means the default webhook operated on by this endpoint when no ID is provided will be the first one you created. This functionality allows customers who do not have multiple webhooks to enable or disable signature verifiction for their only webhook, even if they do not supply an ID. If you have multiple webhooks, you can retrieve their IDs using the Get All Event Webhooks endpoint.

This endpoint accepts a single boolean request property, enabled, that can be set true or false to enable or disable signature verification. This endpoint will return the public key required to verify Twilio SendGrid signatures if it is enabled or an empty string if signing is disabled. You can also retrieve your public key using the Get an Event Webhook's Public Key endpoint.

For more information about cryptographically signing the Event Webhook, see Getting Started with the Event Webhook Security Features.


Property nameTypeRequiredDescription
Authorizationstringrequired
Default: Bearer <<YOUR_API_KEY_HERE>>

on-behalf-ofstringOptional

The on-behalf-of header allows you to make API calls from a parent account on behalf of the parent's Subusers or customer accounts. You will use the parent account's API key when using this header. When making a call on behalf of a customer account, the property value should be "account-id" followed by the customer account's ID (e.g., on-behalf-of: account-id <account-id>). When making a call on behalf of a Subuser, the property value should be the Subuser's username (e.g., on-behalf-of: <subuser-username>). See On Behalf Of for more information.

Property nameTypeRequiredDescription
idstringrequired

The ID of the Event Webhook you want to retrieve.

Schema
Property nameTypeRequiredDescriptionChild properties
enabledbooleanrequired

Enable or disable the webhook by setting this property to true or false, respectively.

200404

Success

SchemaExample
Property nameTypeRequiredDescriptionChild properties
idstring

A unique string used to identify the webhook. A webhook's ID is generated programmatically and cannot be changed after creation. You can assign a natural language identifier to your webhook using the friendly_name property.


public_keystring

The public key you can use to verify the Twilio SendGrid signature.

Toggle Signature Verification for an Event Webhook

toggle-signature-verification-for-an-event-webhook page anchor
Node.js
Python
C#
Java
Go
PHP
Ruby
curl

_22
const client = require('@sendgrid/client');
_22
client.setApiKey(process.env.SENDGRID_API_KEY);
_22
_22
const id = "ZGkrHSypTsudrGkmdpJJ";
_22
const data = {
_22
"enabled": false
_22
};
_22
_22
const request = {
_22
url: `/v3/user/webhooks/event/settings/signed/${id}`,
_22
method: 'PATCH',
_22
body: data
_22
}
_22
_22
client.request(request)
_22
.then(([response, body]) => {
_22
console.log(response.statusCode);
_22
console.log(response.body);
_22
})
_22
.catch(error => {
_22
console.error(error);
_22
});


Rate this page: