# Email subscription

Since v4 of the Batch Web SDK, you can:

* Add and remove email address from a user profile. The profile will automatically be created if needed.
* Edit a profile's marketing subscription.

{% hint style="info" %}
In order to set an email address and subscription status on a profile, the [creation of a project](https://doc.batch.com/getting-started/other/overview-guides/98-send-emails-with-batch#create-a-project) is required. If no project is set up, any calls made for these actions will be ignored.
{% endhint %}

Here is how to set an email with a marketing subscription:

{% tabs %}
{% tab title="JavaScript (ES8)" %}

```javascript
batchSDK(async api => {
    const profile = await api.profile();
    // This requires to have a custom user ID registered 
    await profile.identify({customId: "custom_user_id"});
    await profile.edit(editor => {
      editor
        .setEmailAddress("john.doe@batch.com") // Null to erase. Addresses must be valid.
        .setEmailMarketingSubscription("subscribed") // Or "unsubscribed"
    })
});
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
batchSDK(api => {
    api.profile().then(profile => {
      profile.identify({customId: "custom_user_id"}).then(profile => {
        profile.edit(editor => {
          editor
            .setEmailAddress("john.doe@batch.com") // Null to erase. Addresses must be valid.
            .setEmailMarketingSubscription("subscribed") // Or "unsubscribed"
        })
      })
    })
});
```

{% endtab %}
{% endtabs %}
