---
title: "Receive Sendgrid Events"
method: POST
path: "/webhook/sendgrid/events"
tags: ["webhook", "sendgrid"]
---

# Receive Sendgrid Events

`POST /webhook/sendgrid/events`

## Request

- Base URL: `https://api-docs.upsmith.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api-docs.upsmith.com/webhook/sendgrid/events`
- Auth: none declared

Receive SendGrid Event Webhook deliveries and persist them in-process.

Unauthenticated — SendGrid posts here directly (this is the public,
internet-facing surface). Signature verification + persistence live in the
notification domain; delegate to its handler, which reads the raw body
before any re-serialization so the signature check stays valid. Returns 403
on a bad signature, which SendGrid retries with backoff.

## Headers

- `timezone` string
- `x-user-id` string, nullable
- `x-actor-email` string, nullable
- `x-request-source` string, nullable
- `x-operation-id` string, nullable
- `x-commit-message` string, nullable
- `x-confirmation-id` string, nullable
- `x-chat-id` string, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/upsmith/apis/upsmith-api.md) - [All operations](https://skmtc.dev/upsmith/apis/upsmith-api/llms.txt) - [OpenAPI document](https://skmtc.dev/upsmith/apis/upsmith-api/revisions/86e2c2bd93af?raw)
