Skip to main content

xfinlink

Free financial data API for US equities — prices, fundamentals, metrics, entity resolution, index constituents, insider transactions, and institutional (Form 13F) holdings.

Install

pip install -U xfinlink

Quick start

import xfinlink as xfl

xfl.set_api_key("your-key")  # or set XFINLINK_API_KEY env var
# Get a free key at https://xfinlink.com/signup

# Historical prices
df = xfl.prices("AAPL", start="2024-01-01", end="2024-12-31")
print(df[["date", "close", "adj_close", "volume"]].head())

# Multi-ticker
df = xfl.prices(["AAPL", "MSFT", "GOOGL"], start="2024-01-01")

# Financial statements
df = xfl.fundamentals("AAPL", period_type="annual")

# Computed metrics (P/E, ROE, margins, etc.)
df = xfl.metrics("AAPL", fields=["pe_ratio", "roe", "market_cap"])

# Entity resolution
info = xfl.resolve("GM")

# Search
df = xfl.search(q="apple")

# S&P 500 constituents
df = xfl.index("sp500")

# Institutional holdings — who held Apple at the end of 2026-Q1 (paid plans)
df = xfl.holdings("AAPL", quarter="2026-03-31")

# One manager's portfolio
mgrs = xfl.managers("berkshire")
df = xfl.manager_holdings(58, quarter="2026-03-31")

# Check usage
xfl.usage()

Defaults

  • start defaults to 1 year ago if omitted.
  • Pagination stops at max_rows (default 10,000). Increase if you need more.
  • date and period_end are regular DataFrame columns, not the index.

API endpoints

Endpoint Use case
GET /v1/prices/{ticker} Historical prices, volume, dividends, splits
GET /v1/fundamentals/{ticker} Financial statements
GET /v1/metrics/{ticker} Pre-computed financial metrics
GET /v1/resolve/{ticker} Entity resolution, corporate history
GET /v1/search Find companies by name, sector, SIC, NAICS
GET /v1/index/{name} Index constituents (current or historical)
⮑ GET /v1/index/{name}/events Index additions and removals as a dated event log
GET /v1/insiders/{ticker} Insider transactions (paid plans)
GET /v1/holdings/{ticker} Institutional Form 13F holdings — who holds a security (paid plans)
GET /v1/managers Institutional manager lookup by name (paid plans)
⮑ GET /v1/managers/{manager_id}/holdings One manager's reported portfolio (paid plans)

Ticker endpoints accept comma-separated symbols, for example /v1/prices/AAPL,MSFT,GOOGL. Tickers per call on data endpoints scale by plan: 1 (Free), 100 (Pro), 500 (Business), 1,000 (Redistribution); /v1/resolve supports up to 10.

Reaching a specific entity

A ticker always resolves to its current holder, so a company that held a ticker only in the past is not reachable by ticker. Pass an entity_id instead — on /v1/prices, /v1/fundamentals, /v1/metrics, /v1/insiders and /v1/holdings, as ?entity_id=3165 or a comma-separated list. Find ids with /v1/resolve/{ticker}, which lists every company that has used the ticker and when, or with /v1/search.

# The EDS ticker serves its most recent holder
xfl.fundamentals("EDS", period="max")            # Exceed Company Ltd

# entity_id reaches the historical company the ticker cannot
xfl.fundamentals(entity_id=3165, period="max")   # Electronic Data Systems

entity_id cannot be combined with a ticker, and N ids count as N tickers against the per-plan cap. An explicit id is served as itself, with no share-class-to-issuer aliasing, so a share-class id can return no rows on fundamentals, metrics and insiders — resolve to the issuer's id first.

Rate limits

Requests per day: Free 100 (40/hour burst), Pro 10,000, Business 50,000, Redistribution 100,000. Only the Free tier is throttled per hour. Paid plans also unlock full history (daily prices back to 1996, fundamentals back to 1950). See pricing.

Links

Download files

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

Source Distribution

xfinlink-0.12.0.tar.gz (23.8 kB view details)

Uploaded Source

Built Distribution

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

xfinlink-0.12.0-py3-none-any.whl (22.6 kB view details)

Uploaded Python 3

Release history Release notifications | RSS feed

0.12.1

2 files

This release

0.12.0 This release

2 files

0.11.0

2 files

0.10.0

2 files

0.9.0

2 files

0.8.1

2 files

0.8.0

2 files

0.6.0

2 files

0.5.13

2 files

0.5.12

2 files

0.5.11

2 files

0.5.10

2 files

0.5.9

2 files

0.5.8

2 files

0.5.7

2 files

0.5.6

2 files

0.5.5

2 files

0.5.4

2 files

0.5.3

2 files

0.5.2

2 files

0.5.1

2 files

0.5.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