Clj-yfinance — Pure Clojure Yahoo Finance client with Scicloj integration

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.HttpClient from 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.