---
title: Update Registration
---

[Skip to content](#%5Ftop) 

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

[Registrar Sandbox](https://developers.cloudflare.com/api/python/resources/registrar%5Fsandbox)

[Registrations](https://developers.cloudflare.com/api/python/resources/registrar%5Fsandbox/subresources/registrations)

Copy Markdown

Open in **Claude**

Open in **ChatGPT**

Open in **Cursor**

---

**Copy Markdown**

**View as Markdown**

# Update Registration

registrar\_sandbox.registrations.edit(strdomain\_name, RegistrationEditParams\*\*kwargs)  \-> [RegistrationEditResponse](https://developers.cloudflare.com/api/python/resources/registrar%5Fsandbox#%28resource%29%20registrar%5Fsandbox.registrations%20%3E%20%28model%29%20registration%5Fedit%5Fresponse%20%3E%20%28schema%29)

PATCH/accounts/{account\_id}/registrar-sandbox/registrations/{domain\_name}

Updates an existing domain registration.

By default, the server holds the connection for a bounded, server-defined amount of time while the update completes. Most updates finish within this window and return `200 OK` with a completed workflow status.

If the update is still processing after this synchronous wait window, the server returns `202 Accepted`. Poll the URL in `links.self` to track progress.

To skip the wait and receive an immediate `202`, send `Prefer: respond-async`.

This endpoint currently supports updating `auto_renew` only.

##### Security

API Token

The preferred authorization scheme for interacting with the Cloudflare API. [Create a token](https://developers.cloudflare.com/fundamentals/api/get-started/create-token/).

**Example:**`Authorization: Bearer Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY`

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`

##### ParametersExpand Collapse 

account\_id: str

Identifier.

maxLength32

domain\_name: str

Provides a fully qualified domain name (FQDN), including the extension (e.g., `example.com`, `mybrand.app`). The domain name uniquely identifies a registration. Cloudflare permits only one registration per domain, making the domain name a natural idempotency key for registration requests.

auto\_renew: Optional\[[bool](https://developers.cloudflare.com/api/python/resources/registrar%5Fsandbox/subresources/registrations/methods/edit#%28resource%29%20registrar%5Fsandbox.registrations%20%3E%20%28method%29%20edit%20%3E%20%28params%29%20default%20%3E%20%28param%29%20auto%5Frenew%20%3E%20%28schema%29)\]

Enable or disable automatic renewal. Setting this field to `true` authorizes Cloudflare to charge the account’s default payment method up to 30 days before domain expiry to renew the domain automatically. Renewal pricing may change over time based on registry pricing.

prefer: Optional\[Literal\["respond-async"\]\]

##### ReturnsExpand Collapse 

class RegistrationEditResponse: …

Status of an async registration workflow.

completed: bool

Indicates whether the workflow reached a terminal state. A `succeeded` or `failed` state returns `true`; `pending`, `in_progress`, `action_required`, and `blocked` return `false`.

created\_at: datetime

formatdate-time

links: Links

self: str

URL to this status resource.

resource: Optional\[str\]

URL to the domain resource.

state: Literal\["pending", "in\_progress", "action\_required", 3 more\]

Describes the workflow lifecycle state.

* `pending`: The workflow awaits processing.
* `in_progress`: Processing started. Continue polling `links.self`. An internal deadline limits the duration of this state.
* `action_required`: The workflow pauses for user action. See `context.action` for details. Stop automated polling until the user completes the required action.
* `blocked`: A third party, such as the domain extension’s registry or a losing registrar, prevents progress. Continue polling because the block may resolve when the third party responds.
* `succeeded`: Terminal state. The operation completed successfully. `completed` equals `true`. For registrations, `context.registration` contains the resulting registration resource.
* `failed`: Terminal state. The operation failed. `completed` equals `true`. See `error.code` and `error.message` for the reason. Require user review before retrying.

One of the following:

"pending"

"in\_progress"

"action\_required"

"blocked"

"succeeded"

"failed"

updated\_at: datetime

formatdate-time

context: Optional\[Dict\[str, object\]\]

Provides workflow-specific data.

For domain-centric workflows, `context.domain_name` identifies the workflow subject.

error: Optional\[Error\]

Provides error details when a workflow reaches the `failed` state. The workflow type (registration, update, etc.) and underlying registry response determine the specific codes and messages. Workflow error codes differ from immediate HTTP error `errors[].code` values in non-2xx responses. Surface `error.message` to the user for context.

code: str

Machine-readable error code identifying the failure reason.

message: str

Human-readable explanation of the failure. May include registry-specific details.

### Update Registration

Python

HTTPHTTP

TypeScriptTypeScript

PythonPython

GoGo

TerraformTerraform

```
import os
from cloudflare import Cloudflare

client = Cloudflare(
    api_token=os.environ.get("CLOUDFLARE_API_TOKEN"),  # This is the default and can be omitted
)
response = client.registrar_sandbox.registrations.edit(
    domain_name="example.com",
    account_id="023e105f4ecef8ad9ca31a8372d0c353",
    auto_renew=False,
)
print(response.completed)
```

200 example

202 example

4XX example

4XX example

```
{
  "errors": [],
  "messages": [],
  "result": {
    "completed": true,
    "context": {
      "domain_name": "example.com",
      "registration": {
        "auto_renew": true,
        "created_at": "2025-01-15T10:00:00Z",
        "domain_name": "example.com",
        "expires_at": "2026-01-15T10:00:00Z",
        "locked": true,
        "privacy_mode": "redaction",
        "status": "active"
      }
    },
    "created_at": "2025-10-27T10:00:00Z",
    "links": {
      "resource": "/accounts/abc/registrar/registrations/example.com",
      "self": "/accounts/abc/registrar/registrations/example.com/update-status"
    },
    "state": "succeeded",
    "updated_at": "2025-10-27T10:00:02Z"
  },
  "success": true
}
```

```
{
  "errors": [],
  "messages": [],
  "result": {
    "completed": false,
    "context": {
      "domain_name": "example.com"
    },
    "created_at": "2025-10-27T10:00:00Z",
    "links": {
      "resource": "/accounts/abc/registrar/registrations/example.com",
      "self": "/accounts/abc/registrar/registrations/example.com/update-status"
    },
    "state": "in_progress",
    "updated_at": "2025-10-27T10:00:10Z"
  },
  "success": true
}
```

```
{
  "errors": [
    {
      "code": 10000,
      "message": "Domain not found"
    }
  ],
  "messages": [],
  "result": null,
  "success": false
}
```

```
{
  "errors": [
    {
      "code": 10000,
      "message": "Must be a boolean if present",
      "source": {
        "pointer": "/auto_renew"
      }
    }
  ],
  "messages": [],
  "result": null,
  "success": false
}
```

##### Returns Examples

200 example

202 example

4XX example

4XX example

```
{
  "errors": [],
  "messages": [],
  "result": {
    "completed": true,
    "context": {
      "domain_name": "example.com",
      "registration": {
        "auto_renew": true,
        "created_at": "2025-01-15T10:00:00Z",
        "domain_name": "example.com",
        "expires_at": "2026-01-15T10:00:00Z",
        "locked": true,
        "privacy_mode": "redaction",
        "status": "active"
      }
    },
    "created_at": "2025-10-27T10:00:00Z",
    "links": {
      "resource": "/accounts/abc/registrar/registrations/example.com",
      "self": "/accounts/abc/registrar/registrations/example.com/update-status"
    },
    "state": "succeeded",
    "updated_at": "2025-10-27T10:00:02Z"
  },
  "success": true
}
```

```
{
  "errors": [],
  "messages": [],
  "result": {
    "completed": false,
    "context": {
      "domain_name": "example.com"
    },
    "created_at": "2025-10-27T10:00:00Z",
    "links": {
      "resource": "/accounts/abc/registrar/registrations/example.com",
      "self": "/accounts/abc/registrar/registrations/example.com/update-status"
    },
    "state": "in_progress",
    "updated_at": "2025-10-27T10:00:10Z"
  },
  "success": true
}
```

```
{
  "errors": [
    {
      "code": 10000,
      "message": "Domain not found"
    }
  ],
  "messages": [],
  "result": null,
  "success": false
}
```

```
{
  "errors": [
    {
      "code": 10000,
      "message": "Must be a boolean if present",
      "source": {
        "pointer": "/auto_renew"
      }
    }
  ],
  "messages": [],
  "result": null,
  "success": false
}
```