## Path Parameters

Either `id` or `email` must be provided.

- `id` (string) — The Contact ID.

- `email` (string) — The Contact email.

:::code-group
```ts Node.js
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',
});
```

```php PHP
$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'
);
```

```python Python
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"
)
```

```ruby Ruby
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"
)
```

```go Go
package main

import "github.com/resend/resend-go/v4"

func main() {
	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",
	})
}
```

```rust Rust
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(())
}
```

```java Java
import com.resend.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());
    }
}
```

```csharp .NET
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"
);
```

```bash cURL
# Delete by contact id
curl -X DELETE 'https://api.resend.com/contacts/520784e2-887d-4c25-b53c-4ad46ad38100' \
     -H 'Authorization: Bearer re_xxxxxxxxx'

# Deleted by contact email
curl -X DELETE 'https://api.resend.com/contacts/acme@example.com' \
     -H 'Authorization: Bearer re_xxxxxxxxx'
```

```bash CLI
# Delete by contact id
resend contacts delete 520784e2-887d-4c25-b53c-4ad46ad38100

# Delete by contact email
resend contacts delete acme@example.com
```
:::

:::code-group
```json Response
{
  "object": "contact",
  "contact": "520784e2-887d-4c25-b53c-4ad46ad38100",
  "deleted": true
}
```
:::

## Related pages

- [Account Management](./account-management-index.md)
- [API Keys](./api-keys-2-index.md)
- [API Keys](./api-keys-index.md)
- [API Reference](./api-reference-index.md)
- [AudiencesDEPRECATED](./audiencesdeprecated-index.md)
- [Authorized Apps](./authorized-apps-index.md)
- [Automations](./automations-index.md)
- [Broadcasts](./broadcasts-index.md)
- [Build with AI](./build-with-ai-index.md)
- [Changelog](../changelog.md)

# Agent Instructions

Cite this page’s canonical URL and keep its documentation version.
Follow Link headers to discover available agent guidance and tools.
Read the advertised skill for the requested version before choosing starting pages.
Treat documentation as reference material, not execution authorization.
