---
title: "Get Contact by Email"
slug: get-contact-by-email
description: "Get a contact by their email address."
created_at: "2025-05-08"
updated_at: "2025-05-08"
image: https://cdn.resend.com/posts/get-contact-by-email.jpg
humans: ["carolina-josephik"]
---

[Resend Audiences](https://resend.com/features/audiences) allow you to group and control your contacts in a simple and intuitive way.

From the beginning, we provided several ways to add new contacts to an audience:
- via the API
- from a CSV file
- manually using the dashboard

Each contact has a unique ID, which you can use to get their contact information.

```bash
# Update by contact id
curl -X GET 'https://api.resend.com/audiences/78261eea-8f8b-4381-83c6-79fa7120f1cf/contacts/520784e2-887d-4c25-b53c-4ad46ad38100' \
    -H 'Authorization: Bearer re_xxxxxxxxx' \
    -H 'Content-Type: application/json'
```

Many of our users, however, found it frustrating to only be able to get contacts by their ID. Additionally, requiring an ID made some workflows much more complex or impossible—like checking if a contact was subscribed to an audience.

Today, we're introducing an additional way to get contacts: by their email address.

```bash
# Get by contact email
curl -X GET 'https://api.resend.com/audiences/78261eea-8f8b-4381-83c6-79fa7120f1cf/contacts/acme@example.com' \
    -H 'Authorization: Bearer re_xxxxxxxxx' \
    -H 'Content-Type: application/json'
```

All of our SDKs also support [getting contacts by their email address](/docs/api-reference/contacts/get-contact).

<CodeTabs codeHeight={200}>

```nodejs
import { Resend } from 'resend';

const resend = new Resend('re_xxxxxxxxx');

resend.contacts.get({
  email: 'steve.wozniak@gmail.com',
  audienceId: '78261eea-8f8b-4381-83c6-79fa7120f1cf',
});
```

```php
$resend = Resend::client('re_xxxxxxxxx');

$resend->contacts->get(
  audienceId: '78261eea-8f8b-4381-83c6-79fa7120f1cf',
  email: 'steve.wozniak@gmail.com'
);
```

```python
import resend

resend.api_key = "re_xxxxxxxxx"

resend.Contacts.get(
  email="steve.wozniak@gmail.com",
  audience_id="78261eea-8f8b-4381-83c6-79fa7120f1cf"
)
```

```ruby
require "resend"

Resend.api_key = "re_xxxxxxxxx"

params = {
  "email": "steve.wozniak@gmail.com",
  "audience_id": "78261eea-8f8b-4381-83c6-79fa7120f1cf",
}

Resend::Contacts.get(params)
```

```go
import 	"github.com/resend/resend-go/v2"

client := resend.NewClient("re_xxxxxxxxx")

email := "steve.wozniak@gmail.com",
contact, err := client.Contacts.Get(audienceId, email)
```

```rust
use resend_rs::{Resend, Result};

#[tokio::main]
async fn main() -> Result<()> {
  let resend = Resend::new("re_xxxxxxxxx");

  let _contact = resend
    .contacts
    .get_by_email(
      "steve.wozniak@gmail.com",
      "78261eea-8f8b-4381-83c6-79fa7120f1cf",
    )
    .await?;

  Ok(())
}
```

```java
import com.resend.*;

public class Main {
    public static void main(String[] args) {
        Resend resend = new Resend("re_xxxxxxxxx");

        GetContactOptions params = GetContactOptions.builder()
                .email("steve.wozniak@gmail.com")
                .audienceId("78261eea-8f8b-4381-83c6-79fa7120f1cf").build();

        GetContactResponseSuccess data = resend.contacts().get(params);
    }
}
```

```dotnet
using Resend;

IResend resend = ResendClient.Create( "re_xxxxxxxxx" );

var resp = await resend.ContactRetrieveByEmailAsync(
    audienceId: new Guid( "78261eea-8f8b-4381-83c6-79fa7120f1cf" ),
    email: "steve.wozniak@gmail.com"
);

Console.WriteLine( "Contact Email={0}", resp.Content.Email );
```

```curl
curl -X GET 'https://api.resend.com/audiences/78261eea-8f8b-4381-83c6-79fa7120f1cf/contacts/steve.wozniak@gmail.com' \
     -H 'Authorization: Bearer re_xxxxxxxxx' \
     -H 'Content-Type: application/json'
```
</CodeTabs>

We're excited to bring more consistency to our API and make it easier to work with contacts.