Cloudflare · Daily · 07:00 your time
Your daily Cloudflare email.
Visits and page views from Web Analytics, plus requests, cache hit rate and threats blocked for your domain, each vs the previous day, last week and last month. Computed from Cloudflare's Analytics API, never generated.
- From
- Morning Pulse <noreply@mail.morningpulse.app>
- Subject
- Morning Pulse — Fri, Oct 16
Morning Pulse App
Friday, October 16, 2026
Hello Alex,
Here are your numbers:
Fieldnote
Web
| KPI | Period | Value |
|---|---|---|
| Visits cfVisits |
Oct 15 | 1,532 |
| ▲ +4.6% vs. previous day▲ +6.9% vs. last week▲ +11.8% vs. last month | ||
| Page Views cfPageviews |
Oct 15 | 3,977 |
| ▲ +3.1% vs. previous day▼ -1.8% vs. last week▲ +9.4% vs. last month | ||
| Requests cfRequests |
Oct 15 | 48,210 |
| ▲ +2.7% vs. previous day▲ +5.3% vs. last week▲ +12.6% vs. last month | ||
| Cache Hit Rate cfCacheHitRate |
Oct 15 | 62.4% |
| ▲ +1.2% vs. previous day▼ -0.8% vs. last week▲ +3.5% vs. last month | ||
| Threats Blocked cfThreats |
Oct 15 | 37 |
| ▼ -18.0% vs. previous day▼ -9.8% vs. last week▲ +23.3% vs. last month | ||
01 — Build vs run
Cloudflare already counts every visit. It just never emails you.
For a daily number, you'd script the GraphQL Analytics API. Here is what that script has to get right.
| Problem | Your script | Morning Pulse |
|---|---|---|
| Visitors | Your scriptThe domain's Unique Visitors counts IP addresses, bots included, and reads like people. | Morning PulseVisits and Page Views from Web Analytics. Never called visitors. |
| Errors | Your scriptThe API can answer HTTP 200 with an error inside. Read it as data and you email zeros. | Morning PulseAn error is an error. A day Cloudflare doesn't return stays unknown, never 0. |
| Days | Your scriptCloudflare counts in UTC. Mix that with local days and Monday bleeds into Sunday. | Morning PulseUTC days, each labeled with the day it covers. |
| Rate averages | Your scriptAveraging daily cache hit rates weighs a quiet Sunday like a launch day. | Morning PulseWeekly and monthly cache hit rate is weighted by requests. |
| Numbers | Your scriptAn LLM summarizing the JSON can round, swap or invent a percentage. | Morning PulseArithmetic in code. No model writes a number. |
02 — What's inside
Your site and your domain, one row each.
Pick a Web Analytics site, a domain, or both. Quick setup adds Visits, Page Views and Requests when you pick a site, or Requests, Cache Hit Rate and Threats Blocked for a domain alone. Aggregation is how days add up when you pick a weekly or monthly KPI instead of a daily one.
| KPI | Aggregation | |
|---|---|---|
| VisitscfVisitsVisits to your site that day, from Web Analytics. Sampled. | sum | Visits to your site that day, from Web Analytics. Sampled. |
| Page ViewscfPageviewsPages viewed on your site that day, from Web Analytics. | sum | Pages viewed on your site that day, from Web Analytics. |
| RequestscfRequestsEvery request Cloudflare served for your domain, bots included. | sum | Every request Cloudflare served for your domain, bots included. |
| Cache Hit RatecfCacheHitRateShare of requests Cloudflare answered from its cache. | weighted by requests | Share of requests Cloudflare answered from its cache. |
| Threats BlockedcfThreatsRequests Cloudflare blocked as threats. | sum · lower is better | Requests Cloudflare blocked as threats. |
| BandwidthcfBandwidthData Cloudflare served for your domain. | sum | Data Cloudflare served for your domain. |
How days are counted
- Days are UTC, as Cloudflare counts them, not your time zone. The 7:00 email shows the last full UTC day, dated.
- Web Analytics samples page loads, so on a small site Visits and Page Views can jump from day to day. Weekly and monthly trends are steadier.
- Morning Pulse re-reads the last 10 days on every run, so later emails and trends use Cloudflare's latest totals.
03 — How it works
Set it up once. Read it every morning.
-
01
Create a read-only token
In Cloudflare, open My Profile > API Tokens > Create Token and start a custom token. Add Account Analytics Read, Zone Analytics Read and Zone Read, and include your domain.
-
02
Paste it, pick your site
Choose your domain, your Web Analytics site, or both. Quick setup adds your KPIs.
-
03
Read it at 7:00
Yesterday's totals in UTC, each dated with the day it covers. Recent days are re-read on every run.
Read-only. Morning Pulse can't change your Cloudflare settings.
The token carries read permissions only. Morning Pulse's code allows a short list of Cloudflare endpoints: the analytics query, your domain and site lists, and the token check.
Reads
- Your domains and Web Analytics sites, so you can pick one
- Daily visits, page views, requests, cache hit rate, threats blocked and bandwidth
Never
- Changes DNS, firewall, cache or any other setting
- Reads visitor-level data or IP addresses
- Accepts your Global API Key
- Keeps your token after you disconnect
04 — FAQ
Cloudflare questions, answered straight.
Which Cloudflare numbers are in the email?
Visits and page views from Cloudflare Web Analytics, and requests, cache hit rate, threats blocked and bandwidth for your domain. They are daily totals in UTC, each compared with the previous day, last week and last month. Pick a domain, a Web Analytics site, or both. There is no breakdown by page, country or referrer.
Why Visits, not visitors?
Cloudflare Web Analytics counts visits and page views, but it has no unique-visitor figure, and it samples page loads, so a small site's numbers can jump from day to day. Morning Pulse shows Visits, the number Cloudflare has, and never calls it visitors. Use GA4 or Plausible when you need unique visitors.
Why not the Unique Visitors on my domain's Cloudflare dashboard?
That figure counts unique IP addresses, bots included. One person on a phone and a laptop counts twice, an office behind one address counts once, and crawlers count too. Next to GA4 or Plausible it would mislead, so Morning Pulse leaves it out. Visits and Page Views come from Web Analytics instead.
What can Morning Pulse do with my token?
Only read. The token needs three read permissions: Account Analytics Read, Zone Analytics Read and Zone Read. Morning Pulse lists your domains and Web Analytics sites so you can pick, then only reads daily totals for them. It can't change your DNS, firewall, cache or any other setting. The token is encrypted at rest, and only its last 4 characters are shown. Disconnecting deletes the token and your settings; to revoke access, delete the token in Cloudflare under My Profile > API Tokens. Don't paste your Global API Key: Morning Pulse refuses it.
Which days does the email show?
Days are UTC, as Cloudflare counts them, not your time zone. The email shows the last full UTC day, and Morning Pulse re-reads the last 10 days on every run, so later emails and trends use Cloudflare's latest totals.
Do I need a paid Cloudflare plan?
No. Web Analytics and the Analytics API work on Cloudflare's Free plan. How far back past days go depends on how long Cloudflare keeps data for your plan.
How much does it cost?
Free is €0 forever: 3 apps, unlimited KPIs, every source except X and the daily email, with no card. Starter is €4/month or €40/year: 6 apps, unlimited KPIs, every source except X, plus the weekly digest every Tuesday. Pro is €8/month or €80/year: unlimited apps, X post analytics, anomaly alert emails (not for Cloudflare KPIs), weekly, monthly and quarterly emails, unlimited recipients, view-only team access and a morning brief on WhatsApp (paid Pro by card only, not the trial or Shopify billing; EU, India and Canada numbers). Your first Starter or Pro subscription starts with a 14-day trial, and checkout asks for a card. See pricing.
Same email, other sources
GA4
Search Console
Amplitude
Plausible
App Store
Google Play
Stripe
Shopify
Instagram
X, Pro plan only
Your Cloudflare numbers, tomorrow at 7:00.
Free for up to 3 apps, every source but X. No card.