---
title: "Async one-click setup redirect target (public; authenticated by the signed state)"
method: GET
path: "/connect/dc/callback"
tags: ["Connections"]
---

# Async one-click setup redirect target (public; authenticated by the signed state)

`GET /connect/dc/callback`

## Request

- Base URL: `https://api.customdomain.ai/v1`
- URL: `https://api.customdomain.ai/v1/connect/dc/callback`
- Auth: none required

**Rail A (async one-click setup) redirect target**, distinct from `/connect/oauth/callback` (Mode C), which discards its one-time token. It consumes the signed single-use `state` (rail-bound to async), exchanges the code for a **durable async grant** at the provider API base pinned into the `state` at start (never re-derived from fresh discovery), applies the template, and persists the **encrypted** grant so the connection can be re-applied / reverted server-side. Records are applied with `data.via = async`.

## Query parameters

- `code` string
- `state` string, required

## Response `200`

HTML finish page (postMessages the outcome to the vetted return origin)

## Other responses

- `400`: Invalid, expired, replayed, or wrong-rail state

---

[API](https://skmtc.dev/customdomain/apis/customdomain-control-plane-api.md) · [All operations](https://skmtc.dev/customdomain/apis/customdomain-control-plane-api/llms.txt) · [OpenAPI document](https://skmtc.dev/customdomain/apis/customdomain-control-plane-api/revisions/34d89cb7a7cd?raw)
