Feed SendGrid events into Spaw's suppression list

updated · September 3, 2026

Point the SendGrid Event Webhook at your Spaw feedback URL so bounces, drops, deliveries and spam reports keep your suppression list current.

Mechanism
SendGrid Event Webhook posting to a Spaw feedback URL
Works today
Yes
Auth
Feedback key in the URL, rotatable from the API keys page
Cost
Free, feedback is never billed
Events read
delivered, bounce, dropped, spamreport

SendGrid's Event Webhook posts a batch of delivery events to a URL you choose. Give it your Spaw feedback URL and the loop closes without code: bounced and dropped addresses go straight onto your suppression list, deliveries confirm mailboxes for your own later lookups, and the History tab shows how the verdicts you paid for compared with what SendGrid actually saw.

Set up the Event Webhook

  1. In the Spaw dashboard, open the API keys page, generate a feedback key, and copy the SendGrid URL:
https://spaw.co/api/v1/email/feedback/sendgrid/fb_…
  1. In SendGrid, open the Event Webhook settings under Mail Settings and add a webhook with that URL as the HTTP POST destination.
  2. Select the Delivered, Bounced, Dropped and Spam Reports events. Leave Deferred off, or on; Spaw ignores it either way, because a deferral says nothing definitive about the address.
  3. Save, then use SendGrid's test feature. Spaw answers 200 with how many outcomes it recorded.

What Spaw reads from the payload

SendGrid posts a JSON array with one object per event, often several events per request. For each object Spaw reads event, email, reason and timestamp, and nothing else:

SendGrid event Recorded as
delivered delivered
bounce bounced
dropped bounced, the address was refused before sending
spamreport complained
deferred, processed, open, click and the rest ignored

The reason field, which carries the receiving server's reply for a bounce or SendGrid's explanation for a drop, is stored as the reason, and the Unix timestamp becomes the time of the outcome. A request with two events, trimmed to the fields Spaw uses:

[
  { "event": "bounce", "email": "[email protected]", "reason": "550 5.1.1 user unknown", "timestamp": 1788782400 },
  { "event": "delivered", "email": "[email protected]", "timestamp": 1788782460 }
]

Treating dropped as a bounce is deliberate. SendGrid drops a message when the address is already on one of its own suppression lists or is malformed, and in both cases the address should not be sent to again.

What Spaw does with the events

A bounce, a drop or a spam report adds the address to your suppression list with source feedback. Batch, bulk and monitor runs then answer it from the stored verdict at no cost, with reason suppressed and a risk score of 100; only a single lookup re-verifies it, which is the only way off the list.

A delivery removes any entry Spaw had added automatically, and for the next 90 days the address counts as a confirmed mailbox for your own lookups, reported as smtp_reason: "delivered_recently" with no mailbox probe. Every outcome is matched against the verdict you were given for the address in the previous 90 days, and the feedback summary endpoint reports the delivery rate among addresses answered deliverable and the bounce rate among addresses answered undeliverable. Outcomes are kept for 180 days.

Keep the URL private

SendGrid can sign its webhook posts, but Spaw does not verify that signature: the feedback key in the URL is the credential. Anyone holding the URL can add outcomes to your account, so if it leaks, rotate the key on the API keys page. Every old URL then answers 401 INVALID_FEEDBACK_KEY, and you paste the new URL into SendGrid.

Cost

Feedback is free and never logged as a lookup. The endpoint is throttled at 120 requests per minute per IP; SendGrid batches events, so even busy senders stay well under it.

Related

markdown version: /integrations/sendgrid.md

Verify addresses the same way

The Spaw API runs every check described here on each lookup, with an SMTP handshake that never sends mail. 10 free lookups a month, no card required.

Get your API key

More integrations