---
title: "Handle Postmark Email Webhooks"
method: POST
path: "/api/email/"
tags: ["v1", "email"]
---

# Handle Postmark Email Webhooks

`POST /api/email/`

## Request body

- union
  - PostmarkDeliveryWebhook
    - `RecordType` 'Delivery'
    - `ServerID` integer, required
    - `MessageStream` string, required
    - `MessageID` string, required
    - `Recipient` string, required
    - `Tag` string, required
    - `DeliveredAt` string, required
    - `Details` string, required
    - `Metadata` object, required
  - PostmarkBounceWebhook
    - `RecordType` 'Bounce'
    - `ID` integer, required
    - `Type` string, required
    - `TypeCode` 1 | 2 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 | 2048 | 4096 | 8192 | 16384 | 100000 | 100001 | 100002 | 100003 | 100006 | 100007 | 100008 | 100009 | 100010, required
    - `Tag` string, required
    - `MessageID` string, required
    - `Details` string, required
    - `Email` string, required
    - `From` string, required
    - `BouncedAt` string, required
    - `Inactive` boolean, required
    - `DumpAvailable` boolean, required
    - `CanActivate` boolean, required
    - `Subject` string, required
    - `ServerID` integer, required
    - `MessageStream` string, required
    - `Content` string, required
    - `Name` string, required
    - `Description` string, required
    - `Metadata` object, required
  - PostmarkSpamComplaintWebhook
    - `RecordType` 'SpamComplaint'
    - `ID` integer, required
    - `Type` string, required
    - `TypeCode` integer, required
    - `Tag` string, required
    - `MessageID` string, required
    - `Details` string, required
    - `Email` string, required
    - `From` string, required
    - `BouncedAt` string, required
    - `Inactive` boolean, required
    - `DumpAvailable` boolean, required
    - `CanActivate` boolean, required
    - `Subject` string, required
    - `ServerID` integer, required
    - `MessageStream` string, required
    - `Content` string, required
    - `Name` string, required
    - `Description` string, required
    - `Metadata` object, required
  - PostmarkOpenWebhook
    - `RecordType` 'Open'
    - `MessageStream` string, required
    - `Metadata` object, required
    - `FirstOpen` boolean, required
    - `Recipient` string, required
    - `MessageID` string, required
    - `ReceivedAt` string, required
    - `Platform` string, required
    - `ReadSeconds` integer, required
    - `Tag` string, required
    - `UserAgent` string, required
    - `OS` object, required
    - `Client` object, required
    - `Geo` object, required
  - PostmarkClickWebhook
    - `RecordType` 'Click'
    - `MessageStream` string, required
    - `Metadata` object, required
    - `Recipient` string, required
    - `MessageID` string, required
    - `ReceivedAt` string, required
    - `Platform` string, required
    - `ClickLocation` string, required
    - `OriginalLink` string, required
    - `Tag` string, required
    - `UserAgent` string, required
    - `OS` object, required
    - `Client` object, required
    - `Geo` object, required
  - PostmarkSubscriptionChangeWebhook
    - `RecordType` 'SubscriptionChange'
    - `MessageID` string, required
    - `ServerID` integer, required
    - `MessageStream` string, required
    - `ChangedAt` string, required
    - `Recipient` string, required
    - `Origin` string, required
    - `SuppressSending` boolean, required
    - `SuppressionReason` string, required
    - `Tag` string, required
    - `Metadata` object, required

## Response `200`

Successful Response

- unknown

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/significant-gravitas/apis/autogpt-agent-server.md) · [All operations](https://skmtc.net/significant-gravitas/apis/autogpt-agent-server/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/significant-gravitas/autogpt-agent-server/versions/382041c7ecb2/schema)
