Financial Literature

Stooq (Poland)

Stooq — Decades of daily closes for indices, stocks, FX and commodities — no key, no sign-up, no licence

When you need a long daily price history for a chart or a notebook and do not want an account: S&P 500 (^spx), Nikkei (^nkx), KOSPI (^kospi), DAX (^dax), USD/KRW (usdkrw), gold (xauusd), plus US and Polish stocks.

equitiesindicesfxcommoditiesglobal
Asset classesequities · indices · fx · commodities
Frequencydaily
History1970s → today
Limit · costNo key · unpublished daily hit limit per IP; the CSV URL then returns an HTML page
KeyNo key
Formats · pull withcsv — python, excel, sheets
LicenceNo licence is published. Hobbyist-grade: fine for a notebook or a chart, not for a product or redistribution.
RedistributeNo — link and pull, do not republish
Best for“Thirty years of daily closes for an index or an FX pair, no sign-up” · “A quick price series to put beside a macro series”
When to use it

Reach for it when…

When you need a long daily price history for a chart or a notebook and do not want an account: S&P 500 (^spx), Nikkei (^nkx), KOSPI (^kospi), DAX (^dax), USD/KRW (usdkrw), gold (xauusd), plus US and Polish stocks.

Not for: Anything that runs unattended (the hit limit will bite), intraday data, fundamentals, anything you will redistribute.

How to read it

Units, revisions, traps

Units. Prices in the instrument's currency; indices in points. Columns: Date, Open, High, Low, Close, Volume.

Revisions. Not revised; occasional gaps on holidays.

  • After the daily limit the CSV URL returns an HTML page — check that the first column is 'Date' before trusting the frame.
  • Symbols use suffixes (.us for US stocks) and '^' for indices (URL-encode it as %5E).
  • Volume is often blank for indices and FX.

Classic mistake: Building a scheduled job on Stooq and discovering the HTML page in the data a month later.

How to use it in your own work

Three recipes

Each recipe: Python · Excel · Sheets, with how to read the result. Python recipes run under pandas; recipe 1 is re-run by the weekly check where the source allows it.

How to use it in your own work

Copy the snippet, change the series id, read the result the way the footer says. Replace YOUR_…_KEY with your own key where one is needed.

Recipe 1S&P 500 daily closes since 1990

import pandas as pd
u = "https://stooq.com/q/d/l/?s=%5Espx&i=d"      # ^spx, URL-encoded
df = pd.read_csv(u)
assert "Date" in df.columns, "hit limit reached: the URL returned a page, not data"
s = df.set_index(pd.to_datetime(df.Date))["Close"]
print(s["1990":].tail())
How to read the resultPrice only — no dividends. For total return use a total-return index or a data vendor.

Recipe 2USD/KRW next to the KOSPI

import pandas as pd
def stooq(sym):
    d = pd.read_csv(f"https://stooq.com/q/d/l/?s={sym}&i=d")
    assert "Date" in d.columns, "hit limit"
    return d.set_index(pd.to_datetime(d.Date))["Close"]
df = pd.DataFrame({"kospi": stooq("%5Ekospi"), "usdkrw": stooq("usdkrw")}).dropna()
print(df.tail())
How to read the resultWon per dollar rising while the KOSPI falls is the foreign-outflow pattern; both rising is the rarer one.

Recipe 3Gold in dollars, weekly

import pandas as pd
d = pd.read_csv("https://stooq.com/q/d/l/?s=xauusd&i=w")
assert "Date" in d.columns
print(d.set_index(pd.to_datetime(d.Date))["Close"].tail())
How to read the resultSpot gold in dollars per ounce; put it beside FRED's real 10-year yield (DFII10) — they move inversely more often than not.

Series → question map

The ids we use from Stooq, each with the question it answers. The catalog's compare view reads the concept tags behind these rows.

SeriesAnswersRegionConcept
^spxWhere is the S&P 500?United Statesequity_index
^nkxWhere is the Nikkei 225?Japanequity_index
^kospiWhere is the KOSPI?Koreaequity_index
^daxWhere is the DAX?Germanyequity_index
usdkrwWon per dollar, dailyKoreafx_usd
xauusdWhere is gold?globalcommodity
spy.usDaily OHLC for a US tickerUnited Statesohlc_daily

Compare with

Same question, different source: Twelve Data, EODHD, Cboe index data. The compare view lines up coverage, frequency, history and access side by side and lists what the combination makes possible.

Open compare: Stooq · Twelve Data · EODHD →

Questions readers ask

Is Stooq legal to use?

For personal use it is a public download; there is no licence granting anything more. Do not redistribute the data or build a product on it.

Why did my CSV turn into HTML?

You hit the unpublished daily limit for your IP. Wait a day, or move scheduled work to a source with terms (Twelve Data, EODHD, Tiingo).

Which symbols exist?

Search on stooq.com; the symbol in the page URL is the one for the CSV endpoint.

From the paper

Educational only — we explain, we never advise · snippet licence: public domain · corrections to [email protected], fixed within a day and logged in the changelog.