How to Set Up Domain Expiry Alerts in Cloudflare

VigilDog Team · September 25, 2026 · 6 min read

"Set up a domain expiry alert in Cloudflare" sounds like it should be a single toggle. It isn't, and the reason matters, because a lot of people assume Cloudflare is watching their expiry date when it isn't. What Cloudflare does about expiry depends entirely on whether it's your registrar or merely hosting your DNS. Get that distinction wrong and you'll be surprised by a lapsed domain despite 'using Cloudflare.'

The distinction that changes everything

Cloudflare plays two very different roles. It can be your registrar (Cloudflare Registrar), where you actually bought or transferred the domain to them. Or it can be your DNS provider, where you registered the domain somewhere else (GoDaddy, Namecheap, Google Domains' successor, etc.) and just pointed the nameservers at Cloudflare to use their DNS and CDN.

This single fact determines whether Cloudflare knows anything about your registration expiry. As a registrar, Cloudflare owns the renewal relationship and can email you. As a DNS-only provider, Cloudflare has no visibility into when your registration at another company lapses, it's managing your records, not your registration.

If Cloudflare is your registrar

Cloudflare Registrar auto-renews domains by default and charges at wholesale cost. Renewal happens automatically as long as a valid payment method is on file, and Cloudflare emails renewal and expiry notices to your account address. In practice, your main job is keeping billing details current, a failed card is the realistic way a Cloudflare-registered domain lapses, not a forgotten manual renewal.

That said, 'auto-renew is on' is not the same as 'someone is watching.' Notification emails go to one inbox and are easy to filter or miss, and a declined payment can quietly stall the renewal. So even here, an independent alert that isn't dependent on that one mailbox is worth having.

If Cloudflare is only your DNS (the common trap)

This is where people get burned. If you registered the domain elsewhere and use Cloudflare purely for DNS, Cloudflare has no expiry alert to offer you, there's no field in the dashboard for your registrar's expiry date, and no notification when it approaches, because Cloudflare simply doesn't have that data. The renewal lives entirely with your actual registrar.

The dangerous part is the false sense of security: the domain feels 'managed in Cloudflare,' so the expiry date at the real registrar goes unwatched. When it lapses, your DNS in Cloudflare is fine, but the domain itself stops resolving because the registration is gone. No amount of Cloudflare configuration prevents this.

Building your own alert

If you want to roll it yourself, expiry data is public via RDAP (the modern replacement for WHOIS). A small scheduled script can query RDAP for a domain, read the expiration date, and notify you when it's within, say, 30 days. It's a genuinely lazy option that works for a handful of domains.

  • Query RDAP: curl https://rdap.org/domain/example.com and read the 'expiration' event date
  • Compare against today; if fewer than 30 days remain, send yourself a message
  • Run it on a daily cron (or a Cloudflare Worker Cron Trigger, which is a fair use of Cloudflare here)
  • Repeat per domain, which is exactly where a DIY script starts to creak

When a dedicated monitor is the honest answer

A one-domain script is fine. The moment you're responsible for ten, or for clients' domains spread across several registrars, the DIY approach turns into a brittle pile of cron jobs, and the whole point, never missing an expiry, depends on scripts nobody maintains. RDAP rate limits, inconsistent date formats across registries, and alerts that go to a channel you stopped reading all conspire against you. You can spot-check any single domain today with our free domain expiry checker, and read when does my domain expire for how the grace and redemption periods actually work after the date passes.

This is the gap VigilDog fills without the maintenance: it monitors registration expiry across every domain you own regardless of registrar, Cloudflare, Namecheap, GoDaddy, all in one view, and sends escalating alerts as the date approaches, alongside the SSL, DNS, and email checks you'd otherwise track separately. Cloudflare is a great place to run your DNS; it just isn't where your expiry safety net should live.

Questions

Frequently asked

Does Cloudflare warn me before my domain expires?

Only if Cloudflare is your registrar, then it auto-renews and emails you. If you registered elsewhere and just use Cloudflare for DNS, Cloudflare has no visibility into your expiry date and won't warn you; that responsibility stays with your actual registrar.

My DNS is on Cloudflare but the domain still expired, how?

Because the registration lives at whichever registrar you bought the domain from, not at Cloudflare. Your Cloudflare DNS records were fine, but once the registration lapsed the domain stopped resolving entirely. Cloudflare DNS and domain registration are separate things.

Can I use a Cloudflare Worker to alert on domain expiry?

Yes. A Worker with a Cron Trigger can query RDAP for a domain's expiration date and message you when it's near. That works well for a few domains; across many domains and registrars, a dedicated monitor saves you from maintaining fragile scripts.

One expiry safety net across every registrar

VigilDog watches domain expiry, SSL, DNS, and email in one place, so a domain never lapses just because it lived at the wrong registrar.

Your first domain is free forever