Research into available market data providers for options and futures data, evaluated for use in a commercial iOS/Android app distributed via the App Store and Google Play. Key concerns: options chain data, futures quotes, real-time vs. delayed, redistribution licensing, and monthly cost.
Current state: The app uses Yahoo Finance’s unofficial API (
query2.finance.yahoo.com) for options flow data and Robinhood/Schwab brokerage APIs for live positions and orders. Yahoo Finance is a compliance risk for commercial app distribution (see below).
Yahoo Finance’s unofficial API (query2.finance.yahoo.com) is used today for:
options_flow_widget.dart, options_flow_store.dartoptions_flow_store.dartThe problem: Yahoo Finance shut down its official API in 2017. The query2.finance.yahoo.com endpoint is an internal/unofficial API with no public terms of service permitting commercial use. Yahoo’s ToS explicitly prohibits scraping or redistributing data for commercial purposes. Distributing an app on the App Store that calls this endpoint is a ToS violation and a legal/compliance risk.
Recommendation: Replace Yahoo Finance options data before App Store submission. See provider options below.
Any app that displays US options data (real-time OR 15-minute delayed) to end users must comply with OPRA (Options Price Reporting Authority) licensing. This is separate from your data provider subscription.
Key OPRA costs (source: MarketData.app):
OPRA compliance requirements:
Cost-saving strategies:
Important: Some providers handle OPRA licensing for you (Polygon.io Business, Databento Standard+), while others require you to obtain your own OPRA Vendor Agreement. This is a significant operational difference.
| Provider | Options Chains | Futures Quotes | Real-Time | Delayed | App Store Redistribution | Est. Monthly Cost | Pricing Verified |
|---|---|---|---|---|---|---|---|
| Yahoo Finance | ✅ | ❌ | ✅ (unofficial) | ✅ | ❌ ToS violation | $0 | N/A |
| Polygon.io | ✅ OPRA | ✅ CME/CBOT/NYMEX | ✅ | ✅ | ✅ Business plan | $1,999/mo (startup: ~$1,000/mo) | ✅ polygon.io/business |
| Alpaca Markets | ✅ OPRA | ⚠️ Limited | ✅ (paid) | ✅ indicative (free) | ✅ Broker API only | $1,000–$2,000/mo | ✅ alpaca.markets/docs |
| Intrinio | ✅ | ❌ | ✅ (Gold) | ✅ (Silver) | ✅ Silver+ | ~$150–$1,600/mo | ⚠️ G2 listing (contact for exact) |
| Tradier | ✅ | ❌ | ✅ (account holders) | ✅ (sandbox) | ⚠️ Fintech partner agreement | Contact sales | ✅ tradier.com |
| MarketData.app | ✅ | ❌ | ✅ | ✅ | ❌ Explicitly prohibited | $0–$75/mo (personal only) | ✅ marketdata.app/terms |
| Databento | ✅ OPRA | ✅ CME | ✅ | ❌ | ✅ Standard+ | $199/mo OPRA + $179/mo CME | ✅ databento.com/blog |
| Twelve Data | ❌ | ⚠️ Commodities only | ✅ (Pro+) | ✅ | ✅ Pro plan (equities only) | $229/mo | ✅ twelvedata.com/pricing |
| Tastytrade API | ✅ | ✅ | ✅ | N/A | ⚠️ Partner program only | Contact sales | ✅ tastytrade.com |
| TradeStation API | ✅ | ✅ | ✅ | N/A | ✅ with API agreement | Contact sales | ✅ tradestation.com |
Website: polygon.io
Coverage:
Pricing (verified from polygon.io/business):
| Plan | Price | Use Case | Redistribution |
|---|---|---|---|
| Individual (personal) | $29–$79/mo | Personal projects, no redistribution | ❌ Personal use only |
| Business | $1,999/mo | Commercial apps, redistribution | ✅ Includes OPRA, no exchange fees |
| Enterprise | Custom | Large-scale commercial | ✅ Custom SLAs, dedicated support |
| Startup discount | Up to 50% off year 1 | Startups | ✅ ~$1,000/mo effective |
Business plan includes: Unlimited API calls, 20+ years historical data, no exchange fees or approvals needed, real-time streaming, snapshots, trades, quotes, financials & ratios.
Exchange feed expansions (additional):
Redistribution: Business plan handles OPRA vendor agreement on your behalf. No separate exchange approvals needed.
Options API endpoints:
GET /v3/snapshot/options/{underlyingAsset} — full chain snapshotGET /v2/last/trade/{optionsTicker} — last tradeGET /v3/trades/{optionsTicker} — trade historyGET /v2/aggs/ticker/{optionsTicker}/range/{multiplier}/{timespan}/{from}/{to} — OHLCV barsGET /v3/snapshot/options/{underlyingAsset}/{optionsTicker} — single contract snapshot with greeksFutures API endpoints:
GET /v3/snapshot/futures — futures snapshotsGET /v2/aggs/ticker/{futuresTicker}/range/{multiplier}/{timespan}/{from}/{to} — OHLCV barsFit for this app:
Website: alpaca.markets
Coverage:
Pricing (verified from alpaca.markets/docs/market-data):
Trading API (individual use):
| Plan | Price | Stocks | Options | Redistribution |
|---|---|---|---|---|
| Basic | Free | IEX only | Indicative feed only | ❌ |
| Algo Trader Plus | $99/mo | All US exchanges | Full OPRA | ❌ Personal use |
Broker API (commercial redistribution):
| Plan | Price | Options | Notes |
|---|---|---|---|
| Standard | Included | +$1,000/mo add-on | IEX or 15-min delayed SIP |
| StandardPlus3000 | $500/mo | +$1,000/mo add-on | IEX or 15-min delayed SIP |
| StandardPlus5000 | $1,000/mo | Included | IEX or 15-min delayed SIP |
| StandardPlus10000 | $2,000/mo | Included | IEX or 15-min delayed SIP |
Redistribution: Requires Broker API partnership. Standard plans provide IEX or 15-min delayed SIP data. Custom pricing available for full real-time SIP.
Options API endpoints:
GET /v2/options/snapshots/{symbol} — option chain snapshotGET /v2/options/trades/{symbol} — options tradesGET /v2/options/quotes/{symbol} — options quotesGET /v2/options/bars/{symbol} — OHLCV barsFit for this app:
Website: intrinio.com
Coverage:
Pricing (from G2 listing — contact Intrinio for exact quotes):
| Tier | Approx. Price | Options | Display Allowed | Exchange Fees |
|---|---|---|---|---|
| Bronze | ~$150/mo | EOD only | ✅ | None |
| Silver | ~$400/mo | 15-min delayed | ✅ | None |
| Gold | ~$1,600/mo | Real-time | ✅ | Required (passed through) |
Redistribution: Display allowed on Silver and Gold tiers. Silver tier avoids exchange fees by using 15-min delayed data. Gold tier requires OPRA exchange fee agreements (passed through to customer).
Options API endpoints:
GET /options/chain/{symbol}/{expiration} — option chainGET /options/prices/{identifier} — option pricesGET /options/greeks/{identifier} — greeksGET /options/unusual_activity/{symbol} — unusual activity / flowFit for this app:
options_flow_widget.dart)Website: tradier.com
Coverage:
Pricing (verified from tradier.com):
| Plan | Price | Notes |
|---|---|---|
| Developer sandbox | Free | Delayed data, paper trading only |
| Standard (brokerage) | Free | Commission-free stocks; $0.35/contract options |
| Pro | $10/mo | Unlimited commission-free stock + options trading |
| Pro Plus | $35/mo | Advanced features, commission-free |
| Fintech/Partner | Contact sales | Third-party app redistribution |
API access: Free for all Tradier brokerage account holders. Handles 2.6 billion+ API calls per month. REST + streaming WebSocket.
Redistribution: Tradier actively supports fintech integrations (tradier.com/businesses/fintechs). For third-party app redistribution (displaying data to users who are not Tradier account holders), a fintech/partner agreement is required. No public pricing for this tier.
Options API endpoints:
GET /v1/markets/options/chains?symbol={symbol}&expiration={date} — option chainGET /v1/markets/options/expirations?symbol={symbol} — expiration datesGET /v1/markets/options/strikes?symbol={symbol}&expiration={date} — strikesGET /v1/markets/quotes?symbols={optionSymbols} — real-time quotesGET /v1/markets/history?symbol={optionSymbol} — historical pricesFit for this app:
Website: marketdata.app
Coverage:
Pricing (verified from marketdata.app/pricing):
| Plan | Monthly (annual) | Monthly (monthly) | API Credits/Day |
|---|---|---|---|
| Free Forever | $0 | $0 | Limited |
| Starter | $12/mo | $30/mo | Moderate |
| Trader | $30/mo | $75/mo | 100,000 |
| Quant / Commercial | Contact | Contact | Unlimited |
⚠️ CRITICAL — NOT ELIGIBLE FOR APP STORE DISTRIBUTION:
MarketData.app’s Professional Use Addendum explicitly states:
“The Professional Use license does not permit external redistribution of the Data under any circumstances. The Data may not be made available on public-facing websites, applications, or platforms accessible to clients, customers, or the general public.”
This means no self-serve MarketData.app plan can be used in an App Store app. Their self-serve plans are for personal/internal use only. A custom Commercial plan would need to be negotiated directly.
Additionally, MarketData.app’s self-serve plans do not include OPRA redistribution rights. You would need your own OPRA Vendor Agreement ($1,500/mo minimum) on top of any data subscription.
Fit for this app:
Website: databento.com
Coverage:
Pricing (verified from databento.com/blog):
| Plan | Price | Coverage | Notes |
|---|---|---|---|
| OPRA Standard | $199/mo | Live OPRA options + free historical | Unlimited access |
| CME Standard | $179/mo | Live CME futures + free historical | Unlimited access |
| OPRA + CME combined | $378/mo | Both options and futures | Two separate subscriptions |
| Plus / Unlimited | Enterprise | Enhanced features | Contact sales |
| Historical only | Pay-as-you-go ($/GB) | Historical data | No monthly minimum |
Recent changes (2025):
Redistribution: Allowed on Standard and higher plans. Databento is designed for professional/commercial use. Handles exchange licensing (OPRA, CME) on behalf of customers.
Key differentiator: Databento uses a normalized data format (DBN) and supports both REST and streaming (WebSocket).
Options API endpoints:
GET /v0/timeseries.get_range — historical options dataGET /v0/metadata.list_datasets — available datasetsFutures API endpoints:
GLBX.MDP3 for CME Globex)Fit for this app:
Website: tastytrade.com/api
Coverage:
Pricing:
Redistribution: Partner program required for third-party app display. The partner program provides “seamless onboarding, shared support channels, and access to tech and engineer teams.”
API capabilities:
Fit for this app:
Website: tradestation.com/platforms-and-tools/trading-api
Coverage:
Pricing:
Redistribution: TradeStation actively supports third-party platform integrations (TradingView and Option Alpha are cited examples). Redistribution in a third-party app requires an API agreement. Contact institutionalsales@tradestation.com.
API capabilities:
Fit for this app:
Website: twelvedata.com
Coverage:
/commodities — NOT CME futures contractsPricing (verified from twelvedata.com/pricing):
| Plan | Price | Credits/min | Commercial Use | Notes |
|---|---|---|---|---|
| Basic | Free | 8 | ❌ Personal only | Dev/testing |
| Grow | $79/mo | 55+ | ❌ Personal only | |
| Pro | $229/mo | 610+ | ✅ US equities | Recommended for production |
| Ultra | $999/mo | 2,584+ | ✅ | High volume |
| Enterprise | From $1,999/mo | 10,000+ | ✅ | Full scale |
Redistribution: Pro plan and above allow commercial display of US equities data. Raw data feed redistribution requires a separate agreement. Startup and student discounts available.
Fit for this app:
docs/twelve-data-migration.md)| Provider | Self-Serve App Store OK? | What’s Required | OPRA Handled? |
|---|---|---|---|
| Polygon.io | ✅ Business plan | $1,999/mo (or ~$1,000 startup) | ✅ Yes, bundled |
| Alpaca Markets | ✅ Broker API | $1,000–$2,000/mo + partner agreement | ⚠️ Unclear |
| Intrinio | ✅ Silver+ | ~$400–$1,600/mo + contact sales | ⚠️ Gold requires separate OPRA |
| Tradier | ⚠️ Partner agreement | Contact sales | ⚠️ Unclear |
| MarketData.app | ❌ No | Explicitly prohibited on self-serve plans | ❌ No |
| Databento | ✅ Standard plan | $199/mo OPRA + $179/mo CME | ✅ Yes, bundled |
| Twelve Data | ✅ Pro plan (equities only) | $229/mo — no options data | N/A (no options) |
| Tastytrade | ⚠️ Partner program | Contact sales | ⚠️ Unclear |
| TradeStation | ⚠️ Institutional agreement | Contact sales | ⚠️ Unclear |
| Yahoo Finance | ❌ No | ToS violation | N/A |
Best options (ranked by cost-effectiveness for App Store distribution):
Given the app’s current state (Robinhood + Schwab integrations, Yahoo Finance for options flow, Twelve Data migration in progress):
Replace Yahoo Finance options chain usage with a compliant provider:
yahoo_service.dart getOptionChain() and options_flow_store.dartThe options_flow_widget.dart currently uses Yahoo for unusual activity detection. Providers with dedicated flow/unusual activity endpoints:
/options/unusual_activity/{symbol} endpointCurrently futures data comes exclusively from Robinhood’s private API. If adding Schwab futures or a standalone futures data source:
| Scenario | Provider | Est. Monthly Cost |
|---|---|---|
| Options only (delayed, App Store OK) | Databento OPRA Standard | $199/mo |
| Options only (delayed, display allowed) | Intrinio Silver | ~$400/mo |
| Options + Futures (App Store OK) | Databento OPRA + CME Standard | $378/mo |
| Options + Futures (all-in-one) | Polygon.io Business | $1,999/mo |
| Options + Futures (startup discount) | Polygon.io Business (year 1) | ~$1,000/mo |
| Equities/historicals (current migration) | Twelve Data Pro | $229/mo |
| Realistic combined (options + equities) | Databento OPRA + Twelve Data Pro | ~$428/mo |
| Realistic combined (options + futures + equities) | Databento OPRA + CME + Twelve Data Pro | ~$607/mo |
| Premium all-in-one (options + futures + equities) | Polygon.io Business + Twelve Data Pro | ~$2,228/mo |