OSLOslo4°·PAOPalo Alto21°·NYCNew York18°·SFOSan Francisco16°AI PRIMARY · ECMWF AIFS·LDNLondon14°·BERBerlin12°·TYOTokyo27°·DPSBali30°CONSENSUS · MET NORWAY·SINSingapore31°·TRDTrondheim2°·PARParis15°·DXBDubai38°MODEL TEMP · 0.7·OSLOslo4°·PAOPalo Alto21°·NYCNew York18°·SFOSan Francisco16°VOL. I · NO. 27·LDNLondon14°·BERBerlin12°·TYOTokyo27°·DPSBali30°AI PRIMARY · ECMWF AIFS·SINSingapore31°·TRDTrondheim2°·PARParis15°·DXBDubai38°CONSENSUS · MET NORWAY·

Taking the temperature of AI.

Radical transparency

The Visitors Log.

Every other outlet blocks AI crawlers or hides its own traffic. We invite both and publish the count. Humans measured through Umami; machines classified by this app's own request log and recorded as VeriBOX events, so the count itself is auditable.

312
Human reads
20,009
AI crawls
8,424
Search crawls
80,171
Tape events

Traffic over time

Crawler breakdown

  • GPTBotIP: 5712 verified, 2961 mismatch8,675
  • AmazonbotIP check unavailable for this bot4,590
  • ClaudeBotIP check unavailable for this bot3,086
  • ApplebotIP check unavailable for this bot3,051
  • GooglebotIP: 1970 verified, 711 mismatch2,682
  • meta-externalagentIP check unavailable for this bot2,200
  • GoogleOtherIP check unavailable for this bot1,852
  • BingbotIP: 830 verified, 9 mismatch839
  • OAI-SearchBotIP: 706 verified, 58 mismatch764
  • PerplexityBotIP check unavailable for this bot328
  • ChatGPT-UserIP: 157 verified, 146 mismatch303
  • Google-ExtendedIP: 0 verified, 40 mismatch40
  • CCBotIP check unavailable for this bot9
  • YouBotIP check unavailable for this bot5
  • DuckAssistBotIP check unavailable for this bot4
  • cohere-aiIP check unavailable for this bot3
  • BytespiderIP check unavailable for this bot2

Human readers by country

  • US81
  • NL9
  • ID7
  • ES6
  • NO6
  • JP5
  • ?3
  • DE3
  • GB3
  • PL3
  • IN2
  • FR2
  • CA2
  • LT1
  • MA1

Most-read journalist

Methodology and audit

Bot detection is primarily user-agent based: a crawler that spoofs a browser UA is not caught. Two independent sources are kept side by side, never blended into one number: this app's own request classifier (every real request the Nitro server receives, recorded to the VeriBOX tape before any route handling) and a second, separate read of the temperature.news Caddy edge access log by user-agent (TEMPERATURE1-19), the same method visitor_log.py already uses for bjornvhauge.com and vryf.ai. Where the crawler operator publishes a real IP-range list (currently GPTBot, ChatGPT-User and OAI-SearchBot from OpenAI, Googlebot and Google-Extended from Google, and Bingbot from Microsoft), the app-classifier reads are additionally cross-checked against that published range and tagged verified, mismatch, or unavailable; every other bot in our list (ClaudeBot, PerplexityBot, CCBot, Bytespider, Amazonbot, Applebot, meta-externalagent and others) has no public IP-range list we could find, so their reads stay UA-only and are tagged unavailable rather than silently counted as verified. The edge log only covers requests that arrive via the temperature.news hostname; the temperature.veriton.io vhost does not yet write an access log, so traffic on that hostname alone is invisible to the edge-log cross-check (visible to the app's own tape either way). Human totals and countries come from Umami (JS-based, so bots that do not execute JavaScript are correctly excluded from that side). Numbers are real and grow only from real requests; nothing here is a fabricated placeholder.

VeriBOX tape events
80171
Hash chain valid
yes
Running checksum
089399

IP-range sources checked against

  • GPTBot18 ranges · fetched 2026-09-28T02:45Z
  • ChatGPT-User230 ranges · fetched 2026-09-28T02:45Z
  • OAI-SearchBot39 ranges · fetched 2026-09-28T02:45Z
  • Googlebot317 ranges · fetched 2026-09-28T02:45Z
  • Google-Extended272 ranges · fetched 2026-09-28T02:45Z
  • Bingbot28 ranges · fetched 2026-09-28T02:45Z

Edge access-log cross-check (temperature.news)

AI crawls (edge log)
2,326
Search crawls (edge log)
113
Log size
7861.4 KB