Free · No API Key · CORS Enabled

Nikkei Fear & Greed Index API

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.

Endpoints
Base

Base URL

All endpoints are accessed via a single base URL with an ?action= query parameter:

URL
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.

Endpoint

Live Score

GET https://nikkei.feargreedchart.com/api/?action=nikkei

Current Nikkei F&G score, label, all four components with diagnostics, and live Nikkei 225 + USD/JPY values. Cached server-side for 5 minutes.

Response fields

FieldTypeDescription
scoreint0–100 composite score. Higher = greedier.
labelstringOne of: Extreme Fear, Fear, Neutral, Greed, Extreme Greed.
updated_atstring (ISO)Server timestamp when the score was computed.
nikkei.levelfloatNikkei 225 closing level.
nikkei.level_datestring (YYYY-MM-DD)Date of the latest Nikkei reading.
nikkei.change_pctfloatDay-over-day % change.
usdjpy.ratefloatLatest USD/JPY rate (yen per dollar).
usdjpy.rate_datestringDate of the latest FX reading.
components.momentumobjectScore + ratio vs 125d MA.
components.volatilityobjectScore + annualized realized volatility.
components.currencyobjectScore + USD/JPY 20-day % change.
components.foreign_flowobject | nullScore + net foreign buy in 千円 + week_end. null if <26 weeks of JPX history.
ff_statusstringlive or pending.

Example response

JSON
{
  "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)."
}
Endpoint

Yen & Rates

GET https://nikkei.feargreedchart.com/api/?action=nikkei-rates

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.

Response fields

FieldTypeDescription
updated_atstring (ISO)When the series were fetched.
usdjpy_seriesarrayArray of {date, value} objects, daily.
jgb10y_seriesarrayJGB 10Y yield series, monthly.
boj_rate_seriesarrayBoJ discount rate series, monthly.
notestringFrequency note: JGB and BoJ are monthly (FRED/OECD), USD/JPY is daily.
Endpoint

Historical Scores

GET https://nikkei.feargreedchart.com/api/?action=nikkei-history

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.

Response fields

FieldTypeDescription
methodologystringDescribes the scoring approach (4-component / 3-component fallback).
first_datestringEarliest date in the history.
last_datestringLatest date in the history.
countintNumber of daily entries.
history[]arrayPer-day entries with date, score, label, m, v, c, f, nikkei, fx.

Example entry

JSON
{
  "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
}
Endpoint

Foreign Investor Flow

GET https://nikkei.feargreedchart.com/api/?action=nikkei-flow

~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.

Response fields

FieldTypeDescription
methodologystringDescribes the data source and processing.
unitstringAlways "1000 JPY (千円)". Values are in thousands of yen.
sheetstringAlways "TSE Prime" (the Nikkei 225 listing tier).
updated_atstring (ISO)Last refresh time.
countintNumber of weekly entries.
weeks[]arrayPer-week entries: {week_end, week_range, foreign_net_kyen, source}.
Note on units: 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.
Endpoint

Health Check

GET https://nikkei.feargreedchart.com/api/?action=health

Lightweight liveness check. Returns server time and confirms data files exist.

JSON
{
  "status": "ok",
  "time": "2026-05-16T04:00:21+00:00",
  "data_dir_writable": true,
  "history_file_exists": true,
  "flow_file_exists": true
}
Examples

Code examples

JavaScript (fetch)

JavaScript
// 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)');
    }
  });

Python (requests)

Python
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

Shell
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
Operations

Caching & rate limits

Terms

Attribution & terms

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.