Managing Contacts
Learn how to view, update, and delete your Contacts with Resend.
All members of your team can view and manage existing Contact details directly in the Dashboard. You can also perform bulk actions (update Segments, subscribe to Topics) by selecting multiple Contacts.
To manage your Broadcast subscribers directly from your application, you can use the Contacts API to list, retrieve, update, and delete Contacts.
You can also manage Contacts using Resend CLI commands and MCP.
Dashboard Views
Section titled “Dashboard Views”The Resend Dashboard includes four different views of your Contacts:
- Contacts: individual email addresses
- Properties: custom properties for your Contacts
- Segments: groups of Contacts for your organization
- Topics: user-facing tools for managing email preferences

These areas provide different views of your marketing Contacts, and allow you to manage their properties and the emails they receive. You can also filter your list and perform bulk actions on multiple Contacts.
View Contacts
Section titled “View Contacts”See the name, Segments, status, and added date of all your Contacts from the Contacts Dashboard view. You can additionally see filtered views of your Contacts by Segment and Topic, and manage your custom properties.
Go to the **Contacts** Dashboard view.
Click on the Contact you want to view.
View the Contact details.
Each Contact includes the metadata associated with the Contact, as well as a full history of all marketing interactions with the Contact.

You can also retrieve a single Contact or list all Contacts via the API or SDKs, or use CLI commands to view your Contacts.
Edit Contacts
Section titled “Edit Contacts”You can edit any Contact property (excluding the email address), assign the Contact to a Segment or Topic, or unsubscribe the Contact from all Broadcasts.
Go to the **Contacts** Dashboard view.
Click on the **More options** button next to any Contact and then **Edit contact**.
Edit the Contact details and choose **Save**.
You can also update a Contact via the API or SDKs or with CLI commands to update your Contacts using the id or email of the Contact.
import { Resend } from 'resend';
const resend = new Resend('re_xxxxxxxxx');
const { data, error } = await resend.contacts.update({
id: 'e169aa45-1ecf-4183-9955-b1499d5701d3',
// or: email: 'acme@example.com',
unsubscribed: true,
});$resend = Resend::client('re_xxxxxxxxx');
// Update by contact id
$resend->contacts->update(
idOrEmail: 'e169aa45-1ecf-4183-9955-b1499d5701d3',
parameters: [
'unsubscribed' => true
]
);
// Update by contact email
$resend->contacts->update(
idOrEmail: 'acme@example.com',
parameters: [
'unsubscribed' => true
]
);import resend
resend.api_key = "re_xxxxxxxxx"
# Update by contact id
params: resend.Contacts.UpdateParams = {
"id": "e169aa45-1ecf-4183-9955-b1499d5701d3",
"unsubscribed": True,
}
resend.Contacts.update(params)
# Update by contact email
params: resend.Contacts.UpdateParams = {
"email": "acme@example.com",
"unsubscribed": True,
}
resend.Contacts.update(params)require "resend"
Resend.api_key = "re_xxxxxxxxx"
# Update by contact id
params = {
"id": "e169aa45-1ecf-4183-9955-b1499d5701d3",
"unsubscribed": true,
}
Resend::Contacts.update(params)
# Update by contact email
params = {
"email": "acme@example.com",
"unsubscribed": true,
}
Resend::Contacts.update(params)import "github.com/resend/resend-go/v4"
client := resend.NewClient("re_xxxxxxxxx")
// Update by contact id
params := &resend.UpdateContactRequest{
Id: "e169aa45-1ecf-4183-9955-b1499d5701d3",
Unsubscribed: true,
}
params.SetUnsubscribed(true)
client.Contacts.Update(params)
// Update by contact email
params = &resend.UpdateContactRequest{
Email: "acme@example.com",
Unsubscribed: true,
}
params.SetUnsubscribed(true)
client.Contacts.Update(params)use resend_rs::{types::ContactChanges, Resend, Result};
#[tokio::main]
async fn main() -> Result<()> {
let resend = Resend::new("re_xxxxxxxxx");
let changes = ContactChanges::new().with_unsubscribed(true);
// Update by contact id
let _contact = resend
.contacts
.update("e169aa45-1ecf-4183-9955-b1499d5701d3", changes.clone())
.await?;
// Update by contact email
let _contact = resend
.contacts
.update("acme@example.com", changes)
.await?;
Ok(())
}import com.resend.*;
import com.resend.core.exception.ResendException;
import com.resend.services.contacts.model.UpdateContactOptions;
import com.resend.services.contacts.model.UpdateContactResponseSuccess;
public class Main {
public static void main(String[] args) throws ResendException {
Resend resend = new Resend("re_xxxxxxxxx");
UpdateContactOptions params = UpdateContactOptions.builder()
.id("e169aa45-1ecf-4183-9955-b1499d5701d3") // or: .email("acme@example.com")
.unsubscribed(true)
.build();
UpdateContactResponseSuccess data = resend.contacts().update(params);
}
}using Resend;
IResend resend = ResendClient.Create( "re_xxxxxxxxx" ); // Or from DI
// By Id
await resend.ContactUpdateAsync(
contactId: new Guid( "e169aa45-1ecf-4183-9955-b1499d5701d3" ),
new ContactData()
{
FirstName = "Stevie",
LastName = "Wozniaks",
IsUnsubscribed = true,
}
);
// By Email
await resend.ContactUpdateByEmailAsync(
"acme@example.com",
new ContactData()
{
FirstName = "Stevie",
LastName = "Wozniaks",
IsUnsubscribed = true,
}
);# Update by contact id
curl -X PATCH 'https://api.resend.com/contacts/520784e2-887d-4c25-b53c-4ad46ad38100' \
-H 'Authorization: Bearer re_xxxxxxxxx' \
-H 'Content-Type: application/json' \
-d $'{
"unsubscribed": true
}'
# Update by contact email
curl -X PATCH 'https://api.resend.com/contacts/acme@example.com' \
-H 'Authorization: Bearer re_xxxxxxxxx' \
-H 'Content-Type: application/json' \
-d $'{
"unsubscribed": true
}'Bulk Actions
Section titled “Bulk Actions”You can perform actions on multiple Contacts at once in the Dashboard by selecting them from the Contacts view.
Go to the **Contacts** Dashboard view.
Select multiple Contacts by clicking the checkbox next to each Contact.
Click the **Edit** button in the bulk actions bar.
Choose an available action to apply to all Contacts.
You can also delete multiple Contacts at once by clicking the Delete button in the bulk actions bar.
Delete Contacts
Section titled “Delete Contacts”Go to the **Contacts** Dashboard view.
Click on the **More options** button next to any Contact and then **Delete contact**.
Confirm the deletion.
You can also delete a Contact via the API, SDKs, or CLI.
import { Resend } from 'resend';
const resend = new Resend('re_xxxxxxxxx');
const { data, error } = await resend.contacts.remove({
id: '520784e2-887d-4c25-b53c-4ad46ad38100',
// or: email: 'acme@example.com',
});$resend = Resend::client('re_xxxxxxxxx');
// Delete by contact id
$resend->contacts->remove(
idOrEmail: '520784e2-887d-4c25-b53c-4ad46ad38100'
);
// Delete by contact email
$resend->contacts->remove(
idOrEmail: 'acme@example.com'
);import resend
resend.api_key = "re_xxxxxxxxx"
# Delete by contact id
resend.Contacts.remove(
id="520784e2-887d-4c25-b53c-4ad46ad38100"
)
# Delete by contact email
resend.Contacts.remove(
email="acme@example.com"
)require "resend"
Resend.api_key = "re_xxxxxxxxx"
# Delete by contact id
Resend::Contacts.remove(
id: "520784e2-887d-4c25-b53c-4ad46ad38100"
)
# Delete by contact email
Resend::Contacts.remove(
email: "acme@example.com",
)import "github.com/resend/resend-go/v4"
client := resend.NewClient("re_xxxxxxxxx")
// Delete by contact id
client.Contacts.Remove(&resend.RemoveContactOptions{
Id: "520784e2-887d-4c25-b53c-4ad46ad38100",
})
// Delete by contact email
client.Contacts.Remove(&resend.RemoveContactOptions{
Id: "acme@example.com",
})use resend_rs::{Resend, Result};
#[tokio::main]
async fn main() -> Result<()> {
let resend = Resend::new("re_xxxxxxxxx");
// Delete by contact id
let _deleted = resend
.contacts
.delete("520784e2-887d-4c25-b53c-4ad46ad38100")
.await?;
// Delete by contact email
let _deleted = resend
.contacts
.delete("acme@example.com")
.await?;
Ok(())
}import com.resend.*;
import com.resend.core.exception.ResendException;
import com.resend.services.contacts.model.RemoveContactOptions;
public class Main {
public static void main(String[] args) throws ResendException {
Resend resend = new Resend("re_xxxxxxxxx");
// Delete by contact id
resend.contacts().remove(RemoveContactOptions.builder()
.id("520784e2-887d-4c25-b53c-4ad46ad38100")
.build());
// Delete by contact email
resend.contacts().remove(RemoveContactOptions.builder()
.email("acme@example.com")
.build());
}
}using Resend;
IResend resend = ResendClient.Create( "re_xxxxxxxxx" ); // Or from DI
// By Id
await resend.ContactDeleteAsync(
contactId: new Guid( "520784e2-887d-4c25-b53c-4ad46ad38100" )
);
// By Email
await resend.ContactDeleteByEmailAsync(
"acme@example.com"
);# Delete by contact id
curl -X DELETE 'https://api.resend.com/contacts/520784e2-887d-4c25-b53c-4ad46ad38100' \
-H 'Authorization: Bearer re_xxxxxxxxx'
# Delete by contact email
curl -X DELETE 'https://api.resend.com/contacts/acme@example.com' \
-H 'Authorization: Bearer re_xxxxxxxxx'API Reference
Section titled “API Reference”For complete API documentation, see the Contacts API reference.