---
title: Update Email Routing settings
---

[Skip to content](#%5Ftop) 

[API Reference](https://developers.cloudflare.com/api/python)

[Email Routing](https://developers.cloudflare.com/api/python/resources/email%5Frouting)

Copy Markdown

Open in **Claude**

Open in **ChatGPT**

Open in **Cursor**

---

**Copy Markdown**

**View as Markdown**

# Update Email Routing settings

email\_routing.update(EmailRoutingUpdateParams\*\*kwargs)  \-> [Settings](https://developers.cloudflare.com/api/python/resources/email%5Frouting#%28resource%29%20email%5Frouting%20%3E%20%28model%29%20settings%20%3E%20%28schema%29)

PUT/zones/{zone\_id}/email/routing

Update the settings for your Email Routing zone.

##### Security

API Email + API Key

The previous authorization scheme for interacting with the Cloudflare API, used in conjunction with a Global API key.

**Example:**`X-Auth-Email: user@example.com`

The previous authorization scheme for interacting with the Cloudflare API. When possible, use API tokens instead of Global API keys.

**Example:**`X-Auth-Key: 144c9defac04969c7bfad8efaa8ea194`

##### Accepted Permissions (at least one required)

`Zone Settings Write`

##### ParametersExpand Collapse 

zone\_id: str

Identifier.

maxLength32

enabled: Optional\[Literal\[true, false\]\]

State of your zone Email Routing settings. No-op on this endpoint - use `POST`/`DELETE /zones/{zone_id}/email/routing/dns`.

One of the following:

true

false

skip\_wizard: Optional\[Literal\[true, false\]\]

Flag to check if the user skipped the configuration wizard.

One of the following:

true

false

support\_subaddress: Optional\[Literal\[true, false\]\]

Whether subaddressing (plus-addressing) is honored when matching incoming mail against routing rules.

One of the following:

true

false

##### ReturnsExpand Collapse 

class Settings: …

id: str

Email Routing settings identifier.

maxLength32

enabled: Literal\[true, false\]

State of the zone settings for Email Routing.

One of the following:

true

false

name: str

Domain of your zone.

created: Optional\[datetime\]

The date and time the settings have been created.

formatdate-time

modified: Optional\[datetime\]

The date and time the settings have been modified.

formatdate-time

skip\_wizard: Optional\[Literal\[true, false\]\]

Flag to check if the user skipped the configuration wizard.

One of the following:

true

false

status: Optional\[Literal\["ready", "unconfigured", "misconfigured", 2 more\]\]

Show the state of your account, and the type or configuration error.

One of the following:

"ready"

"unconfigured"

"misconfigured"

"misconfigured/locked"

"unlocked"

support\_subaddress: Optional\[Literal\[true, false\]\]

Whether subaddressing (plus-addressing) is honored when matching incoming mail against routing rules.

One of the following:

true

false

Deprecatedtag: Optional\[str\]

Email Routing settings tag. (Deprecated, replaced by Email Routing settings identifier)

maxLength32

### Update Email Routing settings

Python

HTTPHTTP

TypeScriptTypeScript

PythonPython

GoGo

TerraformTerraform

```
import os
from cloudflare import Cloudflare

client = Cloudflare(
    api_email=os.environ.get("CLOUDFLARE_EMAIL"),  # This is the default and can be omitted
    api_key=os.environ.get("CLOUDFLARE_API_KEY"),  # This is the default and can be omitted
)
settings = client.email_routing.update(
    zone_id="023e105f4ecef8ad9ca31a8372d0c353",
)
print(settings.id)
```

200 example

```
{
  "errors": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "messages": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "success": true,
  "result": {
    "id": "75610dab9e69410a82cf7e400a09ecec",
    "enabled": true,
    "name": "example.net",
    "created": "2014-01-02T02:20:00Z",
    "modified": "2014-01-02T02:20:00Z",
    "skip_wizard": true,
    "status": "ready",
    "support_subaddress": true,
    "tag": "75610dab9e69410a82cf7e400a09ecec"
  }
}
```

##### Returns Examples

200 example

```
{
  "errors": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "messages": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "success": true,
  "result": {
    "id": "75610dab9e69410a82cf7e400a09ecec",
    "enabled": true,
    "name": "example.net",
    "created": "2014-01-02T02:20:00Z",
    "modified": "2014-01-02T02:20:00Z",
    "skip_wizard": true,
    "status": "ready",
    "support_subaddress": true,
    "tag": "75610dab9e69410a82cf7e400a09ecec"
  }
}
```