I’ve just released clj-yfinance, a pure Clojure library for fetching financial market data from Yahoo Finance.
Design goals:
-
Zero external dependencies beyond charred (JSON parsing). Uses
java.net.http.HttpClientfrom JDK 11+. -
No Python bridge, no API keys.
-
Two-tier API: simple functions for quick REPL use, verbose variants returning structured result envelopes for production code.
-
First-class Scicloj ecosystem integration.
Stable features: current prices (single + parallel batch), historical OHLCV, dividends/splits, ticker metadata. Experimental: fundamentals, financial statements, analyst data, earnings calendar, options chains (uses Yahoo’s authenticated endpoint with automatic cookie/crumb session management).
The parallel fetcher uses a bounded thread pool with configurable concurrency, per-ticker error isolation, and structured error types (:rate-limited, :http-error, :connection-error, etc.) so you can build intelligent retry logic.
Integrations (all opt-in via aliases): tech.ml.dataset, Kindly/Clay, Parquet, DuckDB, Noj. The repo includes a Clay demo notebook showing fetch → tablecloth → tableplot → interactive HTML charts.
com.github.clojure-finance/clj-yfinance {:mvn/version "0.1.5"}
GitHub: https://github.com/clojure-finance/clj-yfinance
Clojars: https://clojars.org/com.github.clojure-finance/clj-yfinance
Feedback, issues, and PRs welcome.