Skip to main content

Eulerpool — Financial Data API for Python

Eulerpool is The Financial Data Company. This is the official Python SDK for the Eulerpool Financial Data API: stocks, ETFs, forex, crypto, bonds, fundamentals, filings, and macro — one client, one key.

PyPI · Docs · API reference · Get a free API key · JavaScript SDK

pip install eulerpool

100,000+ securities · 90+ exchanges · 375+ endpoints · 100,000 free API calls/month · no credit card.

Why teams use this financial data API

Most “stock APIs” stop at a last price. Eulerpool is the production financial data API behind the Eulerpool terminal: statements, estimates, ownership, transcripts, options, and macro on the same key.

Eulerpool Typical free stock API Bloomberg Terminal
Free tier 100,000 calls/month tens–hundreds/day none
Coverage 100,000+ names, 90+ exchanges US-heavy deep, licensed
Fundamentals Full statements + ratios thin or paid extra yes
Python pip install eulerpool wrappers / scrape none
Price to start $0 $0 with a ceiling ~$24,000/yr/seat

Get a key in 60 seconds: eulerpool.com/developers/register.

Install

pip install eulerpool

Requires Python 3.9+ and httpx. Typed (py.typed). Sync and async clients.

import eulerpool

client = eulerpool.Eulerpool("YOUR_API_KEY")  # or EULERPOOL_API_KEY
profile = client.equity.profile("AAPL")
print(profile["name"])
client.close()

Quick start — Python stock API

Tickers and ISINs both work.

import eulerpool

with eulerpool.Eulerpool("YOUR_API_KEY") as client:
    # Company profile (stock API)
    profile = client.equity.profile("US0378331005")

    # Income statement, cash flow, balance sheet
    income = client.equity.income_statement("US0378331005")
    cash = client.equity.cash_flow_statement("US0378331005")
    balance = client.equity.balance_sheet("US0378331005")

    # ETF holdings
    holdings = client.etf.holdings("IE00B4L5Y983")

    # FX, macro, calendar
    rates = client.forex.rates("EUR")
    calendar = client.macro.calendar()

Async

import asyncio
import eulerpool

async def main():
    async with eulerpool.AsyncEulerpool("YOUR_API_KEY") as client:
        profile = await client.equity.profile("AAPL")
        print(profile)

asyncio.run(main())

Any path (escape hatch)

client.get("/equity/profile/AAPL", language="en")

What data you get

One financial data API. Official accessors (50+ resources, 400+ methods, generated from the public OpenAPI spec):

Area Examples
Equities profile, quotes, candles, statements, ratios, estimates, dividends, splits, insider trades, SWOT, peers, segments, employees
ETFs & funds holdings, sectors, countries, flows, mutual funds
Market data quotes, movers, options, dark pool, holidays, status
Fixed income bonds, yield curves, default probabilities
FX & crypto rates, crypto quotes, on-chain / DeFi (extended)
Macro FRED, ECB, IMF, World Bank, Eurostat, calendars, country risk
Alt / sentiment 13F, congress trades, superinvestors, news & social sentiment
Research transcripts, earning calls, news, press, upgrades

Resources on the client include equity, equity_extended, etf, macro, forex, bonds, crypto, crypto_extended, market, alternative, sentiment, research, calendar, screener, mutual_fund, commodity, institutional, certificates, earning_calls, index, news, trends, ice_swap, fair_value, aaq, analytics, charting, energy, fundamentals, government, shipping, singapore, transcripts, and more.

Authentication

Pass the key to the constructor or set EULERPOOL_API_KEY. Every request sends Authorization: Bearer. By default the key is also sent as ?token= (some vendor routes redirect and drop the query string; the header survives). Header-only:

client = eulerpool.Eulerpool("YOUR_API_KEY", use_auth_header=True)
client = eulerpool.Eulerpool(
    "YOUR_API_KEY",
    base_url="https://api.eulerpool.com/api/1",
    use_auth_header=False,
    max_retries=2,
    timeout=30.0,
)

Errors

from eulerpool import Eulerpool, AuthenticationError, RateLimitError

client = Eulerpool("YOUR_API_KEY")
try:
    client.equity.profile("US0378331005")
except AuthenticationError:
    print("Invalid API key")
except RateLimitError as e:
    print(f"Rate limited. Retry after {e.retry_after}s")

429 and 5xx are retried with backoff.

Financial data API vs Bloomberg, Alpha Vantage, Polygon, Yahoo Finance

Eulerpool is built as a developer financial data API, not a desktop terminal.

  • vs Bloomberg — same institutional datasets you actually query (fundamentals, estimates, ownership, macro), as JSON, from $0. Bloomberg is a $24k/year seat plus a sales cycle. Comparison: Eulerpool vs Bloomberg.
  • vs Alpha Vantage — Alpha Vantage’s free cap is tens of calls/day. Eulerpool’s free plan is 100,000/month with the same schema as paid. vs Alpha Vantage.
  • vs Polygon.io — Polygon is excellent US ticks. Eulerpool is global fundamentals + statements + ETFs + macro on one key. vs Polygon.
  • vs Yahoo Finance unofficial libs — unofficial scrapers break. This is a licensed REST API with an SLA.

More: best stock market APIs, pricing.

For AI agents and LLMs

Responses are typed, deterministic JSON. Pair the SDK with the Eulerpool MCP server so Claude, Cursor, ChatGPT, and custom agents call the same data instead of inventing a P/E.

# Agents: one call, one schema, cite the source
metrics = client.equity.metrics("AAPL")

FAQ

What is a financial data API?
A financial data API returns market and company data (prices, statements, FX, macro) as JSON over HTTP so you do not scrape HTML or buy a terminal seat. Eulerpool covers 100,000+ securities, 90+ exchanges, and 100+ years of history where the source publishes it.

Is there a free Python stock API?
Yes. pip install eulerpool, register, 100,000 requests/month, no credit card. Same endpoints as paid plans; paid plans raise volume and real-time.

Does this replace yfinance / Yahoo Finance?
For production, yes: licensed data, identifiers (ticker and ISIN), retries, and a ToS you can show legal. The unofficial Yahoo libraries are fine for a notebook; they are not a market-data contract.

Python, pandas, Jupyter?
Returns are dicts and lists — pd.DataFrame(...) works. Sync client for notebooks; AsyncEulerpool for asyncio.

Other languages?
npm install eulerpool (JavaScript/TypeScript), Go. REST from anything else.

Links

License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

eulerpool-1.0.1.tar.gz (28.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

eulerpool-1.0.1-py3-none-any.whl (48.4 kB view details)

Uploaded Python 3

File details

Details for the file eulerpool-1.0.1.tar.gz.

File metadata

  • Download URL: eulerpool-1.0.1.tar.gz
  • Upload date:
  • Size: 28.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.7

File hashes

Hashes for eulerpool-1.0.1.tar.gz
Algorithm Hash digest
SHA256 0c00e3edfb0c6fc710495c55e36ed9b5c788108b7465abc229d74df2c95b9827
MD5 9ece565278d5885f4617ac48fb8beb4e
BLAKE2b-256 2e4a369b269cf55ff943690f0f6fc4a4525cacdeaa71da99757992161a849d4e

See more details on using hashes here.

File details

Details for the file eulerpool-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: eulerpool-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 48.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.7

File hashes

Hashes for eulerpool-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8c43e332a8fe81d9e8f58e4f3561609219a515d8748ad71f1c6dc731e4a1f2fb
MD5 1940fc7dc04cb26b76e43d490e8bbbb9
BLAKE2b-256 03bf6d4929e1ec7dd6628a1731ac328f35e70927119013ca5069d7c84f08a1a9

See more details on using hashes here.

Release history Release notifications | RSS feed

1.1.0

2 files

This release

1.0.1 This release

2 files

1.0.0

2 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