Dying Pale Blue Dot
Subscribe

Free weekly email

The Planet This Week

One email every Sunday: the planet’s vital signs with a decade of change beside each one, the disaster alerts GDACS published that week, companies whose climate targets moved, and what the tracked scientific bodies said — in their own words.

  • 8 vital signs, each with its chart and its source — CO₂, temperature, air pollution, protected land, renewables, sea level, sea ice and wildlife populations.
  • What is getting betteras well as what is not. Direction comes from each series’ own trend, never our mood.
  • Every number is cited. No forecasts, no rankings we invented, and a dash where a figure is genuinely unknown.

One email every Sunday. Double opt-in: nothing is sent until you confirm. One-click unsubscribe in every issue. Your address is stored to send the newsletter and for nothing else — see what we collect and why.

Developers

Build on cited planetary data

Quickstart

Every data endpoint needs an API key. Create one on your account (free — 10 calls/month, no card).

curl -H "Authorization: Bearer dpb_live_xxx" \
  https://www.dyingpaleblue.com/api/v1/series/co2_concentration

# or
curl -H "x-api-key: dpb_live_xxx" \
  https://www.dyingpaleblue.com/api/v1/series/co2_concentration?format=csv

Endpoints

34 cited series · 103 companies. The same issuer statements are published as an Atom feed at /feed.xml — open, no key needed.

GET/api/v1Self-describing index (open, no key).
GET/api/v1/seriesEvery cited series with provenance.
GET/api/v1/series/{key}One series + data points (?format=csv).
GET/api/v1/pulseOne-call snapshot: latest + previous point of every series, plus live CO₂ / temperature / sea ice (?live=only; ?fields=series|live).
GET/api/v1/eventsDated GDACS hazard events (earthquakes, cyclones, floods, volcanoes, droughts, fires) — source fields only, 30-min refresh (?since= ?types= ?level=).
GET/api/v1/indicesObserved-only climate indices: ENSO (RONI, ONI, Niño 3.4), NAO, U.S. Drought Monitor — source numbers + quoted definitions, no direction (?keys= ?points=).
GET/api/v1/updatesDated, verbatim statements by named issuers (NOAA CPC, WMO) — one entry per issuance, statusChanged flags a label change (?tracker= ?since= ?types= ?limit=). No direction or ranking.
GET/api/v1/sustainabilityCompany sustainability scores (filters, CSV; batch: ?tickers=A,B,C&include=components; ?fields=score,rating).
GET/api/v1/sustainability/sectorsPer-sector summary (carbon-intensity tier + average score).
GET/api/v1/sustainability/universeEvery scorable ticker with ISIN + shared sector vocabulary (identity only; CSV).
GET/api/v1/sustainability/changesScore changes since a date (?since=) — SBTi transitions, methodology bumps. The event feed.
GET/api/v1/sustainability/{ticker}One company + cited breakdown + SBTi climate-target facts (aliases like GOOG, BRK-B resolve).
GET/api/v1/sustainability/{ticker}/historyDaily score history + changes for one company (?from=). No back-fill.

Auth & errors

  • 401 — missing/invalid/revoked key
  • 402 — free quota used up, or subscription lapsed
  • 403 — key lacks the endpoint scope
  • 429 — rate limited (see Retry-After)
  • 304 — send If-None-Match with the last ETag; a 304 is never billed

Responses carry X-RateLimit-Limit / Remaining / Reset.

Limits & trust

  • Rate limit: 120/min per key (default)
  • Envelope: { data, meta }
  • Missing numbers are null, never 0
  • Only observed, cited series — no projections
See pricing →

Embed a chart (no key needed)

Every time-series has a chrome-less, live-updating widget at /embed/<key>— drop it in an iframe and the chart, its cited source tag and the “not a forecast” projection all travel with it. Any series key from the API works (except the country snapshot).

<iframe
  src="https://www.dyingpaleblue.com/embed/co2_concentration"
  width="100%" height="360" style="border:0" loading="lazy"
  title="Atmospheric CO2 — Dying Pale Blue Dot"></iframe>