Free CNAME Lookup & Generator
Check a CNAME record and follow the chain through to the A record behind it, or build the record your DNS provider expects with copy-ready instructions for Cloudflare, GoDaddy, Route 53 and more. No signup.
How it works
Pick lookup or generator
Lookup verifies an existing CNAME. Generator builds a record from scratch.
Type your hostname and target
We resolve the CNAME and follow it through to the underlying A record.
Paste at your DNS provider
Provider-specific instructions are included — no guessing where the 'Add record' button hides.
The apex problem, and which providers actually solve it
A CNAME record says "this name is an alias for that name". RFC
1034 requires that a name with a CNAME have no other records, and the
apex of a zone always carries SOA and NS
records. So a CNAME on example.com is invalid by construction, which is why
www.example.com works and the bare domain does not.
Every DNS provider has a workaround and they are not equivalent:
| Provider | What it is called | Can it point at a third-party host? |
|---|---|---|
| Cloudflare | CNAME flattening | Yes. Any target. |
| DNSimple, NS1, DNS Made Easy | ALIAS / ANAME | Yes. Any target. |
| Route 53 | Alias record | No. AWS resources and same-zone records only. |
| Most registrar-bundled DNS | Nothing, or an HTTP redirect | No. |
The Route 53 row is the one that costs people an afternoon. Its Alias record looks like the answer, and it is genuinely good, but its targets are restricted to AWS resources (CloudFront, ELB, S3 website endpoints, API Gateway) and other records in the same hosted zone. Pointing an apex at a SaaS platform's hostname is not one of the supported cases. If you are on Route 53 and need the apex, your options are moving DNS to a flattening provider or hardcoding A records and accepting that they will eventually change under you.
CNAME flattening works by resolving the target at query time and answering with A records instead, so the client never sees a CNAME. That is why it is legal at the apex while a literal CNAME is not.
A correct CNAME does not mean a working site
DNS is one of three layers, and each fails differently. When a hostname is pointed correctly and still does not load, this is the order to check:
| Layer | Failure looks like | How to confirm |
|---|---|---|
| DNS | NXDOMAIN, or the old target still answering | DNS propagation checker |
| HTTP routing | Wrong site, 404, or the platform's "domain not configured" page | The target host does not recognise the Host header yet |
| TLS | Browser warning, ERR_CERT_COMMON_NAME_INVALID, handshake failure | SSL certificate checker |
The most common of the three is the middle one, and it is the one people misread as a DNS problem. The CNAME resolving is necessary but it is not sufficient: the platform at the other end has to have been told your hostname exists. Many platforms only start certificate issuance once they see the CNAME resolve, so the sequence is CNAME first, then a wait measured in seconds to minutes, then HTTPS.
Chains, TTLs and the records that outlive their targets
Chains. A CNAME can point at another CNAME. Resolvers follow them, but every hop is
another round trip on a cold cache, and providers cap the depth (commonly around ten)
before returning SERVFAIL. Two hops is normal for SaaS custom domains, five is a smell.
TTLs. The TTL that governs a change is the one on the old record, since that is what resolvers cached. Lowering it to 300 the same time you make the change accomplishes nothing. Lower it at least one full old-TTL period ahead, make the change, then raise it back. 3600 is a sensible steady state.
Dangling records. A CNAME pointing at a platform resource you deleted is a dangling DNS record. Anyone who can claim that name on the provider then serves content on your hostname, which is subdomain takeover. When you offboard a customer or tear down an environment, delete the DNS record in the same change as the resource.
If you are the platform asking customers for a CNAME
Then this tool is a preview of your support burden. Every customer is on a different DNS
provider, half of them will paste the full hostname into a field that wants only the
subdomain label (producing app.example.com.example.com), some will have a
proxy toggle on that breaks certificate validation, and a handful will be on a registrar
whose DNS cannot do apex aliasing at all.
Domainee is a custom domains API for SaaS with a native MCP server, 50 domains and 100 GB free. It generates the per-customer record, watches DNS until it appears, handles certificate issuance and emits a webhook when the domain goes live. The Cloudflare SSL for SaaS guide walks through the DIY version if you would rather build it.
From the command line
Keyless, no signup:
curl -s "https://api.domainee.dev/v1/tools/cname-lookup?host=www.example.com" | jq
Rate limits are per IP and there is no uptime commitment, so it fits scripts and audits rather than a production dependency.
Frequently asked questions
Why can't I CNAME the apex of my domain?+
Per RFC 1034, a CNAME can't coexist with other records — and the apex always has SOA/NS records. Use a subdomain like www, or use ALIAS/ANAME if your DNS provider offers it (Cloudflare, DNSimple, NS1 do).
Does Route 53's Alias record solve the apex problem?+
Only for AWS targets. Route 53 Alias records can point at CloudFront, ELB, S3 website endpoints, API Gateway and other records in the same hosted zone, but not at an arbitrary third-party hostname. If you need your apex pointed at a SaaS platform, you need a provider that does true CNAME flattening (Cloudflare, DNSimple, NS1) or you have to hardcode A records.
What's the right TTL for a CNAME?+
3600 (1 hour) is a sensible default. The catch on changes is that the TTL governing your switch is the one on the old record, because that's what resolvers cached. Lower it to 300 at least one full old-TTL period before the change, not at the same time.
Why does my CNAME resolve but the site doesn't load?+
Two common causes: the target host isn't serving the right Host header for your domain (HTTP routing issue) or the TLS cert hasn't been issued for your domain yet (SSL issue). Use our SSL Certificate Checker to confirm which.
Can I have multiple CNAMEs on the same name?+
No — only one CNAME per name. If you need fan-out, use the underlying A records or DNS-level routing.
Can a CNAME point at another CNAME?+
Yes, and resolvers will follow the chain, but each hop is another round trip on a cold cache and providers cap the depth (commonly around ten) before returning SERVFAIL. Two hops is normal for SaaS custom domains. Five is worth cleaning up.
Tired of writing CNAME setup docs?
Domainee generates per-customer DNS instructions, watches DNS for the right record, and emits a webhook the moment it goes live.
50 custom domains and 100 GB bandwidth free, forever.
More free tools
SSL
Free SSL Certificate Checker
View issuer, validity, expiration countdown, and certificate chain for any domain.
DNS
Free DNS Record Lookup
Check A, AAAA, CNAME, MX, TXT, NS, and SOA records for any domain instantly.
Domain
Free WHOIS Lookup
View registrar, creation and expiry dates, name servers, and registration data for any domain.
HTTP
Free HTTP Header Checker
Inspect response headers, security headers, caching, redirects, and get a security grade for any URL.
DNS
Free DNS Propagation Checker
Query DNS servers across multiple global locations to verify your DNS changes are live.
Other
Free Custom Domain Cost Calculator
Compare building in-house vs. using a managed service for custom domains on your SaaS.
Going deeper? Guide: set up custom domains with SSL