---
title: "Domain Connect return URL (called by the DNS provider)"
method: GET
path: "/api/v1/sessions/{token}/domain-connect/callback"
tags: ["One-click flows"]
---

# Domain Connect return URL (called by the DNS provider)

`GET /api/v1/sessions/{token}/domain-connect/callback`

## Request

- Base URL: `https://app.dodomain.io`
- URL: `https://app.dodomain.io/api/v1/sessions/{token}/domain-connect/callback`
- Auth: none required

The DNS provider redirects the end user's browser here after the apply page. Not called by integrators. The single-use `state` minted at start is re-derived and mismatches are refused before anything is written; the session's records are then re-verified against authoritative DNS, and the connection is finalized only when every record is live.

## Path parameters

- `token` string, required

## Other responses

- `302`: Redirect back to the hosted connect page, carrying a `dc` notice describing the outcome.
- `404`: `404 not_found` — The addressed resource does not exist, or the caller does not own it — the two collapse to one status on purpose, so an id cannot be enumerated by a caller who does not own it.
- `410`: `410 expired` — The connect session's 24-hour lifetime has elapsed. Returned before any verification, metering, or webhook work happens.
- `429`: `429 rate_limited` — Rate limited. `Retry-After` (seconds) is set and `details.retryAfterSeconds` repeats it. Branch on `details.reason`: `request_rate` means the caller is calling too fast (`details.limit` carries the cap), `recently_checked` means this one connection was DNS-checked inside its cooldown.
- `500`: `500 internal` — An unhandled server-side failure. Reported to our error tracker; safe to retry.

---

[API](https://skmtc.dev/dodomain/apis/dodomain-api.md) · [All operations](https://skmtc.dev/dodomain/apis/dodomain-api/llms.txt) · [OpenAPI document](https://skmtc.dev/dodomain/apis/dodomain-api/revisions/44cfb944de58?raw)
