---
title: "Start a custom hostname claim for a Site"
method: POST
path: "/sites/{siteId}/domains"
---

# Start a custom hostname claim for a Site

`POST /sites/{siteId}/domains`

## Request

- Base URL: `https://gringofunnels.com/api/v1`
- URL: `https://gringofunnels.com/api/v1/sites/{siteId}/domains`
- Auth: HTTP bearer

Requires funnels:read and domains:write plus an active custom_domains subscription. It returns exact DNS records and never edits a registrar automatically.

## Request body

- SiteDomainConnect
  - `hostname` string, required

## Response `201`

Hostname claim created; response includes DNS records

## Other responses

- `401`: Missing or invalid API key
- `402`: The workspace lacks an active entitlement for this paid capability. Agents must show this error to the owner and must not mutate DNS or retry around billing.
- `403`: The scoped credential does not grant this operation
- `404`: Site not found
- `409`: Hostname already connected
- `422`: Invalid query parameters

---

[API](https://skmtc.dev/gringofunnels/apis/gringo-funnels-api.md) · [All operations](https://skmtc.dev/gringofunnels/apis/gringo-funnels-api/llms.txt) · [OpenAPI document](https://skmtc.dev/gringofunnels/apis/gringo-funnels-api/revisions/b57b5e365b56?raw)
