# Postmark (/docs/adapters/postmark)



The Postmark adapter calls the Postmark Email API directly. It does not add a runtime dependency.

<ProviderBadge adapter="postmark" />

```ts
import { createEmailClient } from "email-sdk";
import { postmark } from "email-sdk/postmark";

const email = createEmailClient({
  adapters: [
    postmark({
      serverToken: process.env.POSTMARK_SERVER_TOKEN!,
      messageStream: "outbound",
    }),
  ],
});
```

## Send [#send]

```ts
await email.send({
  from: "Acme <hello@acme.com>",
  to: "user@example.com",
  subject: "Receipt",
  html: "<p>Thanks for your order.</p>",
  metadata: {
    orderId: "ord_123",
  },
});
```

## Options [#options]

| Option          | Type                     | Required | Notes                                      |
| --------------- | ------------------------ | -------- | ------------------------------------------ |
| `serverToken`   | `string`                 | Yes      | Postmark server token.                     |
| `baseUrl`       | `string`                 | No       | Defaults to `https://api.postmarkapp.com`. |
| `messageStream` | `string`                 | No       | Postmark message stream.                   |
| `fetch`         | `typeof fetch`           | No       | Useful for tests or custom runtimes.       |
| `headers`       | `Record<string, string>` | No       | Extra request headers.                     |

## Response [#response]

The adapter maps Postmark `MessageID` to `id` and `messageId`.
