# Update address whitelist mail settings

## API Overview

Mail Settings instruct SendGrid to apply specific settings to every email that you send over [SendGrid's v3 API](/docs/sendgrid/api-reference/mail-send/mail-send) or [SMTP Relay](/docs/sendgrid/for-developers/sending-email/building-an-x-smtpapi-header/). These settings include how to embed a custom footer, how to manage blocks, spam, and bounces, and more.

For a full list of Twilio SendGrid's Mail Settings, and what each one does, see our [Mail Settings documentation](/docs/sendgrid/ui/account-and-settings/mail/).

You can also manage your Mail Settings in the [Twilio SendGrid App](https://app.sendgrid.com/settings/mail_settings)

## Operation overview

```json
{"path":"https://api.sendgrid.com/v3/mail_settings/address_whitelist","method":"patch","servers":[{"url":"https://api.sendgrid.com","description":"for global users and subusers"},{"url":"https://api.eu.sendgrid.com","description":"for EU regional subusers"}]}
```

**This endpoint allows you to update your current email address whitelist settings.**

For Regional Subusers - Utilizing this feature for Regional (EU) subusers will cause customer personal information to be stored outside of the EU.

You can select whether or not this setting should be enabled by assigning the `enabled` field a `true` or `false` value.

Passing only the `enabled` field to this endpoint will not alter your current `list` of whitelist entries. However, any modifications to your `list` of entries will overwrite the entire list. For this reason, you must included all existing entries you wish to retain in your `list` in addition to any new entries you intend to add. To remove one or more `list` entries, pass a `list` with only the entries you wish to retain.

You should not add generic domains such as `gmail.com` or `yahoo.com`  in your `list` because your emails will not honor recipients' unsubscribes. This may cause a legal violation of [CAN-SPAM](/docs/sendgrid/glossary/can-spam/) and could damage your sending reputation.

The Address Whitelist setting allows you to specify email addresses or domains for which mail should never be suppressed.

For example, if you own the domain `example.com`, and one or more of your recipients use `email@example.com` addresses, placing `example.com` in the address whitelist setting instructs Twilio SendGrid to ignore all bounces, blocks, and unsubscribes logged for that domain. In other words, all bounces, blocks, and unsubscribes will still be sent to `example.com` as if they were sent under normal sending conditions.

## Operation details

### Authentication

API Key

### Headers

```json
[{"in":"header","name":"Authorization","required":true,"default":"Bearer <<YOUR_API_KEY_HERE>>","schema":{"type":"string"}},{"name":"on-behalf-of","in":"header","description":"The `on-behalf-of` header allows you to make API calls from a parent account on behalf of the parent's Subusers or customer accounts. You will use the parent account's API key when using this header. When making a call on behalf of a customer account, the property value should be \"account-id\" followed by the customer account's ID (e.g., `on-behalf-of: account-id <account-id>`). When making a call on behalf of a Subuser, the property value should be the Subuser's username (e.g., `on-behalf-of: <subuser-username>`). See [**On Behalf Of**](/docs/sendgrid/api-reference/how-to-use-the-sendgrid-v3-api/on-behalf-of) for more information.","required":false,"schema":{"type":"string"},"refName":"#/components/parameters/OnBehalfOf","modelName":"__components_parameters_OnBehalfOf"}]
```

### Request body

```json
{"schema":{"type":"object","example":{"enabled":true,"list":["email1@example.com","example.com"]},"properties":{"enabled":{"type":"boolean","description":"Indicates if your email address whitelist is enabled."},"list":{"type":"array","description":"Either a single email address that you want whitelisted or a domain, for which all email addresses belonging to this domain will be whitelisted.","items":{"type":"string"}}}},"encodingType":"application/json"}
```

### Responses

```json
[{"responseCode":"200","schema":{"description":"","content":{"application/json":{"schema":{"title":"Mail Settings: Address Whitelabel","type":"object","example":{"enabled":true,"list":["email1@example.com","example.com"]},"refName":"MailSettingsAddressWhitelabel200","modelName":"MailSettingsAddressWhitelabel200","properties":{"enabled":{"type":"boolean","description":"Indicates if you have an email address whitelist enabled. "},"list":{"type":"array","description":"All email addresses that are currently on the whitelist.","items":{"type":"string"}}}},"examples":{"response":{"value":{"enabled":true,"list":["email1@example.com"]}}}}}}},{"responseCode":"400","schema":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"error_id":{"type":"string","description":"The ID associated with the error."},"field":{"description":"The field that generated the error.","nullable":true,"type":"string"},"message":{"type":"string","description":"The error message."},"parameter":{"type":"string"}}}}}}}},"refName":"#/components/responses/MailSettingsError400","modelName":"__components_responses_MailSettingsError400"}},{"responseCode":"401","schema":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"error_id":{"type":"string","description":"The ID associated with the error."},"field":{"description":"The field that generated the error.","nullable":true,"type":"string"},"message":{"type":"string","description":"The error message."},"parameter":{"type":"string"}}}}}}}},"refName":"#/components/responses/MailSettingsError401","modelName":"__components_responses_MailSettingsError401"}},{"responseCode":"403","schema":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"error_id":{"type":"string","description":"The ID associated with the error."},"field":{"description":"The field that generated the error.","nullable":true,"type":"string"},"message":{"type":"string","description":"The error message."},"parameter":{"type":"string"}}}}}}}},"refName":"#/components/responses/MailSettingsError403","modelName":"__components_responses_MailSettingsError403"}},{"responseCode":"404","schema":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"error_id":{"type":"string","description":"The ID associated with the error."},"field":{"description":"The field that generated the error.","nullable":true,"type":"string"},"message":{"type":"string","description":"The error message."},"parameter":{"type":"string"}}}}}}}},"refName":"#/components/responses/MailSettingsError404","modelName":"__components_responses_MailSettingsError404"}},{"responseCode":"500","schema":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"error_id":{"type":"string","description":"The ID associated with the error."},"field":{"description":"The field that generated the error.","nullable":true,"type":"string"},"message":{"type":"string","description":"The error message."},"parameter":{"type":"string"}}}}}}}},"refName":"#/components/responses/MailSettingsError500","modelName":"__components_responses_MailSettingsError500"}}]
```

Update address whitelist mail settings

```js
const client = require("@sendgrid/client");
client.setApiKey(process.env.SENDGRID_API_KEY);

const data = {
  enabled: true,
  list: ["email1@example.com", "example.com"],
};

const request = {
  url: `/v3/mail_settings/address_whitelist`,
  method: "PATCH",
  body: data,
};

client
  .request(request)
  .then(([response, body]) => {
    console.log(response.statusCode);
    console.log(response.body);
  })
  .catch((error) => {
    console.error(error);
  });
```

```python
import os
from sendgrid import SendGridAPIClient


sg = SendGridAPIClient(os.environ.get("SENDGRID_API_KEY"))

data = {"enabled": True, "list": ["email1@example.com", "example.com"]}

response = sg.client.mail_settings.address_whitelist.patch(request_body=data)

print(response.status_code)
print(response.body)
print(response.headers)
```

```csharp
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using SendGrid;

public class Program {
    public static async Task Main() {
        string apiKey = Environment.GetEnvironmentVariable("SENDGRID_API_KEY");
        var client = new SendGridClient(apiKey);

        var data =
            @"{
            ""enabled"": true,
            ""list"": [
                ""email1@example.com"",
                ""example.com""
            ]
        }";

        var response = await client.RequestAsync(
            method: SendGridClient.Method.PATCH,
            urlPath: "mail_settings/address_whitelist",
            requestBody: data);

        Console.WriteLine(response.StatusCode);
        Console.WriteLine(response.Body.ReadAsStringAsync().Result);
        Console.WriteLine(response.Headers.ToString());
    }
}
```

```java
import com.sendgrid.*;
import java.io.IOException;
import org.json.JSONObject;
import java.util.HashMap;
import java.util.Arrays;

public class Example {
    public static void main(String[] args) throws IOException {
        try {
            SendGrid sg = new SendGrid(System.getenv("SENDGRID_API_KEY"));
            Request request = new Request();
            request.setMethod(Method.PATCH);
            request.setEndpoint("/mail_settings/address_whitelist");
            request.setBody(new JSONObject(new HashMap<String, Object>() {
                {
                    put("enabled", true);
                    put("list", Arrays.asList("email1@example.com", "example.com"));
                }
            }).toString());
            Response response = sg.api(request);
            System.out.println(response.getStatusCode());
            System.out.println(response.getBody());
            System.out.println(response.getHeaders());
        } catch (IOException ex) {
            throw ex;
        }
    }
}
```

```go
package main

import (
	"fmt"
	"github.com/sendgrid/sendgrid-go"
	"os"
)

func main() {
	apiKey := os.Getenv("SENDGRID_API_KEY")
	host := "https://api.sendgrid.com"
	request := sendgrid.GetRequest(apiKey, "/v3/mail_settings/address_whitelist", host)
	request.Method = "PATCH"
	request.Body = []byte(`{
  "enabled": true,
  "list": [
    "email1@example.com",
    "example.com"
  ]
}`)
	response, err := sendgrid.API(request)
	if err != nil {
		fmt.Println(err.Error())
		os.Exit(1)
	} else {
		fmt.Println(response.StatusCode)
		fmt.Println(response.Body)
		fmt.Println(response.Headers)
	}
}
```

```php
<?php
// Uncomment the next line if you're using a dependency loader (such as Composer) (recommended)
// require 'vendor/autoload.php';

// Uncomment next line if you're not using a dependency loader (such as Composer)
// require_once '<PATH TO>/sendgrid-php.php';

$apiKey = getenv("SENDGRID_API_KEY");
$sg = new \SendGrid($apiKey);
$request_body = json_decode('{
    "enabled": true,
    "list": [
        "email1@example.com",
        "example.com"
    ]
}');

try {
    $response = $sg->client
        ->mail_settings()
        ->address_whitelist()
        ->patch($request_body);
    print $response->statusCode() . "\n";
    print_r($response->headers());
    print $response->body() . "\n";
} catch (Exception $ex) {
    echo "Caught exception: " . $ex->getMessage();
}
```

```ruby
require 'sendgrid-ruby'
include SendGrid

sg = SendGrid::API.new(api_key: ENV['SENDGRID_API_KEY'])
data = JSON.parse('{
  "enabled": true,
  "list": [
    "email1@example.com",
    "example.com"
  ]
}')

response = sg.client.mail_settings.address_whitelist.patch(request_body: data)
puts response.status_code
puts response.headers
puts response.body
```

```bash
curl -X PATCH "https://api.sendgrid.com/v3/mail_settings/address_whitelist" \
--header "Authorization: Bearer $SENDGRID_API_KEY" \
--header "Content-Type: application/json" \
--data '{"enabled": true, "list": ["email1@example.com", "example.com"]}'
```
