---
title: "Connect an external hostname through Cloudflare for SaaS"
method: POST
path: "/funnels/{funnelId}/domains"
---

# Connect an external hostname through Cloudflare for SaaS

`POST /funnels/{funnelId}/domains`

## Request

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

Backward-compatible facade that resolves the funnel's Site. New integrations should use POST /sites/{siteId}/domains. Requires an active custom_domains subscription and returns 402 subscription_required when absent.

## Request body

- object
  - `hostname` string, required

## Response `201`

Hostname created; response contains exact DNS verification records

## Other responses

- `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
- `409`: Hostname is 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)
