Skip to content
API reference/Domain names

Renew a domain now

Try it

Renews 1–5 years at the registry's renewal price plus our margin; the total goes on this month's statement. Safe against a double call: a renewal already running answers 409.

POST/api/v1/domain-names/{registration_id}/renew

Authentication

An API key as Authorization: Bearer or x-api-key. It needs the domains:buy scope — search, buy and renew domain names (each adds the registration to your bill).

domains:buyAdds to your billIdempotency-Key requiredMCP tool: renew_domain_name

Parameters

Named placeholders go in the path; the rest in a JSON body.

registration_idstringPath · required
The domain name's id.1 to 100 characters
yearsintegerBody · optional
1 to 5Default 1

Response

200 with JSON on success (schema on the right). Errors use the standard envelope; a retry with the same Idempotency-Key gets the first answer back (how retries work).

curl
curl -X POST 'https://websites.workflowcorp.com/api/v1/domain-names/REGISTRATION_ID/renew' \
  -H "Authorization: Bearer $WEBSITEBUDDY_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'
Example arguments
{
  "registration_id": "REGISTRATION_ID"
}
Response schema
{
  "type": "object",
  "properties": {
    "domain_name": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "domain": {
          "type": "string"
        },
        "site_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "status": {
          "type": "string",
          "enum": [
            "pending",
            "active",
            "expired",
            "failed"
          ]
        },
        "year_cents": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991,
          "description": "What we charge per year (cents), as last quoted."
        },
        "auto_renew": {
          "type": "boolean",
          "description": "Renewed by itself, one year, 30 days before it ends."
        },
        "registered_at": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "expires_at": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "renew_error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "dns_error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "dns_records": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "host": {
                "type": "string"
              },
              "type": {
                "type": "string"
              },
              "answer": {
                "type": "string"
              }
            },
            "required": [
              "host",
              "type",
              "answer"
            ],
            "additionalProperties": false
          },
          "description": "The records we set at the registrar (host is relative to the domain; empty = the bare domain)."
        },
        "email_forwards": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "box": {
                "type": "string"
              },
              "to": {
                "type": "string"
              }
            },
            "required": [
              "box",
              "to"
            ],
            "additionalProperties": false
          },
          "description": "Business email addresses: box@domain arrives in `to`."
        },
        "created_at": {
          "type": "string"
        }
      },
      "required": [
        "id",
        "domain",
        "site_id",
        "status",
        "year_cents",
        "auto_renew",
        "registered_at",
        "expires_at",
        "renew_error",
        "dns_error",
        "dns_records",
        "email_forwards",
        "created_at"
      ],
      "additionalProperties": false
    },
    "charged_cents": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "domain_name",
    "charged_cents"
  ],
  "additionalProperties": false
}