> ## Documentation Index
> Fetch the complete documentation index at: https://filament.getgalaxy.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Resend

> Read sent and received email, broadcasts, contacts, segments, domains, templates, and webhook deliveries from Resend

The Resend source reads sent and received email, attachments, domains, audience
data, broadcasts, templates, webhook deliveries, and the API request log. It is
built with an
[HTTP manifest](/pages/connectors/building-a-connector/http-manifests) and is
**beta**. Its resources are stable, though future releases may add columns.

## Configuration

| Field     | Scope      | Default | Description                                                                                  |
| --------- | ---------- | ------- | -------------------------------------------------------------------------------------------- |
| `api_key` | Connection |         | Required. Secret. Full-access API key (`re_…`). Sending-only keys reject the list endpoints. |

## Resources

| Resource                     | Parent            | Notes                                                                |
| ---------------------------- | ----------------- | -------------------------------------------------------------------- |
| `emails`                     |                   | Sent email list, the connection probe                                |
| `email_details`              | `emails`          | Cardinality one. Only source of rendered body and send-time tags     |
| `email_attachments`          | `emails`          | One request per email. `download_url` is signed and expires          |
| `received_emails`            |                   | Inbound mail                                                         |
| `received_email_attachments` | `received_emails` | One request per received email                                       |
| `domains`                    |                   | Sending domains                                                      |
| `domain_settings`            | `domains`         | Cardinality one. Tracking settings the list endpoint omits           |
| `domain_records`             | `domains`         | Expected DNS records, projected from the same detail payload         |
| `api_keys`                   |                   | Key metadata                                                         |
| `broadcasts`                 |                   | Broadcast sends                                                      |
| `contacts`                   |                   | Audience contacts                                                    |
| `contact_topics`             | `contacts`        | One request per contact. Only path to per-contact subscription state |
| `contact_properties`         |                   | Custom property definitions                                          |
| `segments`                   |                   | Audience segments                                                    |
| `segment_contacts`           | `segments`        | Segment membership, one request per segment                          |
| `topics`                     |                   | Subscription topics                                                  |
| `suppressions`               |                   | Suppression list                                                     |
| `webhooks`                   |                   | Webhook endpoints                                                    |
| `webhook_events`             | `webhooks`        | Events per webhook                                                   |
| `webhook_event_attempts`     | `webhook_events`  | One request per event. The highest-cardinality stream                |
| `templates`                  |                   | Template list                                                        |
| `template_details`           | `templates`       | Cardinality one. Rendered body and declared variables                |
| `logs`                       |                   | API request log                                                      |

## Modes

Full only. The manifest declares no `incremental` blocks, so every run
re-reads every selected resource from the start. Full runs checkpoint their
pagination cursor per top-level resource and resume from the last completed
page. Child resources always restart with their parent.

## Behavior

* **Auth**: bearer token from `api_key` on every request.
* **Pagination**: Resend returns no next-page token. The cursor is the id of
  the last record on the page (`data.-1.id`), echoed back as the `after` query
  parameter, with `has_more` as the terminator and `limit=100` per page.
  Detail resources are single-object requests (`cardinality: one`).
* **Rate limiting**: dynamic. A static 8 requests/second limiter holds below
  Resend's 10 rps team-wide cap, and the IETF-draft `ratelimit-remaining` /
  `ratelimit-reset` headers (reset counted as seconds from now) tighten it
  further as the window drains, but never below one request per second.
* **Timestamps**: most `created_at`-style columns are typed `string`, not
  `timestamptz`, because Resend renders them in a non-RFC 3339 Postgres
  format that fails sink coercion. Only the endpoints that emit real ISO 8601
  (received emails, attachment expiries, webhook events and attempts) are
  typed `timestamptz`.
* Four metrics endpoints (`/emails/metrics`, `/segments/metrics`, broadcast
  metrics and recipients) are deliberately absent. They are private beta and
  return 404 on most accounts, which would fail the whole run.
