bhavcopy
nse/ · bse/.parquetRaw end-of-day OHLCV straight from official SEBI CMTS bhavcopy. Cleaned, deduped, typed.
TejHQ is open financial data infrastructure for India. Five parquet trees - bhavcopy, corporate actions, back-adjusted prices, symbol history, derived metrics - shipped nightly to HuggingFace. Hosted API on top. Free dataset forever.
Fourteen columns, one row per (symbol, date). Hive-partitioned Parquet, zstd-compressed. Polars, DuckDB, Pandas - pick your poison.
import polars as pl
from huggingface_hub import hf_hub_download
p = hf_hub_download(
"tejhq/indian-markets",
"nse/year=2025/month=04/date=2025-04-30.parquet",
repo_type="dataset",
)
df = pl.read_parquet(p)
df.filter(pl.col("symbol") == "RELIANCE")| symbol | series | isin | close | volume | %chg |
|---|---|---|---|---|---|
| RELIANCE | EQ | INE002A01018 | 2941.20 | 12.4M | +1.18% |
| TCS | EQ | INE467B01029 | 3872.55 | 3.1M | +0.42% |
| HDFCBANK | EQ | INE040A01034 | 1621.05 | 9.7M | -0.31% |
| INFY | EQ | INE009A01021 | 1503.40 | 5.2M | +0.94% |
| ITC | EQ | INE154A01025 | 468.90 | 18.3M | +0.21% |
| BHARTIARTL | EQ | INE397D01024 | 1422.10 | 4.8M | +1.55% |
Bazaar publishes five parquet trees to HuggingFace nightly. Each one composes with the next. Same partitions, same keys, same guarantees.
nse/ · bse/.parquetRaw end-of-day OHLCV straight from official SEBI CMTS bhavcopy. Cleaned, deduped, typed.
actions/<ex>_<YYYY>.parquetCorporate actions classified - dividend, split, bonus, rights, buyback, demerger, merger.
prices_adjusted/<ex>_<YYYY>.parquetBack-adjusted close. Per-ISIN reverse cumprod over splits, bonuses, dividends. Reconciled vs Yahoo.
symbol_history/<ex>.parquetISIN to symbol intervals. Resolves rename drift across post-merger or pre-split identifiers.
metrics/<ex>_<YYYY>.parquet1d/5d/21d/63d/126d/252d/YTD returns, 52w hi/lo, 20d & 60d avg volume, 20d avg turnover.
fundamentals/<ex>_<YYYY>.parquetISIN-keyed filings: revenue, EBITDA, EPS, net debt. Joins to every other tree on ISIN.
Same shape across NSE and BSE, every trading day, every symbol. ISIN-keyed, series-tagged, types locked. No guessing what last means in row 47,231.
One dataset, four shapes of work. Pick yours - the snippet drops straight in.
Stop paying for stale tickers.
Build factor models on every NSE+BSE equity, not just NIFTY 50. Cross-sectional research, no licence chatter.
df.group_by("symbol")
.agg(pl.col("close").pct_change())Walk-forward without scraping.
Hive-partitioned by date - point your loop at a date range, get exactly the universe that traded that day.
for d in range(D0, D1):
bar = read(f"date={d}")Same shape your model already eats.
Parquet → DataFrame → tensor. ISIN-keyed joins to fundamentals, news, alt data. No ETL boilerplate.
ds = HF.load("tejhq/indian-markets")
model.fit(ds.to_torch())Ship a chart in an afternoon.
DuckDB-over-HTTP, no server. Streamlit, Observable, Grafana - whatever renders SQL, renders TejHQ.
SELECT date, close
FROM 'hf://.../**/*.parquet'
WHERE symbol = 'RELIANCE'Bazaar parquet on HuggingFace, MIT, forever. Hosted endpoints, rate limits, screener, and SLAs are how we keep the cron running.
The whole dataset, on HuggingFace.
Researchers · students · hackers
Hosted API for a single side-project.
Solo quants · indie devs · students with credit card
Built for the strategy you actually trade.
Active backtesters · prop traders · small RIAs
Multi-seat, multi-key, multi-strategy.
Small funds · fintech teams · research desks
Funds, brokerages, exchanges, fintech infra. Talk to us about volume, white-label, on-prem mirrors, and custom data partnerships.
Talk to foundersBazaar ingests it. CLI fetches it. API serves it. Same schema, same partitions, same guarantees end-to-end.
Bhavcopy + corp actions + back-adjusted close + symbol history + derived metrics. Five parquet trees, one nightly cron, all on HuggingFace.
Single Go binary. Fetch a date, backfill a range, query into a DataFrame, pipe into your shell. Zero auth, zero deps.
Hosted REST over the five trees. Screener, batch resolves, corp action webhooks. Python & JS SDKs. Free tier + paid tiers from ₹999/mo.