Send with Resend
A Resend newsletter goes out from ReputeCast through Resend’s email and batch endpoints, up to 100 messages per call. You connect a Full access API key; ReputeCast registers the webhooks, adds your sending domain in the region you pick, reads the monthly quota and keeps suppressions in sync both ways.
| Kind | API |
|---|---|
| Bulk marketing | Allowed |
| Event webhooks | Registered by ReputeCast; Standard Webhooks (Svix) signature |
| Domain setup | API |
| Suppression sync | Two-way |
| Batch size | 100 |
| Notes | Up to 100 messages per call. An account without a verified domain shows as sandbox. Monthly volume is read from Resend. |
Before you begin
Section titled “Before you begin”- A Resend API key with Full access (Resend: API keys, checked October 2026). A Sending access key connects, but it can only send: webhooks, domains and suppressions then fail. The card says “Sending access key · quota and domains need a Full access key”.
- A verified domain in Resend, or one ReputeCast adds for you. Until the account has a verified domain, ReputeCast shows Resend as Sandbox · verified addresses only: Resend sends test mail to your own address only.
- Permissions. Connecting needs
providers:manage; adding a new sending domain needsdomains:manage. - A public HTTPS address for webhooks:
<public URL>/hooks/resend/<token>. Once the key is accepted, ReputeCast can poll Resend once a minute while the address isn’t reachable yet.
Connect Resend
Section titled “Connect Resend”-
Open Sending providers, choose Add provider and pick Resend in the catalog. Connect a sending provider explains the steps every provider shares.
-
Paste the API key and pick the Region where new sending domains should be hosted (
us-east-1,eu-west-1,sa-east-1orap-northeast-1). Under the extra Resend settings you can enter your Plan · emails per month for the quota bar. Leave the Webhook signing secret empty: ReputeCast reads the secret of the webhook it registers. -
Choose Connect. ReputeCast lists your domains with the key and stores it encrypted.
-
In 2. Webhooks, ReputeCast tests its own public URL, then creates (or re-enables) a webhook for
email.delivered,email.delivery_delayed,email.bounced,email.complained,email.failedandemail.suppressed. Opens and clicks aren’t subscribed: ReputeCast tracks them itself. If the endpoint isn’t reachable yet, choose Use polling for now. -
Choose Continue to domain verification and enter your sending domain. ReputeCast adds it in Resend (in the region from step 2) and lists the DKIM TXT record at
resend._domainkey, the MX and SPF records onsend.<your domain>, and SPF and DMARC records for the domain itself. Resend’s tracking and receiving records are left out. -
In Test send, send a test. To try outcomes without touching real mailboxes, send to Resend’s test addresses:
[email protected],[email protected],[email protected]or[email protected](labels such as[email protected]work, except for the suppressed address). Test emails count against your Resend quota (Resend: Send test emails, checked October 2026). -
In Streams and Contacts, pick the streams and keep the option to pull Resend’s existing suppressions ticked.
Check that it worked
Section titled “Check that it worked”- The Resend card on Sending providers, then Providers shows Healthy and the number of verified domains.
- In Resend › Webhooks, a webhook points at
/hooks/resend/…for the six events. - Deliveries and bounces appear under Sending providers, then Events & sync.
Webhooks are verified with the Standard Webhooks (Svix) signature and the webhook’s whsec_ signing secret, and
requests older than 5 minutes are refused. One message goes to POST /emails; two or more go to the batch endpoint,
up to 100 per call, each with an idempotency key so a retry never sends twice. If Resend refuses one message of a
batch, ReputeCast sends the rest one by one so only that message fails.
Resend tracks opens and clicks per domain once the domain has tracking turned on, and it can’t be turned off per message. The Provider-side tracking check on the Events & sync tab reports it and can turn it off for your domains; until then Send Readiness warns about double counting.
Troubleshooting
Section titled “Troubleshooting”- “Resend rejected this key.” The key was deleted or mistyped. Create a Full access key in Resend and paste it.
- Webhook registration fails with
restricted_api_key. The key has Sending access only. Replace it with a Full access key under Settings, then Credentials, then choose Try registering again. - Resend shows as Sandbox · verified addresses only. The account has no verified domain. Finish the domain records from step 5; the status clears at the next health check (every 5 minutes). Resend has no production-access request: verifying a domain is the fix.
- The test fails with
validation_error. The From domain isn’t verified in Resend. Use a sender on a verified domain. - Signatures stop verifying after you recreated the webhook in Resend. If you once pasted a webhook signing secret, ReputeCast keeps using it. Replace it with the new webhook’s secret, or reconnect Resend.
- Transactional messages with Cc, Bcc or attachments fail. The Resend adapter can’t send copies or attachments; route those templates through another provider.
- The catalog badge says “Bulk via Broadcasts API”. ReputeCast doesn’t use Resend Broadcasts; it sends every message itself through the email and batch endpoints.
- You changed the public URL or disconnected Resend. A new public URL adds a second webhook; delete the old one in Resend. Disconnecting deletes the webhook at the current URL; domains and pushed suppressions stay.