All integrations

Resend

MESSAGING · EMAIL

Send email and manage domains, audiences, and broadcasts on their own key.

Acts as the person, not as itself

Each user connects their own account. Every call carries both identities — the agent and the person it is acting for — so the agent can never reach past what that individual can already do.

Credentials never touch the agent

Tokens live in the vault and attach server-side at call time. The agent holds a session, not a secret, and revoking access does not mean rotating a key.

Every call on the record

Who asked, which agent acted, which action ran, and the verdict that let it through — one audit trail across every integration, not one per vendor.

What an agent can do

Each action is granted on its own. An agent allowed to read is not thereby allowed to write, and the scope beside each row is what the acting user must have connected for it to run at all.

resend_delete_api_keys_by_api_key_idWRITE

Remove an existing API key via DELETE /api-keys/{api_key_id}

full_access
resend_delete_audiences_by_idWRITE

Remove an existing audience via DELETE /audiences/{id}

full_access
resend_delete_automations_by_automation_idWRITE

Delete an automation via DELETE /automations/{automation_id}

full_access
resend_delete_broadcasts_by_idWRITE

Remove an existing broadcast that is in the draft status via DELETE /broadcasts/{id}

full_access
resend_delete_contact_properties_by_idWRITE

Remove an existing contact property via DELETE /contact-properties/{id}

full_access
resend_delete_contacts_by_contact_id_segments_by_segment_idWRITE

Remove a contact from a segment via DELETE /contacts/{contact_id}/segments/{segment_id}

full_access
resend_delete_contacts_by_idWRITE

Remove an existing contact by ID or email via DELETE /contacts/{id}

full_access
resend_delete_domains_by_domain_idWRITE

Remove an existing domain via DELETE /domains/{domain_id}

full_access
resend_delete_events_by_identifierWRITE

Delete an event via DELETE /events/{identifier}

full_access
resend_delete_oauth_grants_by_oauth_grant_idWRITE

Revoke an OAuth grant via DELETE /oauth/grants/{oauth_grant_id}

full_access
resend_delete_segments_by_idWRITE

Remove an existing segment via DELETE /segments/{id}

full_access
resend_delete_suppressions_by_suppressionWRITE

Remove a single suppression by ID or email via DELETE /suppressions/{suppression}

full_access
resend_delete_templates_by_idWRITE

Remove an existing template via DELETE /templates/{id}

full_access
resend_delete_topics_by_idWRITE

Remove an existing topic via DELETE /topics/{id}

full_access
resend_delete_webhooks_by_webhook_idWRITE

Remove an existing webhook via DELETE /webhooks/{webhook_id}

full_access
resend_get_api_keysREAD

Retrieve a list of API keys via GET /api-keys

full_access
resend_get_audiencesREAD

Retrieve a list of audiences via GET /audiences

full_access
resend_get_audiences_by_idREAD

Retrieve a single audience via GET /audiences/{id}

full_access
resend_get_automationsREAD

Retrieve a list of automations via GET /automations

full_access
resend_get_automations_by_automation_idREAD

Retrieve a single automation via GET /automations/{automation_id}

full_access
resend_get_automations_by_automation_id_runsREAD

Retrieve a list of automation runs via GET /automations/{automation_id}/runs

full_access
resend_get_automations_by_automation_id_runs_by_run_idREAD

Retrieve a single automation run via GET /automations/{automation_id}/runs/{run_id}

full_access
resend_get_broadcastsREAD

Retrieve a list of broadcasts via GET /broadcasts

full_access
resend_get_broadcasts_by_idREAD

Retrieve a single broadcast via GET /broadcasts/{id}

full_access
resend_get_broadcasts_by_id_clicked_linksREAD

Retrieve a broadcast's clicked links via GET /broadcasts/{id}/clicked-links

full_access
resend_get_broadcasts_by_id_recipientsREAD

Retrieve broadcast recipients via GET /broadcasts/{id}/recipients

full_access
resend_get_contact_propertiesREAD

Retrieve a list of contact properties via GET /contact-properties

full_access
resend_get_contact_properties_by_idREAD

Retrieve a single contact property via GET /contact-properties/{id}

full_access
resend_get_contactsREAD

Retrieve a list of contacts via GET /contacts

full_access
resend_get_contacts_by_contact_id_segmentsREAD

Retrieve a list of segments for a contact via GET /contacts/{contact_id}/segments

full_access
resend_get_contacts_by_contact_id_topicsREAD

Retrieve topics for a contact via GET /contacts/{contact_id}/topics

full_access
resend_get_contacts_by_idREAD

Retrieve a single contact by ID or email via GET /contacts/{id}

full_access
resend_get_contacts_importsREAD

Retrieve a list of contact imports via GET /contacts/imports

full_access
resend_get_contacts_imports_by_idREAD

Retrieve a single contact import via GET /contacts/imports/{id}

full_access
resend_get_domainsREAD

Retrieve a list of domains via GET /domains

full_access
resend_get_domains_by_domain_idREAD

Retrieve a single domain via GET /domains/{domain_id}

full_access
resend_get_domains_by_domain_id_claimREAD

Retrieve a domain claim via GET /domains/{domain_id}/claim

full_access
resend_get_emailsREAD

Retrieve a list of emails via GET /emails

full_access
resend_get_emails_by_email_idREAD

Retrieve a single email via GET /emails/{email_id}

full_access
resend_get_emails_by_email_id_attachmentsREAD

Retrieve a list of attachments for a sent email via GET /emails/{email_id}/attachments

full_access
resend_get_emails_by_email_id_attachments_by_attachment_idREAD

Retrieve a single attachment for a sent email via GET /emails/{email_id}/attachments/{attachment_id}

full_access
resend_get_emails_metricsREAD

Retrieve account-level email metrics via GET /emails/metrics

full_access
resend_get_emails_receivingREAD

Retrieve a list of received emails via GET /emails/receiving

full_access
resend_get_emails_receiving_by_email_idREAD

Retrieve a single received email via GET /emails/receiving/{email_id}

full_access
resend_get_emails_receiving_by_email_id_attachmentsREAD

Retrieve a list of attachments for a received email via GET /emails/receiving/{email_id}/attachments

full_access
resend_get_emails_receiving_by_email_id_attachments_by_attachment_idREAD

Retrieve a single attachment for a received email via GET /emails/receiving/{email_id}/attachments/{attachment_id}

full_access
resend_get_eventsREAD

Retrieve a list of events via GET /events

full_access
resend_get_events_by_identifierREAD

Retrieve a single event via GET /events/{identifier}

full_access
resend_get_logsREAD

Retrieve a list of logs via GET /logs

full_access
resend_get_logs_by_log_idREAD

Retrieve a single log via GET /logs/{log_id}

full_access
resend_get_oauth_grantsREAD

Retrieve a list of OAuth grants via GET /oauth/grants

full_access
resend_get_segmentsREAD

Retrieve a list of segments via GET /segments

full_access
resend_get_segments_by_idREAD

Retrieve a single segment via GET /segments/{id}

full_access
resend_get_suppressionsREAD

Retrieve a list of suppressions via GET /suppressions

full_access
resend_get_suppressions_by_suppressionREAD

Retrieve a single suppression by ID or email via GET /suppressions/{suppression}

full_access
resend_get_templatesREAD

Retrieve a list of templates via GET /templates

full_access
resend_get_templates_by_idREAD

Retrieve a single template via GET /templates/{id}

full_access
resend_get_topicsREAD

Retrieve a list of topics via GET /topics

full_access
resend_get_topics_by_idREAD

Retrieve a single topic via GET /topics/{id}

full_access
resend_get_webhooksREAD

Retrieve a list of webhooks via GET /webhooks

full_access
resend_get_webhooks_by_webhook_idREAD

Retrieve a single webhook via GET /webhooks/{webhook_id}

full_access
resend_get_webhooks_by_webhook_id_eventsREAD

Retrieve a list of webhook events via GET /webhooks/{webhook_id}/events

full_access
resend_get_webhooks_by_webhook_id_events_by_event_idREAD

Retrieve a single webhook event via GET /webhooks/{webhook_id}/events/{event_id}

full_access
resend_get_webhooks_by_webhook_id_events_by_event_id_attemptsREAD

Retrieve a list of webhook event attempts via GET /webhooks/{webhook_id}/events/{event_id}/attempts

full_access
resend_patch_api_keys_by_api_key_idWRITE

Update an existing API key via PATCH /api-keys/{api_key_id}

full_access
resend_patch_automations_by_automation_idWRITE

Update an automation via PATCH /automations/{automation_id}

full_access
resend_patch_broadcasts_by_idWRITE

Update an existing broadcast via PATCH /broadcasts/{id}

full_access
resend_patch_contact_properties_by_idWRITE

Update an existing contact property via PATCH /contact-properties/{id}

full_access
resend_patch_contacts_by_contact_id_topicsWRITE

Update topics for a contact via PATCH /contacts/{contact_id}/topics

full_access
resend_patch_contacts_by_idWRITE

Update a single contact by ID or email via PATCH /contacts/{id}

full_access
resend_patch_domains_by_domain_idWRITE

Update an existing domain via PATCH /domains/{domain_id}

full_access
resend_patch_emails_by_email_idWRITE

Update a single email via PATCH /emails/{email_id}

full_access
resend_patch_events_by_identifierWRITE

Update an event via PATCH /events/{identifier}

full_access
resend_patch_segments_by_idWRITE

Update an existing segment via PATCH /segments/{id}

full_access
resend_patch_templates_by_idWRITE

Update an existing template via PATCH /templates/{id}

full_access
resend_patch_topics_by_idWRITE

Update an existing topic via PATCH /topics/{id}

full_access
resend_patch_webhooks_by_webhook_idWRITE

Update an existing webhook via PATCH /webhooks/{webhook_id}

full_access
resend_post_api_keysWRITE

Create a new API key via POST /api-keys

full_access
resend_post_audiencesWRITE

Create a list of contacts via POST /audiences

full_access
resend_post_automationsWRITE

Create an automation via POST /automations

full_access
resend_post_automations_by_automation_id_duplicateWRITE

Duplicate an automation via POST /automations/{automation_id}/duplicate

full_access
resend_post_automations_by_automation_id_stopWRITE

Stop an automation via POST /automations/{automation_id}/stop

full_access
resend_post_broadcastsWRITE

Create a broadcast via POST /broadcasts

full_access
resend_post_broadcasts_by_id_cancelWRITE

Cancel a broadcast via POST /broadcasts/{id}/cancel

full_access
resend_post_broadcasts_by_id_sendWRITE

Send or schedule a broadcast via POST /broadcasts/{id}/send

emails:send
resend_post_contact_propertiesWRITE

Create a new contact property via POST /contact-properties

full_access
resend_post_contactsWRITE

Create a new contact via POST /contacts

full_access
resend_post_contacts_by_contact_id_segments_by_segment_idWRITE

Add a contact to a segment via POST /contacts/{contact_id}/segments/{segment_id}

full_access
resend_post_domainsWRITE

Create a new domain via POST /domains

full_access
resend_post_domains_by_domain_id_claim_verifyWRITE

Verify a domain claim via POST /domains/{domain_id}/claim/verify

full_access
resend_post_domains_by_domain_id_verifyWRITE

Verify an existing domain via POST /domains/{domain_id}/verify

full_access
resend_post_domains_claimWRITE

Claim a domain via POST /domains/claim

full_access
resend_post_emailsWRITE

Send an email via POST /emails

emails:send
resend_post_emails_batchWRITE

Trigger up to 100 batch emails at once via POST /emails/batch

full_access
resend_post_emails_by_email_id_cancelWRITE

Cancel the schedule of the e-mail via POST /emails/{email_id}/cancel

full_access
resend_post_emails_by_email_id_shareWRITE

Create a shareable link for a sent or received email via POST /emails/{email_id}/share

full_access
resend_post_eventsWRITE

Create an event via POST /events

full_access
resend_post_events_sendWRITE

Send an event via POST /events/send

full_access
resend_post_segmentsWRITE

Create a new segment via POST /segments

full_access
resend_post_suppressionsWRITE

Create a suppression via POST /suppressions

full_access
resend_post_suppressions_batch_addWRITE

Add up to 100 suppressions at once via POST /suppressions/batch/add

full_access
resend_post_suppressions_batch_removeWRITE

Remove up to 100 suppressions at once via POST /suppressions/batch/remove

full_access
resend_post_templatesWRITE

Create a template via POST /templates

full_access
resend_post_templates_by_id_duplicateWRITE

Duplicate a template via POST /templates/{id}/duplicate

full_access
resend_post_templates_by_id_publishWRITE

Publish a template via POST /templates/{id}/publish

full_access
resend_post_topicsWRITE

Create a new topic via POST /topics

full_access
resend_post_webhooksWRITE

Create a new webhook via POST /webhooks

full_access
resend_post_webhooks_by_webhook_id_events_by_event_id_replayWRITE

Replay a webhook event via POST /webhooks/{webhook_id}/events/{event_id}/replay

full_access

Put Resend behind one governed endpoint.

Same permissions, same audit trail, whatever else you connect next.