Skip to main content

Arithmax Chest

Arithmax Chest

Normalized market data. One API. Every provider.
Equities · Crypto · Futures · Macro

PyPI Python Versions API Status License


Arithmax Chest gives you a single, normalized interface to fetch OHLCV market data across multiple asset classes — without worrying about which provider powers each symbol. Just ask for the data and the backend handles the routing.

Quick Install

pip install arithmaxchest

For optional providers:

pip install arithmaxchest[all]        # everything (yfinance + databento + uvicorn)
pip install arithmaxchest[yahoo]      # equities via yfinance
pip install arithmaxchest[futures]    # futures via databento
pip install arithmaxchest[server]     # self-host the API

Complete User Guide

1. Create a client

from achest import MarketDataClient

# Hosted API (defaults to https://achest.misango.me)
client = MarketDataClient()

# Or with your own server + token
client = MarketDataClient(host="https://your-server.com", token="your-api-token")

Always use as a context manager:

with MarketDataClient() as client:
    data = client.get(...)

2. The get() method — every parameter explained

client.get(
    symbols,          # list of ticker strings
    start,            # start date — see date formats below
    end,              # end date — see date formats below
    resolution,       # bar size — see resolutions below
    provider          # force a specific provider or "auto"
)

symbols — what tickers look like

Asset Class Example Symbols Notes
Equities "AAPL", "MSFT", "TSLA", "SPY" Standard tickers, 1–5 letters
Crypto "BTCUSDT", "ETHUSDT", "SOLUSDT", "BTC-USD" Ends in USDT, USDC, or -USD
Futures "ES.FUT", "NQ.FUT", "CL.FUT" Ends in .FUT (continuous contracts)
Indices "^GSPC", "^VIX", "^DJI" Starts with ^
Economic "GDP", "UNRATE", "CPIAUCSL", "FEDFUNDS" Predefined macro symbols

You can mix asset classes in one call:

client.get(["AAPL", "BTCUSDT", "ES.FUT", "^GSPC"], "2025-01-01", "2025-01-31")

start / end — date formats accepted

All of these work:

# ISO strings
client.get(["AAPL"], "2025-01-01", "2025-01-31")

# datetime.date objects
from datetime import date
client.get(["AAPL"], date(2025, 1, 1), date(2025, 1, 31))

# datetime.datetime objects
from datetime import datetime
client.get(["AAPL"], datetime(2025, 1, 1), datetime(2025, 1, 31))

resolution — bar sizes

Resolution Description Example
"tick" Trade-by-trade (raw ticks) client.get(["BTCUSDT"], ..., resolution="tick")
"second" 1-second bars client.get(["AAPL"], ..., resolution="second")
"minute" 1-minute bars client.get(["AAPL"], ..., resolution="minute")
"hour" 1-hour bars client.get(["AAPL"], ..., resolution="hour")
"daily" 1-day bars (default) client.get(["AAPL"], ..., resolution="daily")
# Minute-level data for day trading
client.get(["AAPL"], "2025-01-02", "2025-01-03", resolution="minute")

# Hourly data for swing trading
client.get(["BTCUSDT"], "2025-01-01", "2025-01-07", resolution="hour")

provider — auto vs. manual override

Value Behavior
"auto" (default) Backend selects the best available provider based on symbol + resolution + configured API keys
"yahoo" Force Yahoo Finance
"binance" Force Binance (crypto only)
"databento" Force Databento (futures, equities)
"alpaca" Force Alpaca
"tiingo" Force Tiingo
"alpha_vantage" Force Alpha Vantage
"fred" Force FRED (economic data only)
"quandl" Force Quandl
"massive" Force Massive
# Auto-select (recommended)
client.get(["ES.FUT"], "2025-01-01", "2025-01-31", provider="auto")

# Force a specific provider
client.get(["AAPL"], "2025-01-01", "2025-01-31", provider="yahoo")

3. Full examples

Equities — daily data

from achest import MarketDataClient

with MarketDataClient() as client:
    aapl = client.get(["AAPL", "MSFT", "GOOGL"], "2025-01-01", "2025-01-31")
    print(aapl.head())

Crypto — minute data

with MarketDataClient() as client:
    btc = client.get(["BTCUSDT"], "2025-01-15", "2025-01-16", resolution="minute")
    print(btc.head())

Futures — daily via Databento

with MarketDataClient() as client:
    es = client.get(["ES.FUT", "NQ.FUT"], "2025-01-01", "2025-01-31")
    print(es.head())

Mixed assets in one call

with MarketDataClient() as client:
    data = client.get(["AAPL", "BTCUSDT", "ES.FUT"], "2025-01-02", "2025-01-10")
    print(data.groupby("symbol").tail(3))

4. Download to file

# CSV
client.get(["AAPL"], "2025-01-01", "2025-01-31", format="csv", output="aapl.csv")

# Parquet (fast, compressed)
client.get(["AAPL"], "2025-01-01", "2025-01-31", format="parquet", output="aapl.parquet")

# JSON
client.get(["AAPL"], "2025-01-01", "2025-01-31", format="json", output="aapl.json")

5. The download() method

client.download(["SPY", "QQQ"], "2025-01-01", "2025-01-31",
                output="market-data.parquet")

Data Shape

All responses return normalized OHLCV data:

timestamp symbol provider open high low close volume
2025-01-02 AAPL yahoo 243.5 245.8 242.3 244.9 48234500
2025-01-02 BTCUSDT binance 94250 95800 93800 95430 12500
2025-01-02 ES.FUT databento 5939.25 5995.25 5874.75 5914.75 1714061

Every row has:

  • timestamp — UTC-normalized datetime
  • symbol — the original ticker you requested
  • provider — which provider served the data
  • open, high, low, close, volume — OHLCV values

Symbol Reference

Input Classified As Routed To
AAPL equity yahoo (default)
MSFT equity yahoo (default)
BTCUSDT crypto binance (if key exists) or yahoo
ETHUSDT crypto binance (if key exists) or yahoo
ES.FUT futures databento (if key exists) or massive
NQ.FUT futures databento (if key exists) or massive
CL.FUT futures databento (if key exists) or massive
^GSPC index yahoo
^VIX index yahoo
GDP economic fred (if key exists) or quandl
UNRATE economic fred (if key exists) or quandl

Self-Hosting

Arithmax Chest is also a FastAPI server you can deploy yourself:

pip install arithmaxchest[all]
uvicorn achest.server:app --host 0.0.0.0 --port 8000

With Docker and EC2 support — see the documentation for deployment details.

Why Arithmax Chest?

  • Normalized schema — Every symbol returns the same columns regardless of provider
  • Provider abstraction — The backend picks the best source; your code never changes
  • Multi-asset — Equities, crypto, futures, indices, economic indicators — one API
  • Research-ready — Clean DataFrames with no provider-specific wrangling
  • Portable — Works in notebooks, scripts, pipelines, and production systems

License

MIT


Built by Arithmax Research. Market data for the next generation of analysts and algorithms.

Metadata

Release files for arithmaxchest 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for arithmaxchest 0.3.0
File Size Uploaded
arithmaxchest-0.3.0.tar.gz 16.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for arithmaxchest 0.3.0
File Interpreter ABI Platform
arithmaxchest-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 28.4 kB

Release files / arithmaxchest-0.3.0.tar.gz

Download URL arithmaxchest-0.3.0.tar.gz
Size 16.6 kB
Tags Source
SHA-256 checksum
How to use checksums
dd020747c5f942a2e719eb75b99824c68e462435c532ab7a42a05ec648fa1a48
BLAKE2b-256 checksum
How to use checksums
3a6420afdd408a4457296a98a4c53a67094c5192b7a0bbfe2e7374d65950213a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.19

Release files / arithmaxchest-0.3.0-py3-none-any.whl

Download URL arithmaxchest-0.3.0-py3-none-any.whl
Size 11.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a3abef5d048d29124d8a20a902cde543cf6559a6e654b2f0ef0c06672ddd9842
BLAKE2b-256 checksum
How to use checksums
21e6ee6f3048a6d1b9ebf86abe9dcd2a085011ba60ed3fa6e768854d49d900a1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.19

Release history Release notifications | RSS feed

0.4.0

2 release files

This release

0.3.0 This release

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page