# DoDomain > Custom domains for SaaS. Integrators call a REST API (or embed a widget) so their users can point custom domains at the integrator's product: DoDomain mints a connect session, applies DNS records one-click on Cloudflare or via Domain Connect where the provider has enabled it, guides manual setup everywhere else, verifies against authoritative DNS, then notifies the integrator with signed webhooks, and keeps re-verifying connected domains for free on every plan (DNS drift monitoring is never a metered add-on). DoDomain never proxies traffic or holds certificates; TLS terminates at the integrator's own host. Key facts: REST base URL https://app.dodomain.io · auth is `Authorization: Bearer dd_sk_…` (secret key, server-side only) · sessions expire after 24 hours (410 after expiry) · webhooks are HMAC-SHA256 signed (`x-dodomain-signature: t=,v1=` over `t.body`) with body `{"id", "type", "occurredAt", "data"}` (dedupe on `id`; a deprecated `event` alias of `type` is still sent) · the SDKs @dodomain/node and @dodomain/connect are published on npm (MIT, zero runtime dependencies), and plain HTTPS against the REST API stays fully supported. ## Machine-readable surfaces - [Full documentation as one Markdown file](https://dodomain.io/docs/llms-full.txt): every documentation page concatenated as Markdown, generated from the same MDX the docs site renders. - Keyless DNS APIs at https://app.dodomain.io/api/tools/: dns?name=&type=, cname-chain?name=, verify-diagnoser?name=&target=&type= and dns-diff?expected=. GET returns JSON, or Markdown with Accept: text/markdown. DNS diff accepts up to 25 expected records and stores no anonymous snapshot. - Markdown twin of every page on this host: append `.md` to any URL below (for example https://dodomain.io/compare/entri.md, https://dodomain.io/pricing.md, https://dodomain.io/tools/spf-checker.md). The home page's twin is https://dodomain.io/index.md. Each twin is generated at build time from the same source the HTML page renders, so it cannot go stale, and each HTML response advertises its twin with a `Link: <…>; rel="alternate"; type="text/markdown"` header. - Markdown twin of every docs page: append `.md` to a docs URL (https://dodomain.io/docs/webhooks.md; the docs home is https://dodomain.io/docs/index.md), or send `Accept: text/markdown` to the page URL itself. Each docs HTML page advertises its twin with ``. - [OpenAPI 3.1 description of /api/v1](https://dodomain.io/docs/openapi.json): generated from the same zod schemas the API validates requests with (https://dodomain.io/openapi.json redirects here). Rendered reference: https://dodomain.io/docs/openapi. - [API catalog (RFC 9727)](https://dodomain.io/.well-known/api-catalog): an application/linkset+json document linking the OpenAPI description, the docs and the [status page](https://status.dodomain.io). - [MCP Server Card](https://dodomain.io/.well-known/mcp/server-card.json): the static discovery document for the remote MCP server (name, version, endpoint, OAuth sign-in) that clients read before connecting. - [Agent setup instructions](https://dodomain.io/agent-setup/prompt.md): the Markdown a coding agent executes to set itself up for DoDomain (MCP server, SDK, credentials, verify). Paste "Fetch and execute the appropriate instructions to set me up for DoDomain from https://dodomain.io/agent-setup/prompt.md" into any AI coding agent, or read the per-agent guides at https://dodomain.io/agent-setup. - [FAQ](https://dodomain.io/docs/faq): the questions integrators ask most, each answered in a few sentences with a link to the full page. - Remote MCP server for AI assistants and agents: https://app.dodomain.io/api/mcp (Streamable HTTP, OAuth 2.1 + PKCE with automatic discovery and registration). 68 tools, one for every dashboard action, served through Code Mode (the tool list shows search_tools and execute_typescript, which reach them); included on every plan. Setup: https://dodomain.io/docs/connecting-ai-assistants. One click for Claude (web, desktop, mobile): https://claude.ai/directory/a7fc39a1-9ea8-48f0-9d66-2ac84f2508d1 opens DoDomain's listing in Claude's connector directory. ChatGPT: https://chatgpt.com/plugins/plugin_asdk_app_6a7ae2ab834c8191a93649ac23775d1f opens DoDomain's published ChatGPT app. - [Sitemap](https://dodomain.io/sitemap.xml) · [robots.txt](https://dodomain.io/robots.txt) · [security.txt](https://dodomain.io/.well-known/security.txt) · IndexNow key file https://dodomain.io/eb92946a913fb330e391e4704dc3824f.txt. ## Docs - [Custom domains for SaaS: API, widget, SDKs](https://dodomain.io/docs): Add custom domains to your SaaS. Create a connect session over REST, your user connects DNS in a hosted flow, and a signed webhook confirms it. - [Apex domain CNAME: why it fails, what works](https://dodomain.io/docs/apex-domains): A CNAME cannot sit at a zone apex (RFC 1034, RFC 2181). What DoDomain supports at the apex, which DNS providers offer ALIAS, and what works instead. - [REST API](https://dodomain.io/docs/api): The /api/v1 surface (authentication, endpoints, and rate limits). - [The connect flow](https://dodomain.io/docs/connect-flow): The hosted connect page, the embeddable widget, provider detection, and how each connect tier works. - [DoDomain MCP server: Claude, ChatGPT, Cursor](https://dodomain.io/docs/connecting-ai-assistants): DoDomain remote MCP server: one URL, OAuth 2.1 sign-in, every dashboard action as a tool. Setup for Claude, ChatGPT, Cursor, Codex and other MCP clients. - [FAQ](https://dodomain.io/docs/faq): The questions integrators ask most about DoDomain: providers, apex domains, SSL, SDKs, webhooks, monitoring, limits and testing, answered briefly. - [Getting started](https://dodomain.io/docs/getting-started): From signup to a verified custom domain: create an app, mint a connect session, and receive the signed webhook. - [Guides](https://dodomain.io/docs/guides): Guides for adding custom domains to a multi-tenant app, for adding DNS records at each provider, and for how one-click setup works. - [Custom domains for a multi-tenant Django app](https://dodomain.io/docs/guides/custom-domains-multi-tenant-django): Custom domains in multi-tenant Django 5: resolve the tenant from the host, set ALLOWED_HOSTS, mint DNS records, verify webhooks, place TLS. - [Custom domains in multi-tenant Laravel](https://dodomain.io/docs/guides/custom-domains-multi-tenant-laravel): Custom domains in multi-tenant Laravel 12: resolve the tenant from the host, handle trustHosts, exempt webhooks from CSRF, place TLS on Forge or Vapor. - [Custom domains in multi-tenant Next.js](https://dodomain.io/docs/guides/custom-domains-multi-tenant-nextjs): Resolve the tenant from the Host header in a Next.js 16 proxy.ts, mint and verify the customer's DNS records, terminate TLS on Vercel, and settle the apex. - [Custom domains for a multi-tenant Rails app](https://dodomain.io/docs/guides/custom-domains-multi-tenant-rails): Custom domains in multi-tenant Rails 8: resolve the tenant from request.host, allow customer hosts, mint DNS records, verify webhooks, place TLS. - [DNS provider setup guides](https://dodomain.io/docs/guides/dns-providers): Guides to adding a CNAME, A or TXT record at 32 DNS providers (GoDaddy, Namecheap, Cloudflare, Squarespace, Wix, Hover, Porkbun and more), in each provider's own panel vocabulary. - [Bluehost CNAME and A record setup](https://dodomain.io/docs/guides/dns-providers/bluehost): How to add a CNAME, A or TXT record at Bluehost: the host for a subdomain and the root domain (@), and how to check it's live. - [Cloudflare CNAME and A record setup](https://dodomain.io/docs/guides/dns-providers/cloudflare): How to add a CNAME, A or TXT record at Cloudflare: the host for a subdomain and the root domain (@), and how to check it's live. - [DigitalOcean CNAME and A record setup](https://dodomain.io/docs/guides/dns-providers/digitalocean): How to add a CNAME, A or TXT record at DigitalOcean: the host for a subdomain and the root domain (@), and how to check it's live. - [DNSimple CNAME and A record setup](https://dodomain.io/docs/guides/dns-providers/dnsimple): How to add a CNAME, A or TXT record at DNSimple: the host for a subdomain and the root domain (leave it blank), and how to check it's live. - [Domain Chief CNAME and A record setup](https://dodomain.io/docs/guides/dns-providers/domainchief): How to add a CNAME, A or TXT record at Domain Chief: the host for a subdomain and the root domain (leave it blank), and how to check it's live. - [DreamHost CNAME and A record setup](https://dodomain.io/docs/guides/dns-providers/dreamhost): How to add a CNAME, A or TXT record at DreamHost: the host for a subdomain and the root domain (leave it blank), and how to check it's live. - [Dynadot CNAME and A record setup](https://dodomain.io/docs/guides/dns-providers/dynadot): How to add a CNAME, A or TXT record at Dynadot: the host for a subdomain and the root domain (leave it blank), and how to check it's live. - [Enom CNAME and A record setup](https://dodomain.io/docs/guides/dns-providers/enom): How to add a CNAME, A or TXT record at Enom: the host for a subdomain and the root domain (@), and how to check it's live. - [Gandi CNAME and A record setup](https://dodomain.io/docs/guides/dns-providers/gandi): How to add a CNAME, A or TXT record at Gandi: the host for a subdomain and the root domain (@), and how to check it's live. - [Glauca HexDNS CNAME and A record setup](https://dodomain.io/docs/guides/dns-providers/glauca): How to add a CNAME, A or TXT record at Glauca HexDNS: the host for a subdomain and the root domain (@), and how to check it's live. - [GoDaddy CNAME and A record setup](https://dodomain.io/docs/guides/dns-providers/godaddy): How to add a CNAME, A or TXT record at GoDaddy: the host for a subdomain and the root domain (@), why the root can't take a CNAME, and how to check it's live. - [Google Cloud DNS CNAME and A record setup](https://dodomain.io/docs/guides/dns-providers/googleclouddns): How to add a CNAME, A or TXT record at Google Cloud DNS: the host for a subdomain and the root domain (leave it blank), and how to check it's live. - [HostGator CNAME and A record setup](https://dodomain.io/docs/guides/dns-providers/hostgator): How to add a CNAME, A or TXT record at HostGator: the host for a subdomain and the root domain (@), and how to check it's live. - [Hostinger CNAME and A record setup](https://dodomain.io/docs/guides/dns-providers/hostinger): How to add a CNAME, A or TXT record at Hostinger: the host for a subdomain and the root domain (@), and how to check it's live. - [Hover CNAME and A record setup](https://dodomain.io/docs/guides/dns-providers/hover): How to add a CNAME, A or TXT record at Hover: the host for a subdomain and the root domain (@), why the root can't take a CNAME, and how to check it's live. - [Infomaniak CNAME and A record setup](https://dodomain.io/docs/guides/dns-providers/infomaniak): How to add a CNAME, A or TXT record at Infomaniak: the host for a subdomain and the root domain (leave it blank), and how to check it's live. - [IONOS CNAME and A record setup](https://dodomain.io/docs/guides/dns-providers/ionos): How to add a CNAME, A or TXT record at IONOS: the host for a subdomain and the root domain (leave it blank), and how to check it's live. - [Namecheap CNAME and A record setup](https://dodomain.io/docs/guides/dns-providers/namecheap): How to add a CNAME, A or TXT record at Namecheap: the host for a subdomain and the root domain (@), why the root can't take a CNAME, and how to check it's live. - [Name.com CNAME and A record setup](https://dodomain.io/docs/guides/dns-providers/namecom): How to add a CNAME, A or TXT record at Name.com: the host for a subdomain and the root domain (leave it blank), and how to check it's live. - [NameSilo CNAME and A record setup](https://dodomain.io/docs/guides/dns-providers/namesilo): How to add a CNAME, A or TXT record at NameSilo: the host for a subdomain and the root domain (@), and how to check it's live. - [Network Solutions CNAME and A record setup](https://dodomain.io/docs/guides/dns-providers/networksolutions): How to add a CNAME, A or TXT record at Network Solutions: the host for a subdomain and the root domain (@), and how to check it's live. - [one.com CNAME and A record setup](https://dodomain.io/docs/guides/dns-providers/onecom): How to add a CNAME, A or TXT record at one.com: the host for a subdomain and the root domain (leave it blank), and how to check it's live. - [OVHcloud CNAME and A record setup](https://dodomain.io/docs/guides/dns-providers/ovh): How to add a CNAME, A or TXT record at OVHcloud: the host for a subdomain and the root domain (leave it blank), and how to check it's live. - [Porkbun CNAME and A record setup](https://dodomain.io/docs/guides/dns-providers/porkbun): How to add a CNAME, A or TXT record at Porkbun: the host for a subdomain and the root domain (leave it blank), and how to check it's live. - [AWS Route 53 CNAME and A record setup](https://dodomain.io/docs/guides/dns-providers/route53): How to add a CNAME, A or TXT record at AWS Route 53: the host for a subdomain and the root domain (the domain itself), and how to check it's live. - [Simply.com CNAME and A record setup](https://dodomain.io/docs/guides/dns-providers/simplycom): How to add a CNAME, A or TXT record at Simply.com: the host for a subdomain and the root domain (@), and how to check it's live. - [Squarespace Domains CNAME and A record setup](https://dodomain.io/docs/guides/dns-providers/squarespace): How to add a CNAME, A or TXT record at Squarespace Domains: the host for a subdomain and the root domain (@), and how to check it's live. - [STRATO CNAME and A record setup](https://dodomain.io/docs/guides/dns-providers/strato): How to add a CNAME, A or TXT record at STRATO: there is no host field, so you select the domain or a subdomain, and how to check it's live. - [TransIP CNAME and A record setup](https://dodomain.io/docs/guides/dns-providers/transip): How to add a CNAME, A or TXT record at TransIP: the host for a subdomain and the root domain (@), and how to check it's live. - [Vercel CNAME and A record setup](https://dodomain.io/docs/guides/dns-providers/vercel): How to add a CNAME, A or TXT record at Vercel: the host for a subdomain and the root domain (leave it blank), and how to check it's live. - [Wix CNAME and A record setup](https://dodomain.io/docs/guides/dns-providers/wix): How to add a CNAME, A or TXT record at Wix: the host for a subdomain and the root domain (leave it blank), and how to check it's live. - [WordPress.com CNAME and A record setup](https://dodomain.io/docs/guides/dns-providers/wordpress): How to add a CNAME, A or TXT record at WordPress.com: the host for a subdomain and the root domain (leave it blank), and how to check it's live. - [Domain Connect field notes: every bug we hit](https://dodomain.io/docs/guides/domain-connect-field-notes): What it took to ship signed, one-click DNS applies over Domain Connect: template registry, spec gaps, provider bugs, and why a probe's 200 proves nothing. - [Multi-record and email records](https://dodomain.io/docs/multi-record-and-email): Sessions that need several DNS records (CNAME plus ownership proof, apex A/AAAA, SPF/DKIM/DMARC): what each connect path does and how email records verify. - [@dodomain/node](https://dodomain.io/docs/node-sdk): The TypeScript server SDK: sessions, connections, apps, domains, webhook endpoints, key rotation, and the webhook verifier. - [OpenAPI spec](https://dodomain.io/docs/openapi): The machine-readable OpenAPI 3.1 description of the /api/v1 surface, generated from the same schemas the API validates with. - [Pricing](https://dodomain.io/docs/pricing): Free, Pro, and Scale: what each plan includes and how the quotas work. - [dodomain-sdk (Python)](https://dodomain.io/docs/python-sdk): The Python server SDK: sync and async twins over the same /api/v1 surface, typed models, an exception hierarchy, and the webhook verifier. - [@dodomain/react](https://dodomain.io/docs/react-sdk): The React bindings: a useDoDomainConnect hook (and a drop-in button) around the @dodomain/connect modal widget. - [SDKs](https://dodomain.io/docs/sdks): The four published DoDomain SDKs (@dodomain/node, @dodomain/connect and @dodomain/react on npm, dodomain-sdk on PyPI), and how to pick one. - [How SSL works](https://dodomain.io/docs/ssl): DNS points customer domains at you and TLS ends at your host, not ours. Certificate notes for Vercel, Cloudflare for SaaS, Caddy, nginx, Render and Fly.io. - [Testing your integration](https://dodomain.io/docs/testing-your-integration): Drive the hosted connect flow from your own Playwright suite: the supported automation path, what needs real DNS, and how to assert the result without one. - [Vercel integration](https://dodomain.io/docs/vercel): Install DoDomain from Vercel and it sets DODOMAIN_SECRET_KEY on the projects you choose, so your Vercel app calls the DoDomain API with no copied keys. - [Domain webhooks: events and HMAC signatures](https://dodomain.io/docs/webhooks): DoDomain webhooks for custom domain connections: the five event types, how to verify the HMAC-SHA256 signature, retries, and free DNS drift monitoring. - [Embed the connect flow](https://dodomain.io/docs/widget): Open the DoDomain connect flow inside your product: the showDoDomain widget with callbacks and postMessage events, or the zero-code hosted link. ## Site - [Custom domains for SaaS, connected and verified · DoDomain](https://dodomain.io/): What the product is: a REST API, hosted flow and embeddable widget that get a customer's custom domain pointed at your product, verified against authoritative DNS, and monitored for drift. Markdown: https://dodomain.io/index.md - [Pricing](https://dodomain.io/pricing): Is DoDomain free, what each of the three published self-serve plans costs and includes, whether there is a per-domain fee, how the hard monthly cap behaves (402 quota_exceeded, no overage billing), and how the price compares with Entri and Cloudflare for SaaS. Markdown: https://dodomain.io/pricing.md - [Get the DoDomain app: Android, iPhone, Mac, Windows](https://dodomain.io/apps): Where to install the dashboard on a device: the Android app on Google Play, the browser install on iPhone, Mac and Windows while those store listings are in review, and the remote MCP server URL that lets Claude, Cursor or ChatGPT work in a DoDomain account. Markdown: https://dodomain.io/apps.md - [Changelog](https://dodomain.io/changelog): Dated, plain-language record of what shipped: new capabilities, SDK releases, protocol proofs, pricing changes. Markdown: https://dodomain.io/changelog.md - [Refer & Earn — the DoDomain partner program](https://dodomain.io/partners): How the Refer & Earn partner program works: you earn a commission on what everyone you refer pays DoDomain for their first year, when a commission clears the hold, the minimum before you can withdraw, and how to get your referral link. Markdown: https://dodomain.io/partners.md - [Custom domains for SaaS: every option compared](https://dodomain.io/compare): Every way to let customers use their own domain, sorted by the job each does (DNS layer, edge, host, self-run), with sourced prices at 100, 2,000 and 20,000 domains, how to choose, and where DoDomain is the wrong choice. Markdown: https://dodomain.io/compare.md - [Entri alternative: DoDomain vs Entri](https://dodomain.io/compare/entri): Sourced head-to-head on price: DoDomain's free plan against Entri's published starting tier, what each costs at three volumes, feature by feature, verification and monitoring, and where Entri still wins. Markdown: https://dodomain.io/compare/entri.md - [DoDomain vs SaaS Custom Domains](https://dodomain.io/compare/saas-custom-domains): SaaS Custom Domains is a proxy that emails customers the record to add; DoDomain gets that record created in their provider, verifies it and monitors it free. Costs at three volumes, and who does which half. Markdown: https://dodomain.io/compare/saas-custom-domains.md - [DoDomain with Cloudflare for SaaS](https://dodomain.io/compare/cloudflare-for-saas): What Cloudflare for SaaS custom hostnames cost past the included allowance, at three volumes; how Cloudflare validates a hostname; and the DNS record the customer still has to create, which is the half DoDomain does. Markdown: https://dodomain.io/compare/cloudflare-for-saas.md - [DoDomain with Approximated](https://dodomain.io/compare/approximated): Approximated's managed edge, its DNS widget (Domain Connect only) and its per-hostname price at three volumes, against DoDomain's DNS layer: who does which half and how to run both. Markdown: https://dodomain.io/compare/approximated.md - [Free domain tools](https://dodomain.io/tools): Index of the free, no-signup domain tools: DNS provider detector, DNS propagation checker, SPF record checker. Markdown: https://dodomain.io/tools.md - [DNS provider detector](https://dodomain.io/tools/provider-detector): Which DNS host serves a domain, read from its authoritative nameservers, and whether one-click (Cloudflare or Domain Connect) setup is available there. Markdown: https://dodomain.io/tools/provider-detector.md - [DNS propagation checker](https://dodomain.io/tools/dns-lookup): One record read from the authoritative nameservers and three public resolvers side by side, so a disagreement is visible rather than guessed at. Markdown: https://dodomain.io/tools/dns-lookup.md - [SPF record checker](https://dodomain.io/tools/spf-checker): Parses a domain's SPF record, walks every include and redirect, and counts DNS lookups against the limit of ten, with a severity on every finding. Markdown: https://dodomain.io/tools/spf-checker.md - [CNAME chain checker](https://dodomain.io/tools/cname-chain): Follow a bounded CNAME chain, flag repeated names and apex aliases, and report possible flattening with explicit limits on hidden-target detection. Markdown: https://dodomain.io/tools/cname-chain.md - [Domain verification diagnoser](https://dodomain.io/tools/verify-diagnoser): Compare a domain with its expected record, diagnose supported DNS failure reasons, and open the detected provider's fix instructions. Markdown: https://dodomain.io/tools/verify-diagnoser.md - [DNS record diff](https://dodomain.io/tools/dns-diff): Compare up to 25 pasted expected records with a live DNS snapshot: added, removed, changed and measurable TTL-only differences, with no snapshot storage. Markdown: https://dodomain.io/tools/dns-diff.md - [The state of Domain Connect](https://dodomain.io/state-of-domain-connect): Nightly-measured primary data on which DNS providers actually serve Domain Connect templates today, the evidence behind every one-click coverage claim on this site. Markdown: https://dodomain.io/state-of-domain-connect.md - [DNS glossary for custom domains](https://dodomain.io/glossary): Plain-language definitions of the DNS terms behind connecting a customer domain to a SaaS product, each with the rules that apply and an FAQ. Markdown: https://dodomain.io/glossary.md - [Glossary: apex domain](https://dodomain.io/glossary/apex-domain): What a zone apex is, which records must live there, why a CNAME cannot, and when a SaaS product should ask for a subdomain instead. Markdown: https://dodomain.io/glossary/apex-domain.md - [Glossary: CNAME record](https://dodomain.io/glossary/cname-record): How a CNAME alias is followed, the rules it must obey (nothing else at its name, never at the apex), and why SaaS custom domains are built on it. Markdown: https://dodomain.io/glossary/cname-record.md - [Glossary: A record](https://dodomain.io/glossary/a-record): A and AAAA records: what they hold, several at one name, and what pinning your IP addresses into every customer's zone costs. Markdown: https://dodomain.io/glossary/a-record.md - [Glossary: ALIAS records and CNAME flattening](https://dodomain.io/glossary/alias-and-cname-flattening): Why DNS forbids a CNAME at the apex, how ALIAS, ANAME and CNAME flattening work around it, what each major provider calls it, and what it breaks. Markdown: https://dodomain.io/glossary/alias-and-cname-flattening.md - [Glossary: TXT record verification](https://dodomain.io/glossary/txt-record-verification): How TXT-record domain ownership proof works and why it is a security control against domain claiming and subdomain takeover, not a formality. Markdown: https://dodomain.io/glossary/txt-record-verification.md - [Glossary: DNS propagation](https://dodomain.io/glossary/dns-propagation): What DNS propagation really is (caches expiring, not records spreading), how TTL and negative caching set the delay, and how to check it. Markdown: https://dodomain.io/glossary/dns-propagation.md - [Glossary: registrar vs DNS host](https://dodomain.io/glossary/authoritative-vs-registrar): Why the registrar and the authoritative DNS host can be different companies, how to find which one serves a domain, and how to check its delegation. Markdown: https://dodomain.io/glossary/authoritative-vs-registrar.md - [Glossary: subdomain vs custom domain](https://dodomain.io/glossary/subdomain-vs-custom-domain): Tenant subdomains versus customers' own domains in a SaaS product: the DNS, TLS, cookie, SEO and ownership differences. Markdown: https://dodomain.io/glossary/subdomain-vs-custom-domain.md - [Glossary: Domain Connect](https://dodomain.io/glossary/domain-connect): The open protocol for one-click DNS setup: templates, discovery, signed applies, where it is supported, and its limits. Markdown: https://dodomain.io/glossary/domain-connect.md - [Guides: custom domains for SaaS](https://dodomain.io/guides): The hub for long-form guides: multi-tenant custom domains in Next.js, Rails, Laravel and Django, Domain Connect field notes, measured DNS propagation times, the SPF lookup limit, and the conversion article. Markdown: https://dodomain.io/guides.md - [Do custom domains raise conversion?](https://dodomain.io/guides/custom-domains-and-conversion): An honest, cited answer: no controlled study isolates the effect, what the branded-link studies and pricing pages do show, and how to run the test in your own product. Markdown: https://dodomain.io/guides/custom-domains-and-conversion.md - [How to let customers use their own domain in your SaaS](https://dodomain.io/guides/let-customers-use-their-own-domain): The five jobs of a custom-domain feature (DNS record, ownership proof, certificate, routing, monitoring), with Let's Encrypt's rate limits, Caddy on-demand TLS and CAA quoted from source. Markdown: https://dodomain.io/guides/let-customers-use-their-own-domain.md - [Cloudflare for SaaS custom hostnames: setup, step by step](https://dodomain.io/guides/cloudflare-for-saas-custom-hostnames-setup): The Cloudflare for SaaS setup sequence from Cloudflare's docs: fallback origin, CNAME target, adding a custom hostname, the customer's CNAME, TXT, delegated and HTTP certificate validation, the two status fields that mean live, and apex proxying for bare domains. Markdown: https://dodomain.io/guides/cloudflare-for-saas-custom-hostnames-setup.md - [How long does DNS propagation take? The TTLs we measured](https://dodomain.io/guides/dns-propagation-times): Measured delegation and negative-caching TTLs for 15 top-level domains and 36 zones, the resolver caps that bound them, and what each means for a changed, new or re-delegated record. Markdown: https://dodomain.io/guides/dns-propagation-times.md - [SPF 10-lookup limit: what each vendor's include costs](https://dodomain.io/guides/spf-10-lookup-limit): RFC 7208's 10-lookup limit explained, with the measured lookup cost of the include each email vendor documents (1 to 7), a worked over-the-limit example, and fixes. Markdown: https://dodomain.io/guides/spf-10-lookup-limit.md - [DoDomain agent setup: Claude Code, Codex, Cursor](https://dodomain.io/agent-setup): One sentence to paste into Claude Code, Codex, Cursor, OpenCode or GitHub Copilot: the agent fetches https://dodomain.io/agent-setup/prompt.md and connects itself to the DoDomain MCP server, installs the SDK and verifies the setup. Per-agent commands for doing it by hand. Markdown: https://dodomain.io/agent-setup.md - [Set up DoDomain in Claude Code](https://dodomain.io/agent-setup/claude-code): The exact Claude Code command or config for DoDomain's remote MCP server (OAuth sign-in, no API key), how to trigger the sign-in, the SDK install, and the verify step. Markdown: https://dodomain.io/agent-setup/claude-code.md - [Set up DoDomain in Codex](https://dodomain.io/agent-setup/codex): The exact Codex command or config for DoDomain's remote MCP server (OAuth sign-in, no API key), how to trigger the sign-in, the SDK install, and the verify step. Markdown: https://dodomain.io/agent-setup/codex.md - [Set up DoDomain in Cursor](https://dodomain.io/agent-setup/cursor): The exact Cursor command or config for DoDomain's remote MCP server (OAuth sign-in, no API key), how to trigger the sign-in, the SDK install, and the verify step. Markdown: https://dodomain.io/agent-setup/cursor.md - [Set up DoDomain in OpenCode](https://dodomain.io/agent-setup/opencode): The exact OpenCode command or config for DoDomain's remote MCP server (OAuth sign-in, no API key), how to trigger the sign-in, the SDK install, and the verify step. Markdown: https://dodomain.io/agent-setup/opencode.md - [Set up DoDomain in GitHub Copilot (VS Code)](https://dodomain.io/agent-setup/vscode): The exact GitHub Copilot (VS Code) command or config for DoDomain's remote MCP server (OAuth sign-in, no API key), how to trigger the sign-in, the SDK install, and the verify step. Markdown: https://dodomain.io/agent-setup/vscode.md - [Terms of Service](https://dodomain.io/terms): The terms governing the API, widget, hosted flow and dashboard. Markdown: https://dodomain.io/terms.md - [Privacy Policy](https://dodomain.io/privacy): What data DoDomain processes, why, and for how long. Markdown: https://dodomain.io/privacy.md - [Does GoDaddy support Domain Connect?](https://dodomain.io/domain-connect/godaddy): Whether GoDaddy serves DoDomain's Domain Connect templates, which templates, the measured state's date, and the one-click or manual verdict, measured nightly. Markdown: https://dodomain.io/domain-connect/godaddy.md - [Does IONOS support Domain Connect?](https://dodomain.io/domain-connect/ionos): Whether IONOS serves DoDomain's Domain Connect templates, which templates, the measured state's date, and the one-click or manual verdict, measured nightly. Markdown: https://dodomain.io/domain-connect/ionos.md - [Does 1&1 support Domain Connect?](https://dodomain.io/domain-connect/1-and-1): Whether 1&1 serves DoDomain's Domain Connect templates, which templates, the measured state's date, and the one-click or manual verdict, measured nightly. Markdown: https://dodomain.io/domain-connect/1-and-1.md - [Does Domain Chief support Domain Connect?](https://dodomain.io/domain-connect/domain-chief): Whether Domain Chief serves DoDomain's Domain Connect templates, which templates, the measured state's date, and the one-click or manual verdict, measured nightly. Markdown: https://dodomain.io/domain-connect/domain-chief.md - [Does Cloudflare support Domain Connect?](https://dodomain.io/domain-connect/cloudflare): Whether Cloudflare serves DoDomain's Domain Connect templates, which templates, the measured state's date, and the one-click or manual verdict, measured nightly. Markdown: https://dodomain.io/domain-connect/cloudflare.md - [Does Glauca support Domain Connect?](https://dodomain.io/domain-connect/glauca): Whether Glauca serves DoDomain's Domain Connect templates, which templates, the measured state's date, and the one-click or manual verdict, measured nightly. Markdown: https://dodomain.io/domain-connect/glauca.md - [Does Vercel support Domain Connect?](https://dodomain.io/domain-connect/vercel): Whether Vercel serves DoDomain's Domain Connect templates, which templates, the measured state's date, and the one-click or manual verdict, measured nightly. Markdown: https://dodomain.io/domain-connect/vercel.md - [Does NameSilo support Domain Connect?](https://dodomain.io/domain-connect/namesilo): Whether NameSilo serves DoDomain's Domain Connect templates, which templates, the measured state's date, and the one-click or manual verdict, measured nightly. Markdown: https://dodomain.io/domain-connect/namesilo.md - [Does Simply.com support Domain Connect?](https://dodomain.io/domain-connect/simply-com): Whether Simply.com serves DoDomain's Domain Connect templates, which templates, the measured state's date, and the one-click or manual verdict, measured nightly. Markdown: https://dodomain.io/domain-connect/simply-com.md - [Does Squarespace Domains support Domain Connect?](https://dodomain.io/domain-connect/squarespace-domains): Whether Squarespace Domains serves DoDomain's Domain Connect templates, which templates, the measured state's date, and the one-click or manual verdict, measured nightly. Markdown: https://dodomain.io/domain-connect/squarespace-domains.md - [Does WordPress.com support Domain Connect?](https://dodomain.io/domain-connect/wordpress-com): Whether WordPress.com serves DoDomain's Domain Connect templates, which templates, the measured state's date, and the one-click or manual verdict, measured nightly. Markdown: https://dodomain.io/domain-connect/wordpress-com.md - [Does GoDaddy reseller support Domain Connect?](https://dodomain.io/domain-connect/godaddy-reseller): Whether GoDaddy reseller serves DoDomain's Domain Connect templates, which templates, the measured state's date, and the one-click or manual verdict, measured nightly. Markdown: https://dodomain.io/domain-connect/godaddy-reseller.md - [Does Host Europe support Domain Connect?](https://dodomain.io/domain-connect/host-europe): Whether Host Europe serves DoDomain's Domain Connect templates, which templates, the measured state's date, and the one-click or manual verdict, measured nightly. Markdown: https://dodomain.io/domain-connect/host-europe.md - [Does Danego DNS support Domain Connect?](https://dodomain.io/domain-connect/danego-dns): Whether Danego DNS serves DoDomain's Domain Connect templates, which templates, the measured state's date, and the one-click or manual verdict, measured nightly. Markdown: https://dodomain.io/domain-connect/danego-dns.md ## App - [Dashboard](https://app.dodomain.io/signin): Create apps, copy API keys, manage webhook endpoints, read delivery logs.