Free
For learning, testing, and small projects.
- ✓100 requests / day
- ✓1 year of history · 1 ticker per call
- ✓Python client, REST API & MCP
Clean US equity data at every scale — from solo research to data you ship in your own product. Every paid plan is backed by a 14-day money-back guarantee.
For learning, testing, and small projects.
For individual developers and analysts.
For power users and teams with high-volume workloads.
For products that show our data to end users.
|
Free
Get Free↗
|
Pro
Get Pro↗
|
Max
Get Max↗
|
Redistribution
Get Redistribution↗
|
|
|---|---|---|---|---|
| Data depth | ||||
| Daily prices | 1 year | Full — since 1996 | Full — since 1996 | Full — since 1996 |
| Fundamentals | 1 year | Full — since 1950 | Full — since 1950 | Full — since 1950 |
| Insider transactions | — | Full — since 1996 | Full — since 1996 | Full — since 1996 |
| Institutional holdings (13F) | — | Full — since 1978 | Full — since 1978 | Full — since 1978 |
| Index additions & removals | 1 year | Full — since 1915 | Full — since 1915 | Full — since 1915 |
| Throughput & limits | ||||
| Requests / day | 100 | 10,000 | 50,000 | 500,000 |
| Tickers per call | 1 | 100 | 500 | 5,000 |
| Pagination (max pages) | 10 | 50 | 100 | 200 |
| Rows / day | 500K | 5M | 25M | 250M |
| As-of snapshots / day | 50 | Unlimited | Unlimited | Unlimited |
| Entity lookups / day | 200 | 2,000 | Unlimitedfair use | Unlimitedfair use |
| Access & licensing | ||||
| API keys | 1 | 1 | 5 | 10 |
| End-user display rights | — | — | — | |
| Python + REST + MCP | ||||
| Support & billing | ||||
| Support | Community | Priority email | Priority email | |
| Annual discount | — | 20% off | 20% off | 20% off |
You're charged when you subscribe. If you're not satisfied within 14 days, email hello@xfinlink.com for a full refund — no questions asked.
Your account drops to the Free tier. No data is lost — you keep your API key, just at lower limits. If you cancel within 14 days, you can request a full refund.
One request = one HTTP call to any endpoint, regardless of how many rows it returns. xfl.prices("AAPL", period="5y") is one request even if it returns 1,250 rows. Batch calls (multi-ticker) count as one request per ticker — e.g., /v1/prices/AAPL,MSFT,GOOG counts as 3 requests against your daily limit.
The entity-lookup endpoints — /v1/resolve and /v1/search — have their own daily budget, separate from your request limit: 200 on Free, 2,000 on Pro, and unlimited (fair use) on Max and Redistribution.
These endpoints return our entity reference map — the identifiers and ticker-to-entity links used to resolve a symbol — rather than time-series data like prices or fundamentals. Because they serve reference data rather than the data you're querying for, they're budgeted on their own counter.
Yes. The Max license covers a single company. Any employee or contractor of that company can use the keys, and all usage draws from one shared account pool — there's no per-seat charge.
One question decides it: do people outside your company see the data? Internal dashboards, models, and research stay on Max. Customer-facing apps and products — where end users see the data — need Redistribution.
On the Redistribution plan you may display data values — prices, fundamentals, insider transactions — inside your own product. You may not republish resolve/search/index output (our entity reference map), resell the dataset in bulk, or operate a competing API. See the Terms for the full grant.
The Free tier is free forever — no credit card, no time limit. Create an account, get an API key, and start querying. Pro is available for users who need more data depth and higher limits.
No trial — instead, every paid plan comes with a 14-day money-back guarantee. Subscribe, and if it's not right for you within 14 days, email hello@xfinlink.com for a full refund.
Max includes 5 keys and Redistribution includes 10. They're meant for environments and services — dev, staging, production — not per-seat licensing. All keys share the account's limits, and you can revoke any key instantly from the dashboard.
Existing subscribers manage plan changes through the billing portal, reachable from your dashboard — checkout redirects you there automatically once you have an active subscription.
Yes. Upgrade or downgrade anytime from your dashboard. Changes take effect on your next billing cycle.
Yes. Month-to-month, no contract. Cancel from your dashboard and your account drops to Free at the end of the billing period.
Daily prices are exchange-sourced via licensed data vendors and reconciled daily. Fundamentals are parsed from SEC EDGAR XBRL filings. Entity data is built from SEC filings, exchange notices, and corporate actions.
Contact us at hello@xfinlink.com with your .edu email.
You'll get a 429 Too Many Requests response with a Retry-After header telling you how long to wait. The Python client surfaces that wait time in a clear error. Limits reset on a rolling window.