API

The open AHR999 API

Two static endpoints, no key, no rate gate, Access-Control-Allow-Origin: *. Fetch the full AHR999 history as JSON or CSV straight from a browser, a shell, or a notebook.

Overview

The dataset is served as plain static files over HTTPS from https://ahr999.aix4u.com. Every endpoint is read-only, needs no API key, and is returned with Access-Control-Allow-Origin: *, so you can fetch it directly from a browser. The series changes at most once per day — please cache responses instead of polling.

The data is for research, education, and observability. It is not financial advice and does not predict future returns.

Endpoints

MethodPathReturns
GET/datasets/ahr999.jsonFull history as a JSON array, oldest first.
GET/datasets/ahr999.csvThe same rows as CSV, UTF-8, with a header row.

Each JSON element follows the data-format contract: date, close, ma200, ahr999, quantile5y, windowKind.

Examples

Latest reading

curl -s https://ahr999.aix4u.com/datasets/ahr999.json | jq '.[-1]'

A date range

curl -s https://ahr999.aix4u.com/datasets/ahr999.json \
  | jq '[.[] | select(.date >= "2026-01-01" and .date <= "2026-01-31")]'

Download the CSV

curl -O https://ahr999.aix4u.com/datasets/ahr999.csv

From JavaScript

const rows = await fetch(
  "https://ahr999.aix4u.com/datasets/ahr999.json",
).then((r) => r.json());

const latest = rows.at(-1);
console.log(latest.ahr999, latest.windowKind);

Machine-readable discovery

CORS & caching

Responses are static and cross-origin readable. Because the series only changes after the daily UTC close, you can treat any response as valid for the rest of the UTC day. When you redistribute values, cite the dataset under CC BY 4.0 — see the FAQ.