Free
For learning, testing, and small projects.
- ✓100 requests / day
- ✓1 year price & fundamentals history
- ✓1 ticker per call
- ✓All fields incl. bank / REIT / insurance
- ✓MCP server access
- ✓Python client + REST API
- ✓Community support
Start free. Upgrade when you're ready to build.
For learning, testing, and small projects.
For builders, traders, and serious analysts.
| Feature | Free$0 | Pro$29 / MO |
|---|---|---|
| Limits | ||
| Requests / day | 100 | 10,000 |
| Request throttling | 40 / hour | None |
| Tickers per call | 1 | 100 |
| Data & coverage | ||
| Daily prices | 1 year | Full (1996+) |
| Annual fundamentals | 1 year | Full history |
| Quarterly fundamentals | 1 year | Full history |
| Financial metrics | All | All |
| Insider transactions | — | ✓ |
| 57K+ entity database | ✓ | ✓ |
| Integration | ||
| Python client | ✓ | ✓ |
| REST API | ✓ | ✓ |
| MCP server | ✓ | ✓ |
| Batch queries | — | ✓ |
| Support | ||
| Documentation | ✓ | ✓ |
| Email support | — | ✓ |
| Priority support | — | ✓ |
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.
Full access to your chosen tier's limits and data depth. Credit card required to start. Cancel anytime during the trial and you won't be charged.
If you don't cancel, you're charged $29/mo (or $290/yr). If you cancel, your account drops to the Free tier. No data is lost — you keep your API key, just at lower limits.
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.
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. The Python client automatically backs off and retries. Limits reset on a rolling window.