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, or go Pro with a 14-day money-back guarantee.
For learning, testing, and small projects.
For builders, traders, and serious analysts.
| Feature | Free$0 | Pro$29 / MO |
|---|---|---|
| Data depth | ||
| Daily prices | 1 year | Full (30+ years) |
| Fundamentals | 1 year | Full (50+ years) |
| Insider transactions | — | Full (50+ years) |
| Throughput | ||
| Requests / day | 100 | 10,000 |
| Tickers per call | 1 | 100 |
| Request throttling | 40 / hour | Unlimited |
| Batch queries | — | ✓ |
| Integration | ||
| Python + REST + MCP | ✓ | ✓ |
| Support | ||
| Email + 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.
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.
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.