---
title: "Update registration settings"
method: PATCH
path: "/v1/domains/{domainId}/registration"
tags: ["Domains"]
---

# Update registration settings

`PATCH /v1/domains/{domainId}/registration`

## Request

- Base URL: `https://api.spacefast.com`
- URL: `https://api.spacefast.com/v1/domains/{domainId}/registration`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://api.spacefast.com/v1/auth/oauth2/authorize`, token URL `https://api.spacefast.com/v1/auth/oauth2/token`; client credentials, token URL `https://api.spacefast.com/v1/auth/oauth2/token`, scopes: `domains:write`)

Changes settings of a domain the team registered through Spacefast: `transferLock`, WHOIS `privacySetting`, the registrant (`contactId` of a saved contact), and the `autoRenew` preference. Unlocking transfers, turning off privacy, or changing the registrant affects who controls the domain and whose details are public, so make those changes only at the user's request. `autoRenew` is saved as a preference only; nothing renews automatically yet, and renewal is a separate registration action.

## Path parameters

- `domainId` string, required

## Request body

- object
  - `autoRenew` boolean: Saves the auto-renew preference. Nothing renews on its own yet; renew with `{ action: "renew" }`.
  - `transferLock` boolean: Pass `true` to enable the registrar transfer lock. Pass `false` to disable it.
  - `privacySetting` 'enable_privacy_service' | 'redact_contact_info' | 'disclose_contact_info': WHOIS privacy behavior.
  - `contactId` string, nullable: Registrant contact record.

## Response `200`

Response for status 200

- object
  - `$schema` string, uri: Canonical JSON Schema URL for this response body. The server also sends it in the `Link: rel="describedby"` response header.
  - `data` object, required
    - `id` string, nullable, required: Registration or transfer record id; null when unregistered.
    - `domainId` string, required: Domain inventory record (`dom_...`).
    - `hostname` string, required: Registered hostname.
    - `provider` 'dsapi' | 'manual', nullable, required: Wrapped registrar bridge where the registration lives.
    - `status` string, required: Registration lifecycle status. `pending_payment` means checkout is open and nothing is registered yet.
    - `expiresAt` string, date-time, nullable, required: Instant when the registration expires.
    - `redemptionEndsAt` string, date-time, nullable, required: Instant when the redemption window ends after expiry.
    - `autoRenew` boolean, required: Saved auto-renew preference. Nothing renews on its own yet; renew by hand.
    - `transferLock` boolean, required: Whether outbound transfers are locked.
    - `privacySetting` 'enable_privacy_service' | 'redact_contact_info' | 'disclose_contact_info', nullable, required: WHOIS privacy behavior.
    - `contactId` string, nullable, required: Registrant contact record.
    - `failureReason` string, nullable, required: Provider failure detail when status is `failed`.
    - `purchase` object, nullable, required: Money state of the current purchase or renewal line; null when none is in flight.
      - `intentId` string, required: Purchase intent that paid for this line.
      - `lineStatus` 'awaiting_payment' | 'submitting' | 'settled' | 'refunding' | 'refunded' | 'cancelled', required
      - `checkout` object, nullable: Existing open payment link, requested with includeCheckout and returned only to callers authorized to purchase this domain. Null when no open link is available; check checkoutUnavailable for lookup failures. Omitted when not requested or not authorized.
        - `id` string, required: Existing Stripe Checkout session id.
        - `url` string, uri, required: Open this existing checkout to complete payment.
        - `expiresAt` string, date-time, required: When this checkout expires.
      - `checkoutUnavailable` boolean: True when the requested payment link could not be retrieved or verified. Registration status remains available. Retry the read to recover the existing checkout; do not start another purchase.
      - `quotedFeeAmountCents` integer, nullable, required: Registrar fee before tax, in cents.
      - `paidAmountCents` integer, nullable, required: What the customer paid for this line, tax included, in cents.
      - `refund` object, nullable, required
        - `reference` string, required: Stripe refund id.
        - `amountCents` integer, required
        - `refundedAt` string, date-time, required
    - `createdAt` string, date-time, nullable, required
    - `updatedAt` string, date-time, nullable, required

## Other responses

- `default`: Problem details (RFC 9457). Any 4xx/5xx response is one `application/problem+json` document.

---

[API](https://skmtc.dev/spacefast/apis/spacefast-api.md) · [All operations](https://skmtc.dev/spacefast/apis/spacefast-api/llms.txt) · [OpenAPI document](https://skmtc.dev/spacefast/apis/spacefast-api/revisions/bd165bc7c983?raw)
