Financial Data API

Python SDK for Financial Data

Type hints, async support, pandas integration. The Python stock API for quants and researchers.

pip install eulerpool

Quick start

Three steps to your first data call

1. Install
$ pip install eulerpool
2. Authenticate
import eulerpool

client = eulerpool.Client(api_key="ep_live_xxx")
3. Fetch data
profile = client.equity.profile("AAPL")
financials = client.equity.financials("AAPL")

print(f"{profile.name}: P/E {financials.pe_ratio}")

Features

Built for Python developers

01

Full type hints

IDE autocomplete and mypy support. Every response is typed.

02

Async support

async/await for high-throughput pipelines. No blocking I/O.

03

Pandas integration

Convert responses to DataFrames. Built for factor research.

04

Batch queries

Fetch 100 symbols in one call. Optimized for backtesting.

Example

Factor research with pandas

factor_research.py
import eulerpool
import pandas as pd

client = eulerpool.Client(api_key="ep_live_xxx")

tickers = ["AAPL", "MSFT", "GOOGL", "NVDA"]
data = client.equity.financials_batch(tickers)
df = pd.DataFrame(data)

df["pe_ratio"] = df.market_cap / df.net_income
value_stocks = df[df.pe_ratio < 15]
print(value_stocks[["ticker", "pe_ratio", "revenue"]])

Frequently asked questions

Run pip install eulerpool or add eulerpool to your requirements.txt. The SDK requires Python 3.8+ and has minimal dependencies. It works in Jupyter notebooks, scripts, and production applications.

Yes. All data-returning methods have a .to_dataframe() option that returns pandas DataFrames with properly typed columns and datetime indices. This makes it easy to integrate with quantitative finance libraries like numpy, scipy, and backtrader.

Yes. The SDK is designed to work seamlessly in Jupyter notebooks. Initialize the client, call endpoints, and get DataFrames in cells. Auto-complete and inline docs work in JupyterLab and VS Code notebooks.

Yes. The SDK automatically handles rate limiting with exponential backoff. If you hit the rate limit, requests are queued and retried. You can also configure custom retry policies and timeout settings.

Yes. The SDK provides both synchronous and asynchronous clients. Use EulerpoolAsync for async/await patterns with asyncio or any ASGI framework. Both clients share the same API surface.

Ready to build?

Get your free API key. 1,000 calls/day. No credit card required.

Get your free API key