Free Morningstar API Alternative for Developers

Morningstar Direct costs $15,000+/year and doesn't offer a public REST API. SecuritiesDB provides the same ETF analysis capabilities — X-Ray, overlap detection, full holdings — as a free, no-auth JSON API that any developer can use.

Feature Comparison

FeatureMorningstarSecuritiesDB
ETF X-Ray (sector, geo, style)✅ Web UI only✅ REST API
Portfolio Overlap✅ Morningstar Direct✅ Free endpoint
Full Holdings List✅ Premium only✅ Free endpoint
JSON API Access❌ No public API✅ REST + JSON
AuthenticationAPI key + contractNone required
Price$15,000+/yearFree
Star Ratings✅ Proprietary◐ Quant scores

What You Can Build

With the free SecuritiesDB API you can replicate most of Morningstar's ETF analysis features:

  • Portfolio X-Ray: /api/v1/etfs/VTI/xray — sector & geographic breakdown, HHI concentration
  • Overlap Check: /api/v1/etfs/QQQ/overlap/VGT — shared holdings percentage
  • Holdings Deep Dive: /api/v1/etfs/SPY/holdings — full constituent list with weights
  • Passive Float: /api/v1/stocks/AAPL/passive-float — how much is locked in index funds

Quick Start — Replace Morningstar X-Ray

import requests

# Morningstar X-Ray equivalent: one API call
xray = requests.get("https://securitiesdb.com/api/v1/etfs/VTI/xray").json()["data"]

print(f"Fund: VTI")
print(f"Holdings: {xray['total_holdings']}")
print(f"HHI Concentration: {xray['hhi']}")
print(f"Expense Ratio: {xray.get('expense_ratio', 'N/A')}")

# Sector breakdown
for sector in xray.get("sectors", [])[:5]:
    print(f"  {sector['name']:20s} {sector['weight']:.1f}%")

# Add overlap check — something Morningstar web can't do programmatically
overlap = requests.get(
    "https://securitiesdb.com/api/v1/etfs/VTI/overlap/VOO"
).json()["data"]
print(f"\nVTI ↔ VOO Overlap: {overlap['overlap_pct']:.1f}%")

Related Resources