Global Warming API
Free climate data API with no key: global temperature anomalies from 1880 to now, plus CO2, methane, nitrous oxide and polar ice extent series. Tested example included.
Endpoint tested and returned HTTP 200 on 2026-08-21
What is the Global Warming API?
The Global Warming API republishes headline climate indicators as simple JSON with no key. The temperature endpoint returns a monthly series from 1880 onward, giving land and combined station anomalies in degrees Celsius against the twentieth-century baseline.
The underlying data comes from NASA GISS, NOAA and the Scripps CO2 programme, all of which publish it themselves — but in fixed-width text files, CSV variants and formats designed for climate scientists rather than for a fetch call. This service does the tedious part and republishes the same series as flat JSON arrays anyone can chart in ten lines.
The temperature time format is the thing that catches people out. `time` is a decimal year like `1880.04`, not a date string: the integer part is the year and the fraction is the position within it, so `.04` is roughly mid-January and `.96` is late December. Multiply the fraction by twelve to recover the month. Values are anomalies in degrees Celsius relative to a baseline, not absolute temperatures, which is why the early entries are negative — and they are returned as strings, so parse before plotting. The whole series comes back in one response with no pagination, so it is a sizeable payload.
Quick facts
- Base URL
https://global-warming.org/api- Authentication
- No API key and no account.
- Rate limit
- No published limit. The series updates monthly at most — cache accordingly.
- Pricing
- Free. The underlying data comes from public NASA, NOAA and Scripps datasets.
- CORS
- Enabled — callable directly from browser JavaScript
- Official docs
- Read the docs
How to use the Global Warming API
Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.
1. Fetch the global temperature anomaly series
GET https://global-warming.org/api/temperature-api
curl 'https://global-warming.org/api/temperature-api'const res = await fetch("https://global-warming.org/api/temperature-api");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://global-warming.org/api/temperature-api", timeout=20)
res.raise_for_status()
print(res.json()){
"error": null,
"result": [
{
"time": "1880.04",
"station": "-0.31",
"land": "-0.19"
},
{
"time": "1880.13",
"station": "-0.51",
"land": "-0.25"
},
{
"time": "1880.21",
"station": "-0.37",
"land": "-0.09"
},
{
"time": "1880.29",
"station": "-0.56",
"land": "-0.16"
},
{
"time": "1880.38",
"station": "-0.26",
"land": "-0.10"
},
{
"time": "1880.46",
"station": "-0.42",
"land": "-0.21"
},
{
"time": "1880.54",
"station": "-0.38",
"land": "-0.19"
},
{
"time": "1880.63",
"station": "0.19",
"land": "-0.10"
},
{
"time": "1880.71",
"station": "-0.43",
"land": "-0.15"
},
{
"time": "1880.79",
"station": "-0.66",
"land": "-0.24"
},
{
"time": "1880.88",
"station": "-0.34",
"land": "-0.22"
},
{
"time": "1880.96",
"station": "-0.33",
"land": "-0.18"
},
{
"time": "1881.04",
"station": "-0.71",
"land": "-0.20"
},
{
"time": "1881.13",
"station": "-0.26",
"land": "-0.14"
},
{
"time": "1881.21",
"station": "-0.14",
"land": "0.03"
},
{
"time": "1881.29",
"station": "-0.08",
"land": "0.05"
},
{
"time": "1881.38",
"station": "0.15",
"land": "0.06"
},
{
"time": "1881.46",
"station": "-0.94",
"land": "-0.19"
},
{
"time": "188Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
(none) | n/a | Optional | Each endpoint returns its whole series. There are no parameters and no pagination. |
/co2-api | path | Optional | Atmospheric CO2 concentration series from Scripps. |
/methane-api | path | Optional | Atmospheric methane concentration series. |
/nitrous-oxide-api | path | Optional | Atmospheric nitrous oxide series. |
/arctic-api | path | Optional | Arctic sea ice extent by year and month. |
Response fields
errornull- Null on success. A populated value signals a problem with the upstream feed.
resultarray- The full monthly series, oldest first.
result[].timestring- Decimal year — `1880.04` is early 1880. Multiply the fractional part by twelve to recover the month.
result[].stationstring- Meteorological station-based temperature anomaly in degrees Celsius, as a string. Negative values are below the baseline.
result[].landstring- Land-ocean combined anomaly in degrees Celsius, also a string.
What you can build with the Global Warming API
- Chart the global temperature record without parsing NASA's fixed-width files
- Build a climate dashboard combining temperature, CO2 and ice extent
- Teach data visualisation with a real long-run time series
- Compute decade-on-decade warming rates
Common errors and how to fix them
Dates parse as invalid
`time` is a decimal year, not an ISO date.
Fix: Split on the decimal point: the integer is the year, and the fraction times twelve gives the month.
Arithmetic gives string concatenation
`station` and `land` are strings.
Fix: Coerce to float before any calculation. Every numeric field here is quoted.
Large response
The full series from 1880 arrives in one payload with no pagination.
Fix: Fetch once and cache. It updates monthly at most, so there is nothing to gain from repeat calls.
Values look too small
These are anomalies, not absolute temperatures.
Fix: They are degrees Celsius relative to a baseline period. A value of 1.2 means 1.2 degrees above that baseline, not 1.2 degrees absolute.
Global Warming API — frequently asked questions
Is the Global Warming API free?
Yes, free with no key or account. It republishes public NASA, NOAA and Scripps datasets in a more convenient JSON form.
What does a time value like 1880.04 mean?
It is a decimal year. The integer part is the year and the fraction is the position within it, so multiplying the fraction by twelve recovers the month.
Are these absolute temperatures?
No, they are anomalies in degrees Celsius against a baseline period, which is why early values are negative. That is standard practice in climate science because anomalies are more robust than absolute averages.
What other series are available?
CO2, methane, nitrous oxide and Arctic sea ice extent, each on its own endpoint with the same simple shape.
Tools that pair with this API
CSV Column Statistics Calculator
Profile a CSV column by column: type, blanks, distinct values, min, max, mean, median, standard deviation and percentiles, plus top values — all in-browser.
Percentage Change Calculator
Work out the percentage increase or decrease between an old and a new value. See the absolute change and whether it went up or down, instantly and privately.
Weighted Average Calculator
Compute a weighted average from value and weight pairs: Σ(value × weight) ÷ Σ(weights). Add rows for grades, portfolios or ratings and see each weight's share.
Global Warming API is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.