Hanzo
Cloud MCPprojects

post_v1_projects_slug_domains_host_verify

VerifyDomain checks the DNS challenge for a pending custom hostname and, when it passes, promotes the host so it begins routing at the edge.

VerifyDomain checks the DNS challenge for a pending custom hostname and, when it passes, promotes the host so it begins routing at the edge.

It answers 200 either way, with the host's honest current state: verified once the TXT record is found, still pending — with the records to publish and the resolver's own explanation in detail — when it is not. A not-yet is not an error: the check ran, DNS simply has not propagated, and the customer retries. An already-verified host is returned unchanged without re-resolving. On a successful promotion the edge cache-tag is flushed, since the host routes as of that moment.

Scope: a validated principal is required (403 without one). Both the site and the claim are resolved within that principal's org, so a host claimed by another tenant is "not claimed by this site".

Toolpost_v1_projects_slug_domains_host_verify
Doorhttps://api.hanzo.ai/v1/mcp
Methodtools/call (JSON-RPC 2.0)
Arguments2, 2 required
OperationPOST /v1/projects/{slug}/domains/{host}/verify
Productprojects

Arguments

FieldTypeRequiredDefaultValuesDescription
hoststringyesHost is the custom hostname, from the path. It is cleaned to its canonical form (lowercased, trailing dot dropped) before anything is looked up.
slugstringyesSlug is the project the host is attached to, from the path.

tools/list declares a type and a description for each field and nothing further. The Required column is taken from POST /v1/projects/{slug}/domains/{host}/verify, the operation this tool dispatches to — the same declaration the REST API validates against. A means neither the door nor that operation constrains the field.

Call it

A tools/call carries every argument in one flat object — nothing binds to a path or a query string. This call carries exactly the arguments the operation requires, so it is the smallest one that can run.

curl -X POST https://api.hanzo.ai/v1/mcp \
  -H "Authorization: Bearer $HANZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
       "jsonrpc": "2.0",
       "id": 1,
       "method": "tools/call",
       "params": {
         "name": "post_v1_projects_slug_domains_host_verify",
         "arguments": {
           "host": "<host>",
           "slug": "<slug>"
         }
       }
     }'

Values are the operation's own defaults and enumerated values where it declares them, and a <placeholder> where neither source declares one. tools/list needs no credential; tools/call does — called without one the door answers HTTP 200 with a JSON-RPC result whose isError is set and whose text says what was missing. How to get a key →

The operation behind it

OperationRouteProductSummary
cloud_post_v1_projects_slug_domains_host_verifyPOST /v1/projects/{slug}/domains/{host}/verifyprojectsVerifyDomain checks the DNS challenge for a pending custom hostname and, when it passes,…

The same capability over plain HTTP is in the projects API reference, on https://api.hanzo.ai.


All 833 tools · The door · API reference

Generated from tools/list on https://api.hanzo.ai/v1/mcp — 833 tools captured 2026-08-01 (this build read the vendored copy; the door was unreachable).

How is this guide?

On this page