> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tariqdev.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Domains

> Customize Sonata domain pricing, search, RDAP availability checks, FAQ, and domain steps.

# Domains

The domain page includes domain pricing and availability lookup.

<Info>
  RDAP checks are useful for search feedback, but final availability should always be confirmed by your registrar or billing panel.
</Info>

Main files:

```txt theme={null}
app/domain/page.tsx
app/api/domain-check/route.ts
lib/data/product-config.ts
```

## TLD Data

Domain TLD pricing is stored in:

```ts theme={null}
domainTlds
```

Each item can include:

* Extension.
* Register price.
* Renew price.
* Transfer price.
* Popular state.

Example:

```ts theme={null}
{
  extension: ".com",
  register: "Rp 165.000",
  renew: "Rp 175.000",
  transfer: "Rp 165.000",
  popular: true,
}
```

## Pricing Notes

Domain prices can change often. Check registrar pricing before launch and review it regularly.

Keep separate values for:

* Registration.
* Renewal.
* Transfer.
* Premium domains.
* Promo pricing.

## Domain Search

Domain lookup uses public RDAP endpoints through:

```txt theme={null}
app/api/domain-check/route.ts
```

RDAP is a lookup signal, not a final guarantee.

A domain may still be unavailable at checkout if it is:

* Premium.
* Reserved.
* Restricted.
* Recently registered.
* Blocked by registry policy.
* Temporarily unavailable through the registrar.

## Search UI

The domain page sends a query to:

```txt theme={null}
/api/domain-check
```

The API checks the requested label against selected TLDs.

## Supported TLDs

Only enable TLDs you can actually sell.

Before adding a new TLD:

1. Confirm your registrar supports it.
2. Confirm the billing product exists.
3. Confirm the renewal price.
4. Confirm RDAP lookup works.
5. Test common unavailable and available names.

## Domain Steps

The page includes a step flow such as:

1. Search.
2. Order.
3. Manage.

Keep step labels short and make connector arrows readable on desktop.

## Billing Integration

The domain page can link users to your billing panel after search.

Common approaches:

* Send users to a generic domain order page.
* Append the searched domain as a query parameter.
* Use a registrar module inside your billing system.
* Use a custom checkout flow.

Make sure the final checkout page validates availability again.

## Troubleshooting Domain Lookup

If lookup fails:

* Check API route logs.
* Try a different TLD.
* Confirm outbound requests are allowed in production.
* Confirm the TLD has a public RDAP endpoint.
* Reduce the number of TLDs checked at once.
