> AI agents: this is one page from PostHog's docs. Full index of Markdown docs for LLMs: https://posthog.com/llms.txt # Linking Resend as a source Canonical URL: https://posthog.com/docs/data-pipelines/sources/resend > **Cloud region:** This page uses US Cloud hosts. For an EU Cloud project, use `https://eu.posthog.com` instead of `https://app.posthog.com` (app host for links). ## On this page - [Adding a data source](#adding-a-data-source) - [Available tables](#available-tables) - [Configuration](#configuration) - [Supported tables](#supported-tables) ![](https://res.cloudinary.com/dmukukwp6/image/upload/texture_tan_9608fcca70) ![](https://res.cloudinary.com/dmukukwp6/image/upload/texture_tan_dark_a92b0e022d) Let AI connect your sources for you Skip the manual setup — run this in your project and the wizard auto-detects your databases and APIs and connects them to PostHog. `npx @posthog/wizard warehouse` ![PostHog Wizard hedgehog](https://res.cloudinary.com/dmukukwp6/image/upload/wizard_3f8bb7a240.png) ![](https://res.cloudinary.com/dmukukwp6/image/upload/wizard_3f8bb7a240.png)Let AI connect your sources for you The Resend connector pulls your Resend data – audiences, broadcasts, contacts, domains, emails, suppressions, email metrics, and broadcast clicked links – into the PostHog data warehouse. ## Adding a data source 1. Go to the [sources tab](https://app.posthog.com/data-management/sources) of the data pipeline section in PostHog. 2. Click **\+ New source** and then click **Link** next to Resend. 3. Next, you need an API key from Resend. In your [Resend API keys settings](https://resend.com/api-keys), create an API key. Grant the key **full access** (or a read-enabled access token) so that all Resend data can be read. Copy the key value (it starts with `re_`). 4. Back in PostHog, enter the key in the `API key` field and click **Next**. 5. Select the tables you want to sync, set the sync method and frequency, then click **Import**. Once the syncs are complete, you can start using Resend data in PostHog. ## Available tables | Table | Description | Sync method | | --- | --- | --- | | `audiences` | Contact audiences in your Resend account | Full refresh | | `broadcasts` | Broadcasts sent through Resend | Full refresh | | `broadcast_clicked_links` | Click counts per URL for each broadcast | Full refresh | | `contacts` | Contacts across each of your audiences | Full refresh | | `domains` | Sending domains | Full refresh | | `emails` | Sent emails | Full refresh | | `email_metrics` | Daily email delivery, bounce, open, click, and complaint metrics | Full refresh | | `suppressions` | Suppressed email addresses with suppression origin | Full refresh | **Incremental** tables sync only new or updated records on each run. **Full refresh** tables reload all data on each sync. ## Configuration | Option | Type | Required | | --- | --- | --- | | `Authentication type` | select | Yes | ## Supported tables | Table | Description | Sync method | Incremental field | Primary key | | --- | --- | --- | --- | --- | | `audiences` | A list of contacts you can send broadcast emails to. | Full refresh | — | — | | `broadcasts` | An email campaign sent to an audience. | Full refresh | — | — | | `domains` | A sending domain configured in Resend for authenticated email delivery. | Full refresh | — | — | | `emails` | A transactional email sent through Resend. | Full refresh | — | — | | `contacts` | A contact belonging to an audience, with subscription status. | Full refresh | — | — | | `suppressions` | An email address on the team's suppression list, which Resend skips when sending. | Full refresh | — | — | | `email_metrics` | Account-level email delivery and engagement metrics, one row per UTC day. | Full refresh | — | — | | `broadcast_clicked_links` | A link clicked in a broadcast, with its total and unique click counts. | Full refresh | — | — |