object: "custom_domain_route".
Example
Identifiers
string
required
Always
"custom_domain_route".string (uuid)
required
Stable UUID. Use it in
/custom-domain-routes/{id}.string (uuid)
required
The custom domain the route lives on. Immutable.
Path
string
required
The path under the domain —
"" for the bare hostname, "support" for /support. Lowercase alphanumeric and hyphen only. Reserved slugs (api, health, _next, .well-known, gateway, favicon.ico, robots.txt, sitemap.xml) are rejected.The combination (domain_id, slug) is unique.boolean
required
Marks the route as the default for the domain. Used by the dashboard to highlight the “primary” route and influences how the bare hostname is treated when multiple routes exist. Set this on the route at slug
"".Only one route per domain may have is_default: true. Setting a second default (on create or PATCH) is rejected with 409 — clear the existing default first.Resource
string
required
One of
chatbot, kb, page. Immutable — delete and recreate to re-point a path.string (uuid) | null
required
Non-null when
type = "kb". See Knowledge bases.Exactly one of
chatbot_id, kb_id, page_id is non-null on any route, and the non-null one must match type. This is enforced both client-side (in the request validator) and by a database CHECK constraint.Public URL
string | null
required
Convenience field — the public URL the route resolves to, built from the parent
domain and slug. Always https://. Null on responses from endpoints where the parent domain isn’t available (currently none — populated on every response).Timestamps
string (datetime)
required
When the route was created. ISO 8601.
string (datetime)
required
Last mutation. ISO 8601.

