Skip to content
The KakistocratEconomics · Politics · Policy
India tapeMarkets →
Data API

Data API

Every dataset on this site as plain JSON. Free to use with attribution to the original source named in each file and on the page that uses it. Cross-origin requests are allowed, so you can call these from your own pages and notebooks.

EndpointWhat it holds
/api/markets/indices.jsonNSE index closes (28 indices) and Nifty 50 P/E, P/B, dividend yield, daily
/api/markets/stocks.jsonNifty 50 constituents: close, change, market cap; NSE breadth
/api/markets/fred.jsonUS Treasury yields, fed funds, breakeven inflation, broad dollar index, EIA oil and gas spot prices (FRED)
/api/markets/fx.json15 currencies per US dollar, ECB reference rates, daily
/api/markets/worldbank.json35 commodity prices, monthly, World Bank Pink Sheet
/api/markets/crypto.jsonBitcoin and ether, daily USD, CoinGecko
/api/markets/world.jsonIMF World Economic Outlook and World Bank indicators for India and 13 peers, annual
/api/tape.jsonIndia macro tape: CPI, repo, rupee, 10-year yield, Brent, Nifty, with sources
/api/ledger.jsonPolicy Ledger items and stages
/api/budget.jsonUnion Budget 2026-27: estimates and April–September actuals
/api/states.jsonState indicators: income, growth, inflation, debt, interest burden
/api/exposure.jsonImport exposure: crude suppliers, DAP, China shares
/api/twocharts.jsonTwo-Chart Test data
/api/forecasts.jsonForecast Book calls
/api/catalog.jsonCatalogue of 290 series; each is at /api/series/{id}.json

Example

fetch('https://kakistocrat.pages.dev/api/markets/indices.json')
  .then(r => r.json())
  .then(d => console.log(d.dates.at(-1), d.series['Nifty 50'].at(-1)));
import pandas as pd, requests
d = requests.get('https://kakistocrat.pages.dev/api/markets/fx.json').json()
inr = pd.Series(d['rates']['INR'], index=pd.to_datetime(d['dates']))

Market data refreshes every weekday evening after NSE publishes its closing files; commodity prices monthly. Index: /api/index.json.