---
title: "Claim Domain Ownership"
method: POST
path: "/v9/domains/{domain}/claim"
tags: ["domains"]
---

# Claim Domain Ownership

`POST /v9/domains/{domain}/claim`

Claim ownership of a domain for the authenticated team by verifying a TXT record. The caller must first add a TXT record to `_vercel.{domain}` (obtained from GET /domains/:domain/verification), then call this endpoint to complete the ownership transfer. If the TXT record is verified, the domain ownership will be transferred to the caller's team, even if the domain is currently owned by another user or team.

## Path parameters

- `domain` string, required — The domain name to claim ownership of

## Query parameters

- `teamId` string
- `slug` string

## Response `200`

Domain ownership successfully claimed.

- object
  - `domain` object, required
    - `expiresAt` number, nullable, required — Timestamp in milliseconds at which the domain is set to expire. null if not bought with Vercel.
    - `verified` false | true, required — If the domain has the ownership verified.
    - `nameservers` string[], required — A list of the current nameservers of the domain.
    - `intendedNameservers` string[], required — A list of the intended nameservers for the domain to point to Vercel DNS.
    - `customNameservers` string[] — A list of custom nameservers for the domain to point to. Only applies to domains purchased with Vercel.
    - `creator` object, required — An object containing information of the domain creator, including the user's id, username, and email.
      - `username` string, required
      - `email` string, required
      - `customerId` string, nullable
      - `isDomainReseller` false | true
      - `id` string, required
    - `name` string, required — The domain name.
    - `teamId` string, nullable, required
    - `boughtAt` number, nullable, required — If it was purchased through Vercel, the timestamp in milliseconds when it was purchased.
    - `createdAt` number, required — Timestamp in milliseconds when the domain was created in the registry.
    - `id` string, required — The unique identifier of the domain.
    - `renew` false | true — Indicates whether the domain is set to automatically renew.
    - `serviceType` 'external' | 'na' | 'zeit.world', required — The type of service the domain is handled by. `external` if the DNS is externally handled, `zeit.world` if handled with Vercel, or `na` if the service is not available.
    - `transferredAt` number, nullable — Timestamp in milliseconds at which the domain was successfully transferred into Vercel. `null` if the transfer is still processing or was never transferred in.
    - `transferStartedAt` number — If transferred into Vercel, timestamp in milliseconds when the domain transfer was initiated.
    - `userId` string, required

## Other responses

- `400` — One of the provided values in the request query is invalid.
- `401` — The request is not authorized.
- `403` — You do not have permission to access this resource.
- `404`
- `410`

---

[API](https://skmtc.net/vercel/apis/api.md) · [All operations](https://skmtc.net/vercel/apis/api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/vercel/api/versions/61d1ba3f6dac/schema)
