---
title: "Register Domain"
method: POST
path: "/v3/forge/domain/register"
tags: ["forge", "domain"]
---

# Register Domain

`POST /v3/forge/domain/register`

## Request

- Base URL: `https://api.etymolt.com`
- URL: `https://api.etymolt.com/v3/forge/domain/register`
- Auth: none declared

Register `body.domain` on behalf of `body.registrant`.

Pre-conditions checked by caller (Stripe webhook):
  - Stripe payment succeeded
  - The attestation_id exists in `etymolt-attestations` KV
  - The customer's registrant info has been collected via the kickoff form

What this does:
  1. Re-checks availability (race condition guard)
  2. Calls dynadot.forge_register_and_delegate (registers + sets NS to CF)
  3. Returns the registration receipt with expiry date

What this does NOT do:
  - Add the zone to Cloudflare (separate step in the orchestrator)
  - Enable DNSSEC (requires CF zone first)
  - Send the kickoff email (done by orchestrator)

## Headers

- `X-Forge-Internal-Key` string, nullable

## Request body

- RegisterDomainRequest
  - `domain` string, required
  - `attestation_id` string, required: Forge attestation ID (bureau_model_v1:...) — proves customer ticked the box
  - `registrant` RegistrantInfo, required: ICANN-required registrant fields. Customer's legal contact info.
    - `first_name` string, required
    - `last_name` string, required
    - `email` string, email, required
    - `phone` string, required: E.164 format with country code prefix, e.g. '+1.6507708746'
    - `organization` string, nullable
    - `address1` string, required
    - `city` string, required
    - `state` string, required: State / Province / Region
    - `zip` string, required: ZIP / Postal code
    - `country` string, required: 2-letter ISO country code (e.g. 'US')
  - `coupon` string, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/etymolt/apis/etymolt-verify-ai-generated-brand-names.md) · [All operations](https://skmtc.dev/etymolt/apis/etymolt-verify-ai-generated-brand-names/llms.txt) · [OpenAPI document](https://skmtc.dev/etymolt/apis/etymolt-verify-ai-generated-brand-names/revisions/7228ffa1efa7?raw)
