1) Where to get data (reliable + licensable)

For a production, continuously updating map, start with Cloudflare Radar’s API and optionally link out to Digital Attack Map for context.


2) How to get it (ingestion)

  1. Create an API token (Account → Radar → Read). Requests hit https://api.cloudflare.com/client/v4/radar/.... Cloudflare Docs

  2. Pull L7 (HTTP) attack aggregates

  3. Pull L3/4 (network-layer) attack aggregates (protocol splits, datacenter-attributed):

Auth header: Authorization: Bearer <API_TOKEN>
Formats: format=json (default) or format=csv (nice for Pandas). Cloudflare Docs


3) How to clean + prep it (data model)

Minimum model for a globe/choropleth + arcs:

Tables (or JSON schemas)

Transform steps

  1. Normalize fields

  2. Confidence filtering

  3. Attribution caveats

  4. Smoothing & freshness

  5. Country geometry join

  6. Licensing

Optional enrichments


4) How (and where) to display it

Frontend stack (fast path)

Dashboard alternative

Backend

Visual encodings


5) Example requests you can drop into a script

(Replace API_TOKEN)

Top L7 targets (last 24h) for choropleth/bubbles