Free · No API Key · CORS Enabled

KOSPI Fear & Greed
Index API

Free, public JSON API for the KOSPI Fear & Greed Index. Live score, full daily history, USD/KRW, and 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://kospi.feargreedchart.com/api/?action=<endpoint>

All responses are JSON unless otherwise noted. CORS is open (Access-Control-Allow-Origin: *) so you can call this directly from a browser.

Endpoint

Live Score

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

Current KOSPI F&G score, label, all four components with notes, KOSPI level + change, USD/KRW, three-forces flow breakdown, and historical comparison points (yesterday/week/month/year). Cached server-side for 5 minutes.

Response fields

FieldTypeDescription
scoreint0–100 composite score. Higher = greedier.
labelstringOne of: Extreme Fear, Fear, Neutral, Greed, Extreme Greed.
updatedstring (YYYY-MM-DD)Last computation date (Seoul trading day).
kospi.levelfloatKOSPI closing level.
kospi.change_pctfloatDay-over-day % change.
kospi.today_rank_60dintPercentile rank of today's move vs the last 60 sessions.
kospi.recent_30darray30 most recent closing levels (sparkline).
usd_krwfloatLatest USD/KRW rate.
components[]array4 components: Market Momentum, Volatility, Safe-Haven Demand, Foreign Flow. Each has name, weight, score, note.
foreign_flowobjectForeign investor net buy: latest_net, trend_5d, recent[].
three_forcesobjectForeigners / Institutions / Individuals flow breakdown.
historyobjectComparison snapshots: prev_close, week, month, year — each with date + score.
metaobjectMethodology note, history size, flow archive size, generation time.

Example response

JSON
{
  "score": 65,
  "label": "Greed",
  "updated": "2026-05-15",
  "kospi": {
    "level": 7981.41,
    "change_pct": 1.752,
    "today_rank_60d": 87,
    "recent_30d": [7544.21, 7610.30, /* ... */]
  },
  "usd_krw": 1378.50,
  "components": [
    {
      "name": "Market Momentum",
      "weight": 25,
      "score": 78,
      "note": "KOSPI is 8.4% above its 125-day moving average — an extended reading versus the past two years' distribution."
    },
    {
      "name": "Volatility",
      "weight": 25,
      "score": 42,
      "note": "Downside volatility sits at the 58% rank of its two-year history — in a normal range."
    },
    {
      "name": "Safe-Haven Demand",
      "weight": 25,
      "score": 62,
      "note": "The won has moved -0.45% against the dollar over 20 sessions — a steady reading."
    },
    {
      "name": "Foreign Flow",
      "weight": 25,
      "score": 78,
      "note": "Foreigners have been net buyers over the past 5 sessions."
    }
  ],
  "history": {
    "prev_close": { "date": "2026-05-14", "score": 63 },
    "week":       { "date": "2026-05-08", "score": 71 },
    "month":      { "date": "2026-04-15", "score": 58 },
    "year":       { "date": "2025-05-15", "score": 44 }
  },
  "meta": {
    "methodology": "equal-weight 25% × 4; components percentile-ranked over trailing window",
    "history_size": 1247,
    "generated_at_utc": "2026-05-15T07:30:21+00:00"
  }
}
Endpoint

Historical Scores (JSON)

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

Full daily score history with KOSPI closes. Each row has the date, score (0–100), and KOSPI closing level. Cached server-side for 1 hour.

Response fields

FieldTypeDescription
countintNumber of daily entries.
range.fromstringEarliest date in the history.
range.tostringLatest date in the history.
rows[]arrayPer-day entries: {date, score, kospi}. score may be null on days before the index began computing.

Example entry

JSON
{
  "date": "2026-05-15",
  "score": 65,
  "kospi": 7981.41
}
Endpoint

Historical Scores (CSV)

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

Same data as the JSON history endpoint, served as a downloadable CSV. The shorter alias ?action=kospi-csv works identically. Drops straight into Excel, Google Sheets, or pandas.

CSV
date,fear_greed_score,label,kospi_close
2026-05-15,65,Greed,7981.41
2026-05-14,63,Greed,7844.01
2026-05-13,61,Greed,7820.55
// ...
Note: The CSV is served with Content-Disposition: attachment, so clicking the URL in a browser downloads the file. Use curl -O or a hotlinked anchor with download attribute to save it programmatically.
Examples

Code examples

JavaScript (fetch)

JavaScript
// Get today's KOSPI F&G score
fetch('https://kospi.feargreedchart.com/api/?action=kospi')
  .then(r => r.json())
  .then(data => {
    console.log('Score:', data.score, '(' + data.label + ')');
    console.log('KOSPI:', data.kospi.level);
    console.log('USD/KRW:', data.usd_krw);

    // Component breakdown
    data.components.forEach(c => {
      console.log(c.name + ':', c.score, '(' + c.weight + '%)');
    });

    // Historical comparison
    console.log('A year ago:', data.history.year.score);
  });

Python (requests + pandas)

Python
import requests
import pandas as pd

# Live snapshot
r = requests.get("https://kospi.feargreedchart.com/api/?action=kospi")
data = r.json()
print(f"Score: {data['score']} ({data['label']})")

# Full history as DataFrame (via CSV)
df = pd.read_csv("https://kospi.feargreedchart.com/api/?action=kospi-csv",
                 parse_dates=["date"])
df = df.dropna(subset=["fear_greed_score"])
print(f"Records: {len(df)}, mean score: {df['fear_greed_score'].mean():.1f}")

cURL

Shell
curl -s "https://kospi.feargreedchart.com/api/?action=kospi" | jq .score
# 65

curl -O "https://kospi.feargreedchart.com/api/?action=kospi-history.csv"
# Downloads kospi-fear-greed-history.csv
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 KOSPI.FearGreedChart.com is appreciated but not required.

Underlying data: KOSPI Composite Index via Yahoo Finance (^KS11). USD/KRW via Yahoo Finance. Foreign investor flow scraped from Naver Finance (KRX Trading by Investor Type).

Data is provided as-is with no uptime guarantee. Nothing here is investment advice. Always consult a qualified financial professional before making investment decisions.