Free, public JSON API for the Nikkei Fear & Greed Index. Live score, historical data, USD/JPY, JGB rates, and JPX foreign investor flow. No registration. No API key. CORS open.
All endpoints are accessed via a single base URL with an ?action= query parameter:
https://nikkei.feargreedchart.com/api/?action=<endpoint>
All responses are JSON. CORS is open (Access-Control-Allow-Origin: *) so you can call this directly from a browser.
Current Nikkei F&G score, label, all four components with diagnostics, and live Nikkei 225 + USD/JPY values. Cached server-side for 5 minutes.
| Field | Type | Description |
|---|---|---|
| score | int | 0–100 composite score. Higher = greedier. |
| label | string | One of: Extreme Fear, Fear, Neutral, Greed, Extreme Greed. |
| updated_at | string (ISO) | Server timestamp when the score was computed. |
| nikkei.level | float | Nikkei 225 closing level. |
| nikkei.level_date | string (YYYY-MM-DD) | Date of the latest Nikkei reading. |
| nikkei.change_pct | float | Day-over-day % change. |
| usdjpy.rate | float | Latest USD/JPY rate (yen per dollar). |
| usdjpy.rate_date | string | Date of the latest FX reading. |
| components.momentum | object | Score + ratio vs 125d MA. |
| components.volatility | object | Score + annualized realized volatility. |
| components.currency | object | Score + USD/JPY 20-day % change. |
| components.foreign_flow | object | null | Score + net foreign buy in 千円 + week_end. null if <26 weeks of JPX history. |
| ff_status | string | live or pending. |
{
"score": 63,
"label": "Greed",
"updated_at": "2026-05-16T04:00:21+00:00",
"nikkei": {
"level": 61409.29,
"level_date": "2026-05-15",
"change_pct": -1.99
},
"usdjpy": {
"rate": 156.64,
"rate_date": "2026-05-15"
},
"components": {
"momentum": {
"score": 83,
"ratio": 1.135,
"label": "Stretched"
},
"volatility": {
"score": 49,
"vol": 0.131,
"label": "Choppy"
},
"currency": {
"score": 22,
"chg_20d": -1.62,
"label": "Yen firming"
},
"foreign_flow": {
"score": 96,
"value_kyen": 1209653731,
"net_weekly_b_yen": 1209.65,
"week_end": "2026-05-08",
"sample_size": 104
}
},
"ff_status": "live",
"source_notes": "Nikkei 225 © Nikkei Inc. via FRED. USD/JPY via FRED. Foreign flow from JPX Trading by Type of Investors (weekly)."
}
2-year time series for USD/JPY (daily), JGB 10-year yield (monthly), and BoJ discount rate (monthly). Powers the "Yen & Rates" section of the page. Cached server-side for 1 hour.
| Field | Type | Description |
|---|---|---|
| updated_at | string (ISO) | When the series were fetched. |
| usdjpy_series | array | Array of {date, value} objects, daily. |
| jgb10y_series | array | JGB 10Y yield series, monthly. |
| boj_rate_series | array | BoJ discount rate series, monthly. |
| note | string | Frequency note: JGB and BoJ are monthly (FRED/OECD), USD/JPY is daily. |
Full daily score history back to 2020-01-06 (~1,500 trading days). Each day has the composite score plus component breakdowns. Cached server-side for 1 hour.
| Field | Type | Description |
|---|---|---|
| methodology | string | Describes the scoring approach (4-component / 3-component fallback). |
| first_date | string | Earliest date in the history. |
| last_date | string | Latest date in the history. |
| count | int | Number of daily entries. |
| history[] | array | Per-day entries with date, score, label, m, v, c, f, nikkei, fx. |
{
"date": "2026-05-15",
"score": 63,
"label": "Greed",
"m": 83,
"v": 49,
"c": 22,
"f": 96,
"f_week_end": "2026-05-08",
"nikkei": 61409.29,
"fx": 156.64
}
~10 years of weekly net foreign buy values for the TSE Prime market, extracted from JPX's Trading-by-Type-of-Investors report. Refreshes Thursdays after JPX publishes.
| Field | Type | Description |
|---|---|---|
| methodology | string | Describes the data source and processing. |
| unit | string | Always "1000 JPY (千円)". Values are in thousands of yen. |
| sheet | string | Always "TSE Prime" (the Nikkei 225 listing tier). |
| updated_at | string (ISO) | Last refresh time. |
| count | int | Number of weekly entries. |
| weeks[] | array | Per-week entries: {week_end, week_range, foreign_net_kyen, source}. |
foreign_net_kyen is in thousands of yen (千円, the unit JPX publishes in). To convert to billions of yen, divide by 1,000,000. A value of 1209653731 means ¥1,209,653,731 thousand = ¥1.21 trillion = ¥1,210 billion.
Lightweight liveness check. Returns server time and confirms data files exist.
{
"status": "ok",
"time": "2026-05-16T04:00:21+00:00",
"data_dir_writable": true,
"history_file_exists": true,
"flow_file_exists": true
}
// Get today's Nikkei F&G score
fetch('https://nikkei.feargreedchart.com/api/?action=nikkei')
.then(r => r.json())
.then(data => {
console.log('Score:', data.score, '(' + data.label + ')');
console.log('Nikkei 225:', data.nikkei.level);
console.log('USD/JPY:', data.usdjpy.rate);
// Component breakdown
const c = data.components;
console.log('Momentum:', c.momentum.score);
console.log('Volatility:', c.volatility.score);
console.log('Currency:', c.currency.score);
if (c.foreign_flow) {
console.log('Foreign flow:', c.foreign_flow.score,
'(¥' + c.foreign_flow.net_weekly_b_yen + 'B)');
}
});
import requests
r = requests.get("https://nikkei.feargreedchart.com/api/?action=nikkei")
data = r.json()
print(f"Score: {data['score']} ({data['label']})")
print(f"Nikkei 225: {data['nikkei']['level']:,.2f}")
print(f"USD/JPY: {data['usdjpy']['rate']:.2f}")
# Component breakdown
for name, c in data["components"].items():
if c is not None:
print(f" {name:14s} {c['score']:3d}")
curl -s "https://nikkei.feargreedchart.com/api/?action=nikkei" | jq .score
# 63
curl -s "https://nikkei.feargreedchart.com/api/?action=nikkei-history" | jq '.count'
# 1553
?action=nikkei is cached for 5 minutes. ?action=nikkei-rates and ?action=nikkei-history are cached for 1 hour. ?action=nikkei-flow serves the static flow file directly.The API and methodology are free to use. If you build something public with this data, a link back to Nikkei.FearGreedChart.com is appreciated but not required.
Underlying data: Nikkei 225 © Nikkei Inc. (via FRED). USD/JPY via FRED DEXJPUS. JGB 10Y via FRED/OECD. Foreign investor flow from JPX Trading by Type of Investors (weekly XLS, public).
Data is provided as-is with no uptime guarantee. Nothing here is investment advice. Always consult a qualified financial professional before making investment decisions.