CME TRACKER · EMBED
? Help ⚛ The science ← Back to the tracker

Embed CME Tracker on your site

A small live widget with the current space weather — solar wind, Kp index, and inbound CME arrivals — plus an open JSON API if you'd rather render the numbers yourself. Free, no key, no scripts on your page.

1The widget

Pick a look, then copy the snippet. The widget refreshes itself every 2 minutes and always shows how fresh its data is — if our upstream feeds ever hiccup it shows the last good numbers with their timestamp, never an error on your page.

Parameters — numbers widget (/embed)

ParamValuesMeaning
themelight (default) · darkMatch your site's background.
sizefull (default) · compactFull shows Kp, wind, Bz and the next CME arrival; compact is a single row (Kp · wind · Bz). Suggested iframe sizes: 320×180 full, 320×92 compact — the layout is fluid, so nearby sizes work too.

Parameters — live map widget (/embed-map)

The map is the real tracker renderer in miniature: every CME NASA has catalogued in the last 90 days, expanding from the Sun past the inner planets in real time, with the same drag-model physics as the full site. It's always dark (it's space). Square iframes work best — 320×320 and up.

ParamValuesMeaning
zoom0.353 (default 0.82)Default fits Mars' orbit; 1 matches the full site's framing.
hideclasses, e.g. S (default) · S,C · empty for allHide CME speed classes; slow S-class is hidden by default to keep the small view clean.
labels / flares1 (default) · 0Planet/Sun labels and the solar-flare bursts at the Sun.
interactive0 (default) · 1By default the map is a click-through link to the tracker (so it never captures your page's scroll); 1 enables drag-pan and scroll-zoom inside the frame.

2The JSON API

GET https://www.cmetracker.ai/api/current — open CORS, no key. Cached at the edge for 2 minutes (the data itself refreshes from NASA/NOAA every 15). The shape below is a stable contract: fields may be added, but existing ones won't change without a schemaVersion bump.

{
  "schemaVersion": 1,
  "dataUpdatedAt": "2026-07-03T21:15:04Z",  // last successful upstream refresh
  "stale": false,                            // true when that's >35 min ago
  "wind":  { "speed": 421.3, "density": 4.2, "bz": -1.8 },   // km/s · p/cm³ · nT (null if unavailable)
  "kp":    { "value": 2.7, "gScale": null },                  // gScale "G1".."G5", null below storm level
  "latestCme": {
    "time": "2026-07-03T04:24:00Z",          // most recent CME NASA has catalogued
    "speed": 512.0,                          // km/s
    "earthDirected": false,
    "arrivalTime": null                      // ISO time if Earth-directed
  },
  "nextArrival": {                           // soonest inbound Earth-directed CME, or null
    "cmeTime": "2026-07-02T11:00:00Z",
    "arrivalTime": "2026-07-05T03:00:00Z",
    "speed": 890.0,
    "estKp": 6.2,                            // model estimate — see /science
    "gScale": "G2"
  },
  "attribution": "Data: NASA DONKI & NOAA SWPC · cmetracker.ai"
}
  • Availability: an upstream (NASA/NOAA) outage never produces an error — you get the last good numbers with their real dataUpdatedAt and stale: true. A non-200 response means there has never been data.
  • Fair use: it's edge-cached, so poll politely (every 1–5 min is plenty). Please keep the attribution when you display the numbers.
  • What the numbers mean: see the guide; how they're computed: the science.

3Notes

  • The widget is a static page with one same-origin fetch — no cookies, no analytics, no third-party scripts run on your site.
  • Estimated storm levels are model output for education, not operational forecasts — for those, see NOAA SWPC.

← Back to the tracker

© 2026 Mike DiCarlo · CME Tracker · sister site: Asteroid Tracker ↗