Domains

Renew a domain

POST
/v1/domains/{id}/renew

Adds years to the end of the registration and charges your wallet, including WHOIS privacy for those years while it is on. A promotion only reaches a renewal when it is set to; an introductory offer the domain was first bought on does not.

Authorization

apiKey
headerAuthorizationBearer <token>

An API key from the Developers page. rhq_test_ keys reach the sandbox, rhq_live_ keys the live side.

Path Parameters

id*string

Header Parameters

Idempotency-Key?string

A value unique to this request, such as a UUID. A retry with the same key within 24 hours returns the first outcome instead of running again.

Length8 <= length <= 200

Request Body

application/json
  1. body
Default
{  "couponOptional": false}
years?integer

How many years. Defaults to 1

Range1 <= value <= 10
coupon?string

A coupon code, unlocking the promotion it belongs to for this renewal

Length1 <= length <= 40
couponOptional?boolean

Place the order at the normal price when the coupon cannot be used, instead of refusing it

Defaultfalse

Response Body

Success

application/json
  1. response

Success

id*string
domain*string
status*string

pending: not yet finished at the registrar. pending_validation: registered and billed, held behind contact validation. active: registered and working. expired: past its expiry date, still renewable. redemption: past the renewal window, only a restore can save it. needs_reconciliation: the last registrar call is unknown. transferred_out: moved away to another registrar; no longer ours to renew or change. deleted: the registration was given up at the registrar and is no longer yours

Value in"pending""pending_validation""active""expired""redemption""needs_reconciliation""transferred_out""deleted"
customerId*|

The customer this was bought for, if any

unitPrice*integer

Price per year, in minor units

Range0 <= value
customerPrice*|

A unit price fixed for the customer on this item alone, in their list's currency. It beats their contract and list. Null when there is none

paidTotal*integer

Everything charged for this domain so far, in minor units

Range0 <= value
registeredAt*string
Formatdate-time
expiresAt*string

When the registration ends. While status is pending or needs_reconciliation this is only our estimate from the period ordered: the registrar's own date replaces it once the order finishes

Formatdate-time
nameservers*array<>

Where the domain's DNS is served from

customNameservers*boolean

False while the domain is on the registrar's own nameservers

contact*|

The registrant, or null until you set one

contacts*

The administrative, technical and billing contacts. null means the same as the registrant

locked*boolean

Whether transfers away from us are refused

suspended*boolean

Whether the domain is on hold at the registrar: it does not resolve, but it is still registered and still renews

privacy*boolean

Whether WHOIS privacy is on for this domain

privacyPrice*|

What you pay per year for privacy while it is on, in minor units. Null when privacy is off

autoRenew*boolean

Whether this domain renews itself from your wallet shortly before it expires

dns*

Hosted DNS and DNSSEC for this domain. Every field is always there

actor*|

Who placed this order

curl -X POST "https://example.com/v1/domains/dom_01K6XJ4Q8ZT3M9R5V2B7WDHNCA/renew" \  -H "Idempotency-Key: 2f1c9a52-7d0e-4a8e-9a53-0c1f6f3f2b11" \  -H "Content-Type: application/json" \  -d '{    "couponOptional": false  }'
{  "id": "dom_01K6XJ4Q8ZT3M9R5V2B7WDHNCA",  "domain": "northwind-telecom.com",  "status": "pending",  "customerId": "cus_01K6XJ4Q8ZT3M9R5V2B7WDHNCA",  "unitPrice": 1440,  "customerPrice": null,  "paidTotal": 1440,  "registeredAt": "2026-10-07T11:04:31.000Z",  "expiresAt": "2027-10-07T11:04:31.000Z",  "nameservers": [    "ns1.example-dns.com"  ],  "customNameservers": true,  "contact": {    "name": "Jo Bloggs",    "organization": "Northwind Telecom",    "email": "[email protected]",    "phone": "+1 415 555 0132",    "address": "1 Market Street",    "city": "San Francisco",    "state": "CA",    "postalCode": "94105",    "country": "US",    "validation": "pending"  },  "contacts": {    "admin": null,    "tech": null,    "billing": null  },  "locked": true,  "suspended": true,  "privacy": true,  "privacyPrice": null,  "autoRenew": true,  "dns": {    "supported": true,    "hosted": true,    "dnssecSupported": true,    "signed": true,    "dsRecords": [      {        "keyTag": 0,        "algorithm": 0,        "digestType": 0,        "digest": "49FCE7"      }    ],    "keys": [      {        "flags": 256,        "algorithm": 0,        "publicKey": "string"      }    ]  },  "actor": {    "kind": "user",    "label": "string"  }}