Custom Domain docs
API referenceConnections

Build the one-click apply URL (sync) or start the managed async rail

POST
/connections/{id}/domainconnect:start

Rail A (one-click sync-redirect) by default. service_id may be omitted when a default/sole template is loaded; the response carries the provider-hosted apply_url, the resolved service_id, and the discovered dc_provider name. Set managed: true (or rail: "async") to request the managed async rail instead — when the provider supports it the response carries a consent_url and rail: "async" (and the grant lets the control plane re-apply / revert server-side without re-consent). service_ids (plural) bundles several templates under one managed consent (async only; the OAuth scope is the space-separated list and the callback applies each); on the sync fallthrough only the first template applies.

Authorization

widgetJWT
AuthorizationBearer <token>

Short-lived widget JWT minted server-side via POST /v1/tokens. Scoped to one application (and optionally one domain).

In: header

Path Parameters

id*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/connections/string/domainconnect:start" \  -H "Content-Type: application/json" \  -d '{}'
{  "apply_url": "http://example.com",  "consent_url": "http://example.com",  "service_id": "string",  "service_ids": [    "string"  ],  "dc_provider": "string",  "rail": "string"}
{  "code": "string",  "title": "string",  "details": "string"}
{  "code": "string",  "title": "string",  "details": "string"}
{  "code": "string",  "title": "string",  "details": "string"}
{  "code": "string",  "title": "string",  "details": "string"}
{  "code": "string",  "title": "string",  "details": "string"}