{
  "checked": "2026-10-17",
  "tools": [
    {
      "id": "alpha-vantage",
      "name": "Alpha Vantage",
      "category": "Market data",
      "free": true,
      "limit": "The support page documents 25 requests/day for its standard free service; particular premium endpoints and regulated quote access remain separate.",
      "coverage": "Market-data and related financial endpoints; choose the exact endpoint, history and adjustment basis.",
      "rights": "A working key does not establish commercial display rights. Review current terms and contact the provider for the intended commercial use.",
      "task": "Check one required historical endpoint, the actual plan entitlement and whether the response contains adjusted or unadjusted values. Record the endpoint and quota unit before coding a refresh loop.",
      "sources": [
        "alpha",
        "alpha-terms"
      ]
    },
    {
      "id": "twelve-data",
      "name": "Twelve Data",
      "category": "Market data",
      "free": true,
      "limit": "Basic lists 8 APIcredits/minute and 800/day. Endpoint weight and symbol count can consume more than one credit per HTTP request.",
      "coverage": "Stocks, ETFs, forex and crypto coverage depends on the market and selected endpoint/package.",
      "rights": "The Basic pricing description specifies internal non-display usage. Public display, business use and exchange permissions must be checked in the matching plan.",
      "task": "Count symbols times endpoint weight rather than HTTP requests alone. Check data timing, timezone, trading-session scope and the applicable display entitlement.",
      "sources": [
        "twelve"
      ]
    },
    {
      "id": "finnhub",
      "name": "Finnhub",
      "category": "Market data",
      "free": null,
      "limit": "The general documentation states an additional 30 calls/second ceiling above plan limits. A current numeric free-plan quota is not asserted; verify the actual account entitlement.",
      "coverage": "Stock, forex, crypto and financial research endpoints are described by the provider; entitlement is endpoint-specific.",
      "rights": "Verify the exact account quota, exchange coverage and personal versus business/display permissions before selecting a feed. Unknown limits are not treated as unlimited.",
      "task": "Open the required endpoint documentation under the intended account and record the permitted symbols, response shape, timing and active rate-limit policy. This catalogue did not authenticate an API key.",
      "sources": [
        "finnhub"
      ]
    },
    {
      "id": "massive",
      "name": "Massive",
      "category": "Market data",
      "free": true,
      "limit": "Stocks Basic lists 5 APIcalls/minute,2 years of historical data and end-of-day access for individual use. Other stock plans have different timing/history entitlements.",
      "coverage": "U.S. stock reference and price-data workflows. A provider-wide feature list does not mean the Basic plan includes every feed or delivery mechanism.",
      "rights": "Individual-use pricing is separate from business plans. Real-time, delayed and end-of-day access are different entitlements; do not infer redistribution rights from a successful request.",
      "task": "Inspect a daily-aggregate response and its adjusted flag. Confirm timestamp units, data timing and history range under the actual selected plan.",
      "sources": [
        "massive"
      ]
    },
    {
      "id": "eodhd",
      "name": "EODHD",
      "category": "Market data",
      "free": true,
      "limit": "Free documents 20 APIcalls/day. The provider distinguishes HTTP requests per minute from weighted API calls spent per day; one request can consume many calls.",
      "coverage": "Historical market-data endpoints and other financial datasets; Marketplace products can have separate allowances.",
      "rights": "Check the selected product\u2019s use and redistribution terms separately from its request allowance. A trial-scale free quota is not an application capacity estimate.",
      "task": "Write down both request-rate and daily-call budgets for the chosen endpoints. Include bulk endpoint weights and separate Marketplace quotas before scheduling updates.",
      "sources": [
        "eodhd"
      ]
    },
    {
      "id": "financial-modeling-prep",
      "name": "Financial Modeling Prep",
      "category": "Market data",
      "free": true,
      "limit": "Basic lists 250 calls/day; the pricing page also identifies a trailing 30-day bandwidth allowance. Endpoint/history coverage varies by plan.",
      "coverage": "Historical prices, reference data and fundamental-data workflows, with plan-specific geography and history.",
      "rights": "The pricing page states that displaying or redistributing FMP data requires a specific Data Display and Licensing Agreement. Personal API access alone is not that agreement.",
      "task": "Check the endpoint, history, call budget and bandwidth policy. Keep the intended display use distinct from private endpoint testing before choosing a subscription.",
      "sources": [
        "fmp"
      ]
    },
    {
      "id": "nasdaq-data-link",
      "name": "Nasdaq Data Link",
      "category": "Dataset platform",
      "free": null,
      "limit": "Data products and access mechanisms vary. No universal free quota, history depth or licence is asserted for the entire platform.",
      "coverage": "Dataset-specific financial and alternative data through documented access tools; select the named product rather than assuming one uniform stock feed.",
      "rights": "Current terms and the applicable order/product terms govern permitted use. A general platform account does not establish permission to embed a dataset in a public SaaS.",
      "task": "Choose the exact dataset and its current access documentation. Verify schema, date semantics, revisions, history, pagination and the contracted use before evaluating an adapter.",
      "sources": [
        "nasdaq",
        "nasdaq-terms"
      ]
    },
    {
      "id": "fred",
      "name": "FRED and ALFRED",
      "category": "Economic data",
      "free": true,
      "limit": "Official documentation describes API versions and key requirements. No unverified request-rate quota is asserted here.",
      "coverage": "Economic time series and release/vintage workflows; this is a different task from a trade, quote or daily stock-OHLC feed.",
      "rights": "Series can carry third-party rights, attribution requirements and additional API restrictions. Read the current API terms, including restrictions relevant to caching and AI use, rather than treating all FRED access as unrestricted public-domain data.",
      "task": "Select the series and vintage/release convention, inspect its own source/copyright notices and current API conditions. This site does not call the FRED API or mirror its data.",
      "sources": [
        "fred",
        "fred-key",
        "fred-terms"
      ]
    }
  ],
  "sources": {
    "alpha": {
      "title": "Alpha Vantage support and free quota",
      "url": "https://www.alphavantage.co/support/",
      "checked": "2026-10-17",
      "snapshot": "source-snapshots\\alpha.html",
      "direct_error": null
    },
    "alpha-terms": {
      "title": "Alpha Vantage terms",
      "url": "https://www.alphavantage.co/terms_of_service/",
      "checked": "2026-10-17",
      "snapshot": "source-snapshots\\alpha-terms.html",
      "direct_error": null
    },
    "twelve": {
      "title": "Twelve Data individual pricing and weighted credits",
      "url": "https://twelvedata.com/pricing",
      "checked": "2026-10-17",
      "snapshot": "source-snapshots\\twelve.html",
      "direct_error": null
    },
    "finnhub": {
      "title": "Finnhub API documentation",
      "url": "https://finnhub.io/docs/api",
      "checked": "2026-10-17",
      "snapshot": "source-snapshots\\finnhub.html",
      "direct_error": null,
      "web_note": "source-snapshots/finnhub-web-note.txt"
    },
    "massive": {
      "title": "Massive stock pricing",
      "url": "https://massive.com/pricing?product=stocks",
      "checked": "2026-10-17",
      "snapshot": "source-snapshots\\massive.html",
      "direct_error": null
    },
    "eodhd": {
      "title": "EODHD request versus call limits",
      "url": "https://eodhd.com/financial-apis/api-limits",
      "checked": "2026-10-17",
      "snapshot": "source-snapshots\\eodhd.html",
      "direct_error": null
    },
    "fmp": {
      "title": "Financial Modeling Prep pricing and display agreement",
      "url": "https://site.financialmodelingprep.com/developer/docs/pricing",
      "checked": "2026-10-17",
      "snapshot": null,
      "direct_error": "HTTPError: HTTP Error 403: Forbidden",
      "web_note": "source-snapshots\\fmp-web-note.txt"
    },
    "nasdaq": {
      "title": "Nasdaq Data Link named dataset documentation (Sharadar SEP)",
      "url": "https://data.nasdaq.com/databases/SEP/documentation",
      "checked": "2026-10-17",
      "snapshot": "source-snapshots\\nasdaq-sep.html",
      "direct_error": "HTTPError: HTTP Error 404: Not Found",
      "web_note": "source-snapshots\\nasdaq-web-note.txt"
    },
    "nasdaq-terms": {
      "title": "Nasdaq Data Link terms",
      "url": "https://data.nasdaq.com/terms",
      "checked": "2026-10-17",
      "snapshot": "source-snapshots\\nasdaq-terms.html",
      "direct_error": null
    },
    "fred": {
      "title": "FRED API documentation",
      "url": "https://fred.stlouisfed.org/docs/api/fred/",
      "checked": "2026-10-17",
      "snapshot": null,
      "direct_error": "TimeoutError: The read operation timed out",
      "web_note": "source-snapshots\\fred-web-note.txt"
    },
    "fred-key": {
      "title": "FRED API key rules",
      "url": "https://fred.stlouisfed.org/docs/api/api_key.html",
      "checked": "2026-10-17",
      "snapshot": null,
      "direct_error": "TimeoutError: The read operation timed out",
      "web_note": "source-snapshots\\fred-key-web-note.txt"
    },
    "fred-terms": {
      "title": "FRED legal and API terms",
      "url": "https://fred.stlouisfed.org/legal/",
      "checked": "2026-10-17",
      "snapshot": null,
      "direct_error": "TimeoutError: The read operation timed out",
      "web_note": "source-snapshots\\fred-terms-web-note.txt"
    }
  }
}