---
title: "Get a domain's registration"
method: GET
path: "/v1/domains/{domainId}/registration"
tags: ["Domains"]
---

# Get a domain's registration

`GET /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
  - 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:read`)

Returns the registration or transfer state of an apex domain by id or hostname, or an unregistered record when Spacefast holds no registration for it. Pass `teamId` to restrict live registrations and retained failed purchases to that team. Pass `includeCheckout=true` to recover an existing open Stripe payment in `purchase.checkout` when authorized to purchase the domain. A payment-link lookup failure sets `purchase.checkoutUnavailable` without hiding registration status. This read never opens another checkout. After payment a purchase moves `pending_payment` → `pending_registration` → `active`; a `failed` one carries `failureReason` and its refund in `purchase`, and stays readable after the failed purchase releases its domain.

## Path parameters

- `domainId` string, required

## Query parameters

- `teamId` string: Return only this team's registration, including retained failed purchases. Use this when a hostname may have purchase history in more than one team.
- `includeCheckout` string: Request an existing payment link when authorized to purchase this domain. Omit for registration status without a payment-provider lookup.

## 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)
