---
title: "Verify Guide Domain"
method: POST
path: "/api/v1/content/domains/{domain_id}/verify"
tags: ["Content Management"]
---

# Verify Guide Domain

`POST /api/v1/content/domains/{domain_id}/verify`

Check the ownership TXT record and, on success, activate the domain.

This is the gate. Everything before it is a claim; provisioning a
certificate for a hostname nobody has proved they control would let one
tenant take an address that already resolves to us.

## Path parameters

- `domain_id` string, uuid, required

## Response `200`

Successful Response

- DomainRow — One domain, everything the Domains surface needs, in one read.
  - `id` string, uuid, required
  - `hostname` string, required
  - `kind` 'CNAME_SINGLE' | 'CNAME_GROUP' | 'WORKER', required — How a hostname reaches us, and therefore what it can serve. Named for the SHAPE of the address, not the vendor mechanism — the operator never sees "CNAME" or "Worker", and the two questions that determine this (own host or folder? one guide or several?) are the ones the UI asks.
  - `path_prefix` string, nullable, required
  - `address` string, required
  - `guides` DomainGuideRef[], required
    - `property_id` string, uuid, required
    - `name` string, required
    - `guide_slug` string, nullable, required
    - `url` string, required
  - `state` 'needs_verification' | 'needs_dns' | 'pointing_elsewhere' | 'securing' | 'ready' | 'live' | 'action_needed' | 'check_unavailable', required
  - `message` string, required
  - `action` string, nullable
  - `expected_record` string, nullable
  - `observed_target` string, nullable
  - `tls_status` string, nullable
  - `ownership_record` string, nullable
  - `ownership_token` string, nullable
  - `verified` boolean

## Other responses

- `404` — Domain not found
- `409` — The verification record was not found
- `422` — Validation Error
- `502` — TLS provisioning failed

## Changes

> 22 revisions in range; 1 not diffed.

- **2026-09-03** `d65b8fefae34` — 2 info
  - added the optional property `detail/items/ctx` to the response with the `422` status
  - added the optional property `detail/items/input` to the response with the `422` status

[Change history](https://skmtc.dev/getanana/apis/cleon-api/changes/api/v1/content/domains/:domain_id/verify/post.md)

---

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