---
title: Update Registration
---

[Skip to content](#%5Ftop) 

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

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

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

Copy Markdown

Open in **Claude**

Open in **ChatGPT**

Open in **Cursor**

---

**Copy Markdown**

**View as Markdown**

# Update Registration

client.RegistrarSandbox.Registrations.Edit(ctx, domainName, params) (\*[RegistrationEditResponse](https://developers.cloudflare.com/api/go/resources/registrar%5Fsandbox#%28resource%29%20registrar%5Fsandbox.registrations%20%3E%20%28model%29%20RegistrationEditResponse%20%3E%20%28schema%29), error)

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 

domainName string

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.

params RegistrationEditParams

AccountID param.Field\[string\]

Path param: Identifier.

maxLength32

AutoRenew param.Field\[bool\]Optional

Body param: 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 param.Field\[[RegistrationEditParamsPrefer](https://developers.cloudflare.com/api/go/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%20Prefer%20%3E%20%28schema%29)\]Optional

Header param: Set to `respond-async` to receive an immediate `202 Accepted` without waiting for the operation to complete (RFC 7240).

const RegistrationEditParamsPreferRespondAsync [RegistrationEditParamsPrefer](https://developers.cloudflare.com/api/go/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%20Prefer%20%3E%20%28schema%29) \= "respond-async"

##### ReturnsExpand Collapse 

type RegistrationEditResponse struct{…}

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`.

CreatedAt Time

formatdate-time

Links RegistrationEditResponseLinks

Self string

URL to this status resource.

Resource stringOptional

URL to the domain resource.

State RegistrationEditResponseState

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:

const RegistrationEditResponseStatePending RegistrationEditResponseState \= "pending"

const RegistrationEditResponseStateInProgress RegistrationEditResponseState \= "in\_progress"

const RegistrationEditResponseStateActionRequired RegistrationEditResponseState \= "action\_required"

const RegistrationEditResponseStateBlocked RegistrationEditResponseState \= "blocked"

const RegistrationEditResponseStateSucceeded RegistrationEditResponseState \= "succeeded"

const RegistrationEditResponseStateFailed RegistrationEditResponseState \= "failed"

UpdatedAt Time

formatdate-time

Context map\[string, unknown\]Optional

Provides workflow-specific data.

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

Error RegistrationEditResponseErrorOptional

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 string

Machine-readable error code identifying the failure reason.

Message string

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

### Update Registration

Go

HTTPHTTP

TypeScriptTypeScript

PythonPython

GoGo

TerraformTerraform

```
package main

import (
  "context"
  "fmt"

  "github.com/cloudflare/cloudflare-go"
  "github.com/cloudflare/cloudflare-go/option"
  "github.com/cloudflare/cloudflare-go/registrar_sandbox"
)

func main() {
  client := cloudflare.NewClient(
    option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"),
  )
  response, err := client.RegistrarSandbox.Registrations.Edit(
    context.TODO(),
    "example.com",
    registrar_sandbox.RegistrationEditParams{
      AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"),
    },
  )
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", 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
}
```