{
  "data": {
    "a": {
      "slug": "financial-datasets",
      "name": "Financial Datasets",
      "vendor": "Financial Datasets, Inc.",
      "vendorUrl": "https://www.financialdatasets.ai",
      "kind": "http-api",
      "category": "market-data",
      "summary": "Financial Datasets is a stock market data API built for AI agents, with financial statements, SEC filings, earnings, insider and institutional holdings, prices, news and macro series for 27,000 US tickers, through REST, x402 and a hosted MCP server.",
      "url": "https://www.anchorterminal.com/tools/financial-datasets",
      "markdownUrl": "https://www.anchorterminal.com/tools/financial-datasets.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/financial-datasets.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/financial-datasets.json",
      "dns": "financial-datasets.grade.anchorterminal.com",
      "repo": "https://github.com/financial-datasets",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://api.financialdatasets.ai",
      "packages": [
        {
          "registry": "pypi",
          "name": "financial-datasets"
        }
      ],
      "auth": "mixed",
      "authNotes": "API key in the `X-API-KEY` header, minted in the dashboard or by `POST /agent/signup` with an email and agent name, shown once. Any documented GET data endpoint also accepts x402 payment with no key. The hosted MCP server uses OAuth 2 with PKCE, dynamic client registration, a revocation endpoint and one scope, `stock-market-data`, or an `X-API-KEY` header on its /api endpoint. Keys are revoked from the dashboard; no rotation or expiry documented.",
      "pricing": "usage",
      "pricingNotes": "Credits at $20 for 1,000 requests, one-off, personal licence, one year of price history. Personal $200 a month for 100,000 requests (overage $10 per 1,000, cap 1 million). Professional $2,000 a month for 2 million requests (overage $5 per 1,000, cap 10 million) with a commercial licence, redistribution, webhooks and uptime SLAs. Enterprise by contact. Premium endpoints count as 2, 4 or 8 requests by plan. Over x402, each GET data endpoint quotes its own USDC price in the 402 response; /earnings quoted $0.02 on 3 November 2026. No free tier found.",
      "priceSummary": "$0.02 / call",
      "where": "hosted",
      "x402": {
        "level": "yes",
        "evidence": "Announced 23 October 2026. Every documented GET data endpoint (36 per the announcement) returns 402 with x402 version 2 terms in the PAYMENT-REQUIRED header, scheme exact, USDC on Base (eip155:8453), payTo 0xC45E70793C01C6Ae4336dd5a5503baC958d32403, 300-second timeout. Error responses are not charged, payment settles only after a successful response, history is limited to the last 365 days and the licence is Non-Professional. Our unauthenticated GET /earnings?ticker=NVDA on 3 November 2026 returned 402 with amount 20000 base units, $0.02 (https://docs.financialdatasets.ai/x402.md).",
        "endpoints": [
          {
            "url": "https://api.financialdatasets.ai/earnings",
            "priceUsd": 0.02,
            "network": "eip155:8453"
          }
        ]
      },
      "toolCount": 28,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-03"
      },
      "docsUrl": "https://docs.financialdatasets.ai/",
      "llmsTxt": "https://docs.financialdatasets.ai/llms.txt",
      "openapi": "https://www.financialdatasets.ai/openapi.json",
      "capabilities": [
        "market.fundamentals",
        "market.filings",
        "market.prices",
        "market.history",
        "market.news",
        "market.indices",
        "data.markets",
        "data.company"
      ],
      "tags": [
        "official",
        "hosted",
        "x402",
        "usage",
        "prepaid",
        "openapi",
        "llms-txt",
        "mcp",
        "remote-mcp",
        "oauth",
        "webhooks",
        "no-status-page",
        "closed-source"
      ],
      "lastRelease": "2026-10-26",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 61.8,
        "grade": "C",
        "agentReady": false,
        "rank": 492,
        "ranked": true,
        "rankOf": 1349,
        "categoryRank": 3,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 73,
          "maintenance": 56,
          "payments": 75,
          "reliability": 43,
          "schema": 80,
          "security": 49,
          "transparency": 63
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-03"
        },
        "negative": 0,
        "verdict": "Every documented GET data endpoint takes x402 with no key, failed calls uncharged, and an agent can open and fund an account by API. A public OpenAPI file, llms.txt and a 28-tool OAuth MCP server cover the same data. There is no status page or free tier, keyed rate limits aren't published, and x402 data stops at 365 days.",
        "bestFor": "An agent doing US company research from SEC-sourced statements, filings, insider and institutional data that wants to pay per call with no account, or a small team on credits.",
        "strengths": [
          "x402 on every documented GET data endpoint (36), USDC on Base, no key or account, error responses not charged, with the price in each 402 response ($0.02 on /earnings on 3 November 2026)",
          "OpenAPI 3.0.1 with 68 operations and a description on each, llms.txt, and a Markdown twin of every docs page",
          "`POST /agent/signup` and `POST /agent/checkout-link` let an agent open and fund an account with the owner paying a Stripe link, minimum $20",
          "Hosted MCP server with 28 tools, OAuth 2 PKCE and dynamic client registration, or an X-API-KEY header on /api",
          "Privacy policy with retention periods and a dated subprocessor list, and terms that say inputs aren't used for training"
        ],
        "weaknesses": [
          "No status page, incident history or published uptime; the Professional plan's SLA terms aren't public",
          "No free tier. The cheapest route with a key is $20 for 1,000 credits, and data calls return 402 until an account is funded",
          "Rate limits for keyed plans aren't published; only x402 states 10,000 requests a minute per wallet",
          "x402 requests return only the last 365 days and are licensed for Non-Professional use; Credits and Personal plans carry the same limit",
          "No API version or changelog; the news page carries four posts in 2026, and the Python package on PyPI dates from May 2024"
        ],
        "agentNotes": [
          "Without a key, read the price from the PAYMENT-REQUIRED header of the 402 and pay with x402 on Base; each page of `next_page_url` is a separate paid request",
          "Keep `limit` small and ask for one `period` at a time; premium endpoints count as 2, 4 or 8 requests on keyed plans",
          "Send the key only to api.financialdatasets.ai in the `X-API-KEY` header; on 401 ask the owner for a new key rather than signing up again",
          "Treat a 402 on a keyed account as an empty balance and mint a checkout link for the owner; don't retry the call",
          "Check the plan's licence before showing the data to anyone else; redistribution needs Professional or Enterprise"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 61.8
          }
        ],
        "editorialScores": {
          "ergonomics": 73,
          "maintenance": 56,
          "payments": 75,
          "reliability": 43,
          "schema": 80,
          "security": 49,
          "transparency": 60
        },
        "provenanceScore": 65,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-03",
            "maintenance": "2026-11-03",
            "payments": "2026-11-03",
            "reliability": "2026-11-03",
            "schema": "2026-11-03",
            "security": "2026-11-03",
            "transparency": "2026-11-03"
          },
          "last": "2026-11-03",
          "oldest": "2026-11-03",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "pip install financial-datasets",
        "http": "curl -H \"X-API-KEY: $FINANCIAL_DATASETS_KEY\" \"https://api.financialdatasets.ai/financials/income-statements?ticker=AAPL\u0026period=annual\u0026limit=4\"",
        "claudeCode": "claude mcp add --transport http financial-datasets https://mcp.financialdatasets.ai/",
        "config": {
          "mcpServers": {
            "financial-datasets": {
              "url": "https://mcp.financialdatasets.ai/"
            }
          }
        },
        "x402": "curl -i \"https://api.financialdatasets.ai/earnings?ticker=NVDA\u0026limit=4\""
      },
      "letme": {
        "capability": "https://letme.dev/market.fundamentals",
        "tool": "https://letme.dev/financial-datasets"
      },
      "area": "domain-data",
      "unitPrices": [
        {
          "item": "Earnings, over x402",
          "unit": "call",
          "usd": 0.02,
          "note": "read from the 402 response on 3 November 2026; other endpoints quote their own price"
        },
        {
          "item": "Credits pack",
          "unit": "1k-requests",
          "usd": 20,
          "note": "one-off, personal licence, one year of price history"
        },
        {
          "item": "Personal plan",
          "unit": "month",
          "usd": 200,
          "note": "100,000 requests, overage $10 per 1,000"
        },
        {
          "item": "Professional plan",
          "unit": "month",
          "usd": 2000,
          "note": "2 million requests, overage $5 per 1,000, commercial licence"
        }
      ],
      "provenance": {
        "legalEntity": "Financial Datasets, Inc.",
        "domain": "financialdatasets.ai",
        "domainRegistered": "",
        "endpointOnVendorDomain": true,
        "terms": "https://www.financialdatasets.ai/terms-of-use",
        "privacy": "https://www.financialdatasets.ai/privacy-policy",
        "statusPage": "",
        "changelog": "https://www.financialdatasets.ai/news",
        "securityTxt": "none",
        "checked": "2026-11-03",
        "notes": [
          "Financial Datasets, Inc. is named in the terms (as of 29 October 2026, New York law), the privacy policy (last updated 20 August 2026) and the subprocessor list (29 October 2026).",
          "Terms section 5 forbids accessing the Services by automated means outside the documented API; the public website has no separate automated-access clause. robots.txt on www.financialdatasets.ai allows all crawlers and names ClaudeBot, Claude-User and Claude-SearchBot as allowed; docs.financialdatasets.ai, api.financialdatasets.ai and mcp.financialdatasets.ai carry Content-Signal ai-train=yes, search=yes, ai-input=yes.",
          "The docs, llms.txt and the 402 response carry instructions addressed to agents; none were acted on.",
          "RDAP for financialdatasets.ai was refused (403 from rdap.org), so the registration date is unchecked.",
          "/.well-known/security.txt returns 404. No status page found. The news page is the nearest thing to a changelog."
        ],
        "score": 65
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/financial-datasets.json",
      "live": {
        "slug": "financial-datasets",
        "probe": {
          "target": "https://api.financialdatasets.ai",
          "method": "get",
          "lastAt": "2026-11-04T20:05:01.616956895Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 172,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 301,
          "p95ms24h": 776,
          "samples24h": 48,
          "samples30d": 48,
          "days": [
            {
              "date": "2026-11-04",
              "probes": 48,
              "ok": 48
            }
          ]
        },
        "securityTxt": {
          "url": "https://financialdatasets.ai/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-04T15:52:54.466191501Z"
        },
        "updatedAt": "2026-11-04T20:05:01.616956895Z"
      }
    },
    "answer": "Financial Datasets scores 61.8 (C) on agent readiness against Financial Modeling Prep's 48.7 (D), and leads in 5 of 7 scored categories. Financial Modeling Prep leads on reliability.",
    "b": {
      "slug": "financial-modeling-prep",
      "name": "Financial Modeling Prep",
      "vendor": "Financial Modeling Prep",
      "vendorUrl": "https://site.financialmodelingprep.com",
      "kind": "http-api",
      "category": "market-data",
      "summary": "Financial Modeling Prep (FMP) is a market data API for financial statements, earnings, quotes, price history, filings, news and economic series across stocks, ETFs, funds, forex and crypto. Agents call the REST endpoints under /stable or the hosted MCP server.",
      "url": "https://www.anchorterminal.com/tools/financial-modeling-prep",
      "markdownUrl": "https://www.anchorterminal.com/tools/financial-modeling-prep.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/financial-modeling-prep.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/financial-modeling-prep.json",
      "dns": "financial-modeling-prep.grade.anchorterminal.com",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://financialmodelingprep.com/stable",
      "packages": [],
      "auth": "api-key",
      "authNotes": "One API key per account, shown in the dashboard after a browser signup. The docs accept it as an `apikey` request header or as `?apikey=` in the query string. The hosted MCP server's documented address carries the key in the URL, `https://financialmodelingprep.com/mcp?apikey=KEY`; the same host also publishes OAuth 2 metadata (authorisation code with PKCE, scopes openid, email and profile) that the MCP page does not mention. No scopes, expiry or rotation guidance found.",
      "pricing": "freemium",
      "pricingNotes": "Basic plan free at 250 calls a day with end-of-day data and 5 years of history, no card stated. Personal plans Starter $29, Premium $69 and Ultimate $139 a month (about $19, $49 and $99 a month billed annually) at 300, 750 and 3,000 calls a minute, with trailing 30-day bandwidth caps of 500 MB, 20 GB, 50 GB and 150 GB. Commercial and display use need a separate licence with no public price (https://site.financialmodelingprep.com/pricing-plans, checked 2026-11-03).",
      "priceSummary": "$29 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the API docs, api-docs.md, pricing pages, the MCP page or the OAuth metadata (checked 2026-11-03). A call without a key returns HTTP 401 with an `Error Message` field.",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-03"
      },
      "docsUrl": "https://site.financialmodelingprep.com/developer/docs",
      "llmsTxt": "https://site.financialmodelingprep.com/llms.txt",
      "capabilities": [
        "market.fundamentals",
        "market.prices",
        "market.history",
        "market.filings",
        "market.news",
        "market.indices",
        "market.crypto",
        "data.company",
        "data.markets"
      ],
      "tags": [
        "hosted",
        "freemium",
        "api-key",
        "mcp",
        "remote-mcp",
        "llms-txt",
        "no-card",
        "free-tier",
        "closed-source",
        "status-page",
        "stocks",
        "forex",
        "crypto",
        "personal-use"
      ],
      "lastRelease": "2026-11-02",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 48.7,
        "grade": "D",
        "agentReady": false,
        "rank": 1056,
        "ranked": true,
        "rankOf": 1349,
        "categoryRank": 8,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 59,
          "maintenance": 60,
          "payments": 30,
          "reliability": 50,
          "schema": 61,
          "security": 30,
          "transparency": 57
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-03"
        },
        "negative": 0,
        "verdict": "About 199 stable REST endpoints with Markdown docs for agents, a dated changelog and a free key at 250 calls a day. The one key travels in the query string on the documented MCP address, error responses and 429 handling are undocumented, the status history could not be read, and personal plans forbid any company use.",
        "bestFor": "Agents doing company research on statements, ratios, DCF, filings, transcripts and calendars with one key, and US coverage on cheap plans.",
        "strengths": [
          "api-docs.md and pricing.md give agents every stable endpoint with parameters, an example response and the plan that unlocks it",
          "Changelog entries dated by day through 2 November 2026",
          "Free Basic plan at 250 calls a day with no card stated, and plan prices published without login",
          "A public status page and a help centre with FAQs on keys, limits and errors",
          "Hosted MCP server that reuses the REST key and limits, with OAuth metadata published on the same host"
        ],
        "weaknesses": [
          "The documented MCP connection URL puts the API key in the query string, and the REST docs accept `?apikey=` too",
          "No OpenAPI document, no documented error responses and no 429 or Retry-After guidance found",
          "Status page data did not load for our reader, so the incident record is unknown",
          "Personal plans are for individuals only; any use on behalf of a company, and any display, needs a separate agreement with no public price",
          "Terms name no legal entity, and the privacy policy carries no date and no retention periods"
        ],
        "agentNotes": [
          "Send the key as an `apikey` header, not in the URL, and treat the MCP `?apikey=` address as a secret",
          "Use the /stable paths from api-docs.md; /api/v3 and /v4 are discontinued even though the FAQ still shows a v3 example",
          "On the free plan expect 5 results and page 0 on many list endpoints; read pricing.md before planning a crawl",
          "A missing or wrong key returns HTTP 401 with an `Error Message` field; stop and ask the user rather than retry",
          "Do not display or pass on the data in a product; personal plans forbid it"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 48.7
          }
        ],
        "editorialScores": {
          "ergonomics": 59,
          "maintenance": 60,
          "payments": 30,
          "reliability": 50,
          "schema": 61,
          "security": 30,
          "transparency": 33
        },
        "provenanceScore": 81,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-03",
            "maintenance": "2026-11-03",
            "payments": "2026-11-03",
            "reliability": "2026-11-03",
            "schema": "2026-11-03",
            "security": "2026-11-03",
            "transparency": "2026-11-03"
          },
          "last": "2026-11-03",
          "oldest": "2026-11-03",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "http": "curl -H \"apikey: $FMP_API_KEY\" \"https://financialmodelingprep.com/stable/quote?symbol=AAPL\"",
        "config": {
          "mcpServers": {
            "fmp": {
              "url": "https://financialmodelingprep.com/mcp?apikey=YOUR_FMP_API_KEY"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/market.fundamentals",
        "tool": "https://letme.dev/financial-modeling-prep"
      },
      "area": "domain-data",
      "unitPrices": [
        {
          "item": "Starter, 300 calls a minute",
          "unit": "month",
          "usd": 29,
          "note": "personal use, about $19 a month billed annually"
        },
        {
          "item": "Premium, 750 calls a minute",
          "unit": "month",
          "usd": 69,
          "note": "personal use, about $49 a month billed annually"
        },
        {
          "item": "Ultimate, 3,000 calls a minute",
          "unit": "month",
          "usd": 139,
          "note": "personal use, about $99 a month billed annually"
        }
      ],
      "provenance": {
        "legalEntity": "Financial Modeling Prep",
        "domain": "financialmodelingprep.com",
        "domainRegistered": "2018-02-19",
        "endpointOnVendorDomain": true,
        "terms": "https://site.financialmodelingprep.com/terms-of-service",
        "privacy": "https://site.financialmodelingprep.com/privacy-policy",
        "statusPage": "https://status.financialmodelingprep.com",
        "changelog": "https://site.financialmodelingprep.com/developer/docs/changelog",
        "securityTxt": "none",
        "checked": "2026-11-03",
        "notes": [
          "The terms of service, last updated 1 August 2023, are written between FMP and the customer and name no legal form, address or governing law. The footer reads Financial Modeling Prep.",
          "The privacy policy carries no date and names Google AdSense and Google Analytics. It keeps data for as long as necessary and promises breach notice within 7 business days.",
          "site.financialmodelingprep.com/robots.txt allows all crawlers and disallows /contact-card/. The terms contain no clause on automated access to the website.",
          "RDAP gives financialmodelingprep.com a registration date of 19 February 2018 at Amazon Registrar.",
          "/.well-known/security.txt and /security.txt return 404 on site.financialmodelingprep.com. The footer's Trust Center link returns 404.",
          "The status page is an Endpoint Uptime Status page at status.financialmodelingprep.com whose data loads by script; our reader got an error instead of the uptime figures.",
          "The hosted MCP server's host publishes OAuth 2 metadata at /.well-known/oauth-authorization-server with a Google service-account JWKS."
        ],
        "score": 81
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/financial-modeling-prep.json",
      "live": {
        "slug": "financial-modeling-prep",
        "probe": {
          "target": "https://financialmodelingprep.com/stable",
          "method": "get",
          "lastAt": "2026-11-04T20:05:01.672715275Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 387,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 398,
          "p95ms24h": 600,
          "samples24h": 48,
          "samples30d": 48,
          "days": [
            {
              "date": "2026-11-04",
              "probes": 48,
              "ok": 48
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.financialmodelingprep.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-04T15:31:55.222038062Z"
        },
        "securityTxt": {
          "url": "https://financialmodelingprep.com/.well-known/security.txt",
          "state": "unknown",
          "checkedAt": "2026-11-04T15:54:45.259926529Z"
        },
        "updatedAt": "2026-11-04T20:05:01.672715275Z"
      }
    },
    "edges": [
      {
        "by": 45,
        "category": "payments",
        "leads": "financial-datasets",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "x402 on the vendor's own endpoints for every documented GET data endpoint, 36 of them, with the last 365 days only and a Non-Professional licence; full history, the market snapshot, filing items and the POST endpoints need a key (35 of 40). Plan prices and overage rates are public, and each x402 endpoint quotes its price in the 402 header, $0.02 on /earnings (20). No free tier or trial found; data calls return 402 until an account holds credits, from $20 (0). An agent can pay by x402 with no account, or open an account with `POST /agent/signup` and have the owner fund it (20). Total 75.",
          "b": "No x402, MPP or L402 (0). Four personal plans priced per month by calls a minute, public without login, with per-endpoint plan limits in pricing.md; commercial prices are by agreement (10). A free Basic plan at 250 calls a day with no card stated (20). The key comes from a browser signup and no key API was found (0). 0 + 10 + 20 + 0 = 30."
        },
        "scores": {
          "a": 75,
          "b": 30
        }
      },
      {
        "by": 19,
        "category": "schema",
        "leads": "financial-datasets",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "OpenAPI 3.0.1 at financialdatasets.ai/openapi.json, 68 operations with 13 response codes and one security scheme, named the source of truth by the docs (25). llms.txt and a Markdown twin of every page (10). Every operation has a description, and the 402 terms carry a resource description that says when an agent should use the endpoint (17 of 20). 330 parameters, 36 with enums, 32 required, no free-form blobs (12 of 15). Code samples in Python, JavaScript and curl, x402 error values documented, but response examples on only six operations in the spec (11 of 15). No API version and no changelog; the news page has four dated posts in 2026 (5 of 15). Total 80.",
          "b": "No OpenAPI document was found. The MCP page says the server supplies strict parameter definitions, but the tool list needs a key and was not read (5 of 25). llms.txt links api-docs.md and pricing.md, Markdown written for agents (10). Each of the 199 endpoints in api-docs.md has a purpose paragraph and a plan marker in pricing.md, with little on when not to use it (13 of 20). Parameters are tabled with type, example and a required star, but allowed values sit in prose and no enums are given (8 of 15). Every endpoint has an example request and response; no error responses are documented anywhere we read (10 of 15). A /stable path, legacy /v3 and /v4 marked discontinued, and a changelog dated by day through 2 November 2026 (15). 5 + 10 + 13 + 8 + 10 + 15 = 61."
        },
        "scores": {
          "a": 80,
          "b": 61
        }
      },
      {
        "by": 19,
        "category": "security",
        "leads": "financial-datasets",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "A plain account key in the `X-API-KEY` header only, revoked from the dashboard, with no scopes, rotation or expiry; the MCP server adds OAuth 2 with PKCE (plain and S256), dynamic client registration, a revocation endpoint and one scope (20 of 30). Every data endpoint is a read; the x402 route and agent signup don't change the account beyond funding it (15 of 20). Filing text, filing items and news are third-party content, with no guidance on treating them as untrusted (5 of 15). The privacy policy says requests and responses are logged for up to three years; no per-call log is shown to the key holder (5 of 15). security.txt returns 404 and no bounty, SOC 2 or ISO 27001 was found; the terms ask for prompt notice of a compromised key and a subprocessor list is published (4 of 20). Total 49.",
          "b": "One key per account with no scopes, accepted as a header or as `?apikey=`, and the documented MCP address carries it in the URL (20 less 10 for the query string, so 10). Every endpoint is a read (15 of 20). News, press releases, transcripts and filings are third-party text and no guidance on treating them as untrusted was found (5 of 15). No usage log or per-call record for the key holder was found (0 of 15). security.txt returns 404, the Trust Center link returns 404, and no disclosure policy, bug bounty or certification was found (0 of 20). 10 + 15 + 5 + 0 + 0 = 30."
        },
        "scores": {
          "a": 49,
          "b": 30
        }
      },
      {
        "by": 14,
        "category": "ergonomics",
        "leads": "financial-datasets",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "`limit` and `period` on the data endpoints, `as_reported` flags and snapshot variants, with no field selection (15 of 25). `next_page_url` cursors and ticker, CIK, market and date filters (18 of 20). A 402 body says what to do next, x402 errors carry named values, and the spec lists 400, 401, 403, 404, 409, 422, 429, 502 and 503 (16 of 20). Data calls are GETs, payment settles only after a successful response, and a replayed x402 signature is refused; no readOnlyHint found for the MCP tools and no idempotency key for the POST endpoints (14 of 20). Few required parameters, 28 compact MCP tools, but the only package, financial-datasets on PyPI, is at 0.1.18 from 26 May 2024 (10 of 15). Total 73.",
          "b": "The REST API is the surface graded. `limit` and `page` on list endpoints, `from` and `to` on series, and batch quote endpoints size responses, with no field selection (15 of 25). Page and limit parameters on lists and date filters on series, no cursor (15 of 20). A missing key returned 401 with an `Error Message` text field in our one test call, and no error reference exists (5 of 20). Every call is a GET read; the MCP server's annotations were not read (16 of 20). Few required parameters and sensible defaults, but no official SDK in any language (8 of 15). 15 + 15 + 5 + 16 + 8 = 59."
        },
        "scores": {
          "a": 73,
          "b": 59
        }
      },
      {
        "by": 7,
        "category": "reliability",
        "leads": "financial-modeling-prep",
        "name": "Reliability",
        "reasons": {
          "a": "Graded as a hosted service. No status page was found; status.financialdatasets.ai does not resolve and no page links one (0), so there is no incident history to read (5). The only published limit is 10,000 requests a minute per wallet over x402, with monthly request caps per plan and none per minute for keyed plans (8 of 15). The OpenAPI file declares 429 and the x402 page documents a 503 with Retry-After from the facilitator and a `duplicate_payment` check on replayed signatures (10 of 15). The Professional plan lists uptime SLAs, with no figure published (10). The API is generally available (10). Total 43.",
          "b": "Read with the hosted lines. A public status page at status.financialmodelingprep.com is linked from every page (20), but its figures load by script and our reader got an error, so no incident history could be read (5). Limits are published with numbers, 250 calls a day on Basic and 300, 750 and 3,000 calls a minute on paid plans, with bandwidth caps per plan (15). No 429 behaviour, Retry-After or backoff guidance was found in the docs, api-docs.md or FAQs (0). No SLA found; the terms let FMP change limits without notice (0). The stable API is generally available (10). 20 + 5 + 15 + 0 + 0 + 10 = 50."
        },
        "scores": {
          "a": 43,
          "b": 50
        }
      },
      {
        "by": 6,
        "category": "transparency",
        "leads": "financial-datasets",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "A closed service under terms dated 29 October 2026 that name Financial Datasets, Inc., set New York law, and state the licence per plan (15 of 30). The privacy policy of 20 August 2026 gives retention periods (accounts up to seven years after closure, API and MCP logs up to three years, backups 90 days), says inputs aren't used for training, and links a subprocessor list; no DPA text was found (24 of 30). No deprecation policy; the terms say the Services may be discontinued and material changes get reasonable notice (3 of 20). Subprocessors (AWS, Heroku, Stripe, Google sign-in, Vercel) and the United States as hosting location are disclosed (18 of 20). Total 60.",
          "b": "A closed service under terms that are clear on personal and commercial use and on display licensing, last updated 1 August 2023, but that name no legal entity, address or governing law (12 of 30). The privacy policy is undated, keeps data for as long as necessary with no periods, says no third parties receive data while naming Google AdSense and Analytics, and no DPA was found (8 of 30). The docs keep a Legacy section and api-docs.md says /v3 and /v4 are discontinued, with no notice period stated; behaviour changes such as the Economics Indicators default window appear in the dated changelog (8 of 20). Google services are the only processors named and no data location is given (5 of 20). 12 + 8 + 8 + 5 = 33."
        },
        "scores": {
          "a": 63,
          "b": 57
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Financial Datasets, Inc.",
        "b": "Financial Modeling Prep",
        "name": "Vendor"
      },
      {
        "a": "https://api.financialdatasets.ai",
        "b": "https://financialmodelingprep.com/stable",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP",
        "b": "HTTP, Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Pay per use",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "yes, from $0.02/call",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "28",
        "b": "none",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-26",
        "b": "2026-11-02",
        "name": "Last release"
      },
      {
        "a": "2026-10-29",
        "b": "couldn't be read",
        "name": "Terms last updated"
      },
      {
        "a": "2026-08-20",
        "b": "couldn't be read",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "couldn't be read",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "couldn't be read",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "couldn't be read",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "couldn't be read",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "couldn't be read",
        "name": "Arbitration or class-action waiver"
      }
    ],
    "faq": [
      {
        "answer": "Financial Datasets scores 61.8 (C) on agent readiness against Financial Modeling Prep's 48.7 (D), and leads in 5 of 7 scored categories. Financial Modeling Prep leads on reliability.",
        "question": "Which is better for AI agents, Financial Datasets or Financial Modeling Prep?"
      },
      {
        "answer": "Financial Datasets takes an API key or an OAuth sign-in. Financial Modeling Prep needs an API key. An agent can also pay Financial Datasets per call over x402, with no account.",
        "question": "Do Financial Datasets and Financial Modeling Prep need an API key?"
      },
      {
        "answer": "Yes. Financial Datasets has a hosted endpoint at https://api.financialdatasets.ai and Financial Modeling Prep at https://financialmodelingprep.com/stable.",
        "question": "Can an agent call Financial Datasets and Financial Modeling Prep without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Schema \u0026 documentation, 80 against 61",
          "Agent ergonomics, 73 against 59",
          "Security \u0026 auth, 49 against 30",
          "Payments \u0026 pricing, 75 against 30",
          "Transparency \u0026 trust, 63 against 57"
        ],
        "also": [
          "An agent can pay per call over x402, with no account"
        ],
        "goodFor": "An agent doing US company research from SEC-sourced statements, filings, insider and institutional data that wants to pay per call with no account, or a small team on credits.",
        "slug": "financial-datasets",
        "watchFor": "No status page, incident history or published uptime; the Professional plan's SLA terms aren't public"
      },
      {
        "aheadOn": [
          "Reliability, 50 against 43"
        ],
        "also": [
          "Free to start without a card"
        ],
        "goodFor": "Agents doing company research on statements, ratios, DCF, filings, transcripts and calendars with one key, and US coverage on cheap plans.",
        "slug": "financial-modeling-prep",
        "watchFor": "The documented MCP connection URL puts the API key in the query string, and the REST docs accept `?apikey=` too"
      }
    ],
    "history": null,
    "job": {
      "capability": "market.fundamentals",
      "name": "Market fundamentals"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/alpha-vantage-vs-financial-datasets.json",
        "title": "Alpha Vantage vs Financial Datasets",
        "url": "https://www.anchorterminal.com/compare/alpha-vantage-vs-financial-datasets"
      },
      {
        "json": "https://www.anchorterminal.com/compare/alpha-vantage-vs-financial-modeling-prep.json",
        "title": "Alpha Vantage vs Financial Modeling Prep",
        "url": "https://www.anchorterminal.com/compare/alpha-vantage-vs-financial-modeling-prep"
      },
      {
        "json": "https://www.anchorterminal.com/compare/databento-vs-financial-datasets.json",
        "title": "Databento vs Financial Datasets",
        "url": "https://www.anchorterminal.com/compare/databento-vs-financial-datasets"
      },
      {
        "json": "https://www.anchorterminal.com/compare/databento-vs-financial-modeling-prep.json",
        "title": "Databento vs Financial Modeling Prep",
        "url": "https://www.anchorterminal.com/compare/databento-vs-financial-modeling-prep"
      },
      {
        "json": "https://www.anchorterminal.com/compare/financial-datasets-vs-massive.json",
        "title": "Financial Datasets vs Massive (formerly Polygon.io)",
        "url": "https://www.anchorterminal.com/compare/financial-datasets-vs-massive"
      },
      {
        "json": "https://www.anchorterminal.com/compare/financial-modeling-prep-vs-massive.json",
        "title": "Financial Modeling Prep vs Massive (formerly Polygon.io)",
        "url": "https://www.anchorterminal.com/compare/financial-modeling-prep-vs-massive"
      },
      {
        "json": "https://www.anchorterminal.com/compare/financial-datasets-vs-finnhub.json",
        "title": "Financial Datasets vs Finnhub",
        "url": "https://www.anchorterminal.com/compare/financial-datasets-vs-finnhub"
      },
      {
        "json": "https://www.anchorterminal.com/compare/financial-datasets-vs-intrinio.json",
        "title": "Financial Datasets vs Intrinio",
        "url": "https://www.anchorterminal.com/compare/financial-datasets-vs-intrinio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/financial-datasets-vs-tiingo.json",
        "title": "Financial Datasets vs Tiingo",
        "url": "https://www.anchorterminal.com/compare/financial-datasets-vs-tiingo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/financial-datasets-vs-twelve-data.json",
        "title": "Financial Datasets vs Twelve Data",
        "url": "https://www.anchorterminal.com/compare/financial-datasets-vs-twelve-data"
      },
      {
        "json": "https://www.anchorterminal.com/compare/financial-modeling-prep-vs-finnhub.json",
        "title": "Financial Modeling Prep vs Finnhub",
        "url": "https://www.anchorterminal.com/compare/financial-modeling-prep-vs-finnhub"
      },
      {
        "json": "https://www.anchorterminal.com/compare/financial-modeling-prep-vs-intrinio.json",
        "title": "Financial Modeling Prep vs Intrinio",
        "url": "https://www.anchorterminal.com/compare/financial-modeling-prep-vs-intrinio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/financial-modeling-prep-vs-tiingo.json",
        "title": "Financial Modeling Prep vs Tiingo",
        "url": "https://www.anchorterminal.com/compare/financial-modeling-prep-vs-tiingo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/financial-modeling-prep-vs-twelve-data.json",
        "title": "Financial Modeling Prep vs Twelve Data",
        "url": "https://www.anchorterminal.com/compare/financial-modeling-prep-vs-twelve-data"
      },
      {
        "json": "https://www.anchorterminal.com/compare/eodhd-vs-financial-datasets.json",
        "title": "EODHD vs Financial Datasets",
        "url": "https://www.anchorterminal.com/compare/eodhd-vs-financial-datasets"
      },
      {
        "json": "https://www.anchorterminal.com/compare/eodhd-vs-financial-modeling-prep.json",
        "title": "EODHD vs Financial Modeling Prep",
        "url": "https://www.anchorterminal.com/compare/eodhd-vs-financial-modeling-prep"
      },
      {
        "json": "https://www.anchorterminal.com/compare/benzinga-vs-financial-datasets.json",
        "title": "Benzinga vs Financial Datasets",
        "url": "https://www.anchorterminal.com/compare/benzinga-vs-financial-datasets"
      },
      {
        "json": "https://www.anchorterminal.com/compare/benzinga-vs-financial-modeling-prep.json",
        "title": "Benzinga vs Financial Modeling Prep",
        "url": "https://www.anchorterminal.com/compare/benzinga-vs-financial-modeling-prep"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 7,
        "edge": "financial-modeling-prep",
        "financial-datasets": 43,
        "financial-modeling-prep": 50,
        "key": "reliability",
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 19,
        "edge": "financial-datasets",
        "financial-datasets": 80,
        "financial-modeling-prep": 61,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 14,
        "edge": "financial-datasets",
        "financial-datasets": 73,
        "financial-modeling-prep": 59,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 19,
        "edge": "financial-datasets",
        "financial-datasets": 49,
        "financial-modeling-prep": 30,
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 45,
        "edge": "financial-datasets",
        "financial-datasets": 75,
        "financial-modeling-prep": 30,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 4,
        "edge": "financial-modeling-prep",
        "financial-datasets": 56,
        "financial-modeling-prep": 60,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 6,
        "edge": "financial-datasets",
        "financial-datasets": 63,
        "financial-modeling-prep": 57,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Financial Datasets scores 61.8 (C) on agent readiness against Financial Modeling Prep's 48.7 (D), and leads in 5 of 7 scored categories. Financial Modeling Prep leads on reliability. Both do market fundamentals. Financial Datasets accepts x402. Financial Modeling Prep doesn't.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "financial-datasets": "Every documented GET data endpoint takes x402 with no key, failed calls uncharged, and an agent can open and fund an account by API. A public OpenAPI file, llms.txt and a 28-tool OAuth MCP server cover the same data. There is no status page or free tier, keyed rate limits aren't published, and x402 data stops at 365 days.",
      "financial-modeling-prep": "About 199 stable REST endpoints with Markdown docs for agents, a dated changelog and a free key at 250 calls a day. The one key travels in the query string on the documented MCP address, error responses and 429 handling are undocumented, the status history could not be read, and personal plans forbid any company use."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/financial-datasets-vs-financial-modeling-prep",
    "json": "https://www.anchorterminal.com/compare/financial-datasets-vs-financial-modeling-prep.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/financial-datasets-vs-financial-modeling-prep.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/financial-datasets-vs-financial-modeling-prep.min.md"
  },
  "markdown": "Financial Datasets scores 61.8 (C) on agent readiness against Financial Modeling Prep's 48.7 (D), and leads in 5 of 7 scored categories. Financial Modeling Prep leads on reliability. Both do market fundamentals. Financial Datasets accepts x402. Financial Modeling Prep doesn't.\n\n- Financial Datasets: grade C, 61.8/100, rank #492 of 1349. Markdown https://www.anchorterminal.com/tools/financial-datasets.md · JSON https://www.anchorterminal.com/api/v1/tools/financial-datasets.json\n- Financial Modeling Prep: grade D, 48.7/100, rank #1056 of 1349. Markdown https://www.anchorterminal.com/tools/financial-modeling-prep.md · JSON https://www.anchorterminal.com/api/v1/tools/financial-modeling-prep.json\n- Best financial market data APIs for AI agents: https://www.anchorterminal.com/best/market-data/index.md\n- All 55 markets comparisons: https://www.anchorterminal.com/compare/market-data/index.md\n\n## Which one, for what\n\n### Financial Datasets (C)\n\nGood for: An agent doing US company research from SEC-sourced statements, filings, insider and institutional data that wants to pay per call with no account, or a small team on credits.\n\nAhead on:\n- Schema \u0026 documentation, 80 against 61\n- Agent ergonomics, 73 against 59\n- Security \u0026 auth, 49 against 30\n- Payments \u0026 pricing, 75 against 30\n- Transparency \u0026 trust, 63 against 57\n\nAlso in its favour:\n- An agent can pay per call over x402, with no account\n\nWatch for: No status page, incident history or published uptime; the Professional plan's SLA terms aren't public\n\n### Financial Modeling Prep (D)\n\nGood for: Agents doing company research on statements, ratios, DCF, filings, transcripts and calendars with one key, and US coverage on cheap plans.\n\nAhead on:\n- Reliability, 50 against 43\n\nAlso in its favour:\n- Free to start without a card\n\nWatch for: The documented MCP connection URL puts the API key in the query string, and the REST docs accept `?apikey=` too\n\n\n## Why the edge\n\n### Payments \u0026 pricing: Financial Datasets +45\n\n- Financial Datasets (75): x402 on the vendor's own endpoints for every documented GET data endpoint, 36 of them, with the last 365 days only and a Non-Professional licence; full history, the market snapshot, filing items and the POST endpoints need a key (35 of 40). Plan prices and overage rates are public, and each x402 endpoint quotes its price in the 402 header, $0.02 on /earnings (20). No free tier or trial found; data calls return 402 until an account holds credits, from $20 (0). An agent can pay by x402 with no account, or open an account with `POST /agent/signup` and have the owner fund it (20). Total 75.\n- Financial Modeling Prep (30): No x402, MPP or L402 (0). Four personal plans priced per month by calls a minute, public without login, with per-endpoint plan limits in pricing.md; commercial prices are by agreement (10). A free Basic plan at 250 calls a day with no card stated (20). The key comes from a browser signup and no key API was found (0). 0 + 10 + 20 + 0 = 30.\n\n### Schema \u0026 documentation: Financial Datasets +19\n\n- Financial Datasets (80): OpenAPI 3.0.1 at financialdatasets.ai/openapi.json, 68 operations with 13 response codes and one security scheme, named the source of truth by the docs (25). llms.txt and a Markdown twin of every page (10). Every operation has a description, and the 402 terms carry a resource description that says when an agent should use the endpoint (17 of 20). 330 parameters, 36 with enums, 32 required, no free-form blobs (12 of 15). Code samples in Python, JavaScript and curl, x402 error values documented, but response examples on only six operations in the spec (11 of 15). No API version and no changelog; the news page has four dated posts in 2026 (5 of 15). Total 80.\n- Financial Modeling Prep (61): No OpenAPI document was found. The MCP page says the server supplies strict parameter definitions, but the tool list needs a key and was not read (5 of 25). llms.txt links api-docs.md and pricing.md, Markdown written for agents (10). Each of the 199 endpoints in api-docs.md has a purpose paragraph and a plan marker in pricing.md, with little on when not to use it (13 of 20). Parameters are tabled with type, example and a required star, but allowed values sit in prose and no enums are given (8 of 15). Every endpoint has an example request and response; no error responses are documented anywhere we read (10 of 15). A /stable path, legacy /v3 and /v4 marked discontinued, and a changelog dated by day through 2 November 2026 (15). 5 + 10 + 13 + 8 + 10 + 15 = 61.\n\n### Security \u0026 auth: Financial Datasets +19\n\n- Financial Datasets (49): A plain account key in the `X-API-KEY` header only, revoked from the dashboard, with no scopes, rotation or expiry; the MCP server adds OAuth 2 with PKCE (plain and S256), dynamic client registration, a revocation endpoint and one scope (20 of 30). Every data endpoint is a read; the x402 route and agent signup don't change the account beyond funding it (15 of 20). Filing text, filing items and news are third-party content, with no guidance on treating them as untrusted (5 of 15). The privacy policy says requests and responses are logged for up to three years; no per-call log is shown to the key holder (5 of 15). security.txt returns 404 and no bounty, SOC 2 or ISO 27001 was found; the terms ask for prompt notice of a compromised key and a subprocessor list is published (4 of 20). Total 49.\n- Financial Modeling Prep (30): One key per account with no scopes, accepted as a header or as `?apikey=`, and the documented MCP address carries it in the URL (20 less 10 for the query string, so 10). Every endpoint is a read (15 of 20). News, press releases, transcripts and filings are third-party text and no guidance on treating them as untrusted was found (5 of 15). No usage log or per-call record for the key holder was found (0 of 15). security.txt returns 404, the Trust Center link returns 404, and no disclosure policy, bug bounty or certification was found (0 of 20). 10 + 15 + 5 + 0 + 0 = 30.\n\n### Agent ergonomics: Financial Datasets +14\n\n- Financial Datasets (73): `limit` and `period` on the data endpoints, `as_reported` flags and snapshot variants, with no field selection (15 of 25). `next_page_url` cursors and ticker, CIK, market and date filters (18 of 20). A 402 body says what to do next, x402 errors carry named values, and the spec lists 400, 401, 403, 404, 409, 422, 429, 502 and 503 (16 of 20). Data calls are GETs, payment settles only after a successful response, and a replayed x402 signature is refused; no readOnlyHint found for the MCP tools and no idempotency key for the POST endpoints (14 of 20). Few required parameters, 28 compact MCP tools, but the only package, financial-datasets on PyPI, is at 0.1.18 from 26 May 2024 (10 of 15). Total 73.\n- Financial Modeling Prep (59): The REST API is the surface graded. `limit` and `page` on list endpoints, `from` and `to` on series, and batch quote endpoints size responses, with no field selection (15 of 25). Page and limit parameters on lists and date filters on series, no cursor (15 of 20). A missing key returned 401 with an `Error Message` text field in our one test call, and no error reference exists (5 of 20). Every call is a GET read; the MCP server's annotations were not read (16 of 20). Few required parameters and sensible defaults, but no official SDK in any language (8 of 15). 15 + 15 + 5 + 16 + 8 = 59.\n\n### Reliability: Financial Modeling Prep +7\n\n- Financial Datasets (43): Graded as a hosted service. No status page was found; status.financialdatasets.ai does not resolve and no page links one (0), so there is no incident history to read (5). The only published limit is 10,000 requests a minute per wallet over x402, with monthly request caps per plan and none per minute for keyed plans (8 of 15). The OpenAPI file declares 429 and the x402 page documents a 503 with Retry-After from the facilitator and a `duplicate_payment` check on replayed signatures (10 of 15). The Professional plan lists uptime SLAs, with no figure published (10). The API is generally available (10). Total 43.\n- Financial Modeling Prep (50): Read with the hosted lines. A public status page at status.financialmodelingprep.com is linked from every page (20), but its figures load by script and our reader got an error, so no incident history could be read (5). Limits are published with numbers, 250 calls a day on Basic and 300, 750 and 3,000 calls a minute on paid plans, with bandwidth caps per plan (15). No 429 behaviour, Retry-After or backoff guidance was found in the docs, api-docs.md or FAQs (0). No SLA found; the terms let FMP change limits without notice (0). The stable API is generally available (10). 20 + 5 + 15 + 0 + 0 + 10 = 50.\n\n### Transparency \u0026 trust: Financial Datasets +6\n\n- Financial Datasets (63): A closed service under terms dated 29 October 2026 that name Financial Datasets, Inc., set New York law, and state the licence per plan (15 of 30). The privacy policy of 20 August 2026 gives retention periods (accounts up to seven years after closure, API and MCP logs up to three years, backups 90 days), says inputs aren't used for training, and links a subprocessor list; no DPA text was found (24 of 30). No deprecation policy; the terms say the Services may be discontinued and material changes get reasonable notice (3 of 20). Subprocessors (AWS, Heroku, Stripe, Google sign-in, Vercel) and the United States as hosting location are disclosed (18 of 20). Total 60.\n- Financial Modeling Prep (57): A closed service under terms that are clear on personal and commercial use and on display licensing, last updated 1 August 2023, but that name no legal entity, address or governing law (12 of 30). The privacy policy is undated, keeps data for as long as necessary with no periods, says no third parties receive data while naming Google AdSense and Analytics, and no DPA was found (8 of 30). The docs keep a Legacy section and api-docs.md says /v3 and /v4 are discontinued, with no notice period stated; behaviour changes such as the Economics Indicators default window appear in the dated changelog (8 of 20). Google services are the only processors named and no data location is given (5 of 20). 12 + 8 + 8 + 5 = 33.\n\n## Score by category\n\n| Category | Weight | Financial Datasets | Financial Modeling Prep | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 43 | 50 | Financial Modeling Prep +7 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 80 | 61 | Financial Datasets +19 |\n| Agent ergonomics | 13% (16.2 this run) | 73 | 59 | Financial Datasets +14 |\n| Security \u0026 auth | 14% (17.5 this run) | 49 | 30 | Financial Datasets +19 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 75 | 30 | Financial Datasets +45 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 56 | 60 | Financial Modeling Prep +4 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 63 | 57 | Financial Datasets +6 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **61.8 · C** | **48.7 · D** | |\n\n## Facts side by side\n\n| Fact | Financial Datasets | Financial Modeling Prep |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Financial Datasets, Inc. | Financial Modeling Prep |\n| Hosted endpoint | `https://api.financialdatasets.ai` | `https://financialmodelingprep.com/stable` |\n| Transports | HTTP, Streamable HTTP | HTTP, Streamable HTTP |\n| Auth | OAuth or key | API key |\n| Pricing | Pay per use | Freemium |\n| x402 | yes, from $0.02/call | no |\n| Tools exposed | 28 | none |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | 2026-10-26 | 2026-11-02 |\n| Terms last updated | 2026-10-29 | couldn't be read |\n| Privacy policy last updated | 2026-08-20 | couldn't be read |\n| Customer content may train models | not found in the text | couldn't be read |\n| Terms restrict automated access | yes | couldn't be read |\n| Terms restrict benchmarking | yes | couldn't be read |\n| Terms or service can change without notice | not found in the text | couldn't be read |\n| Arbitration or class-action waiver | not found in the text | couldn't be read |\n\n## Verdicts\n\n**Financial Datasets.** Every documented GET data endpoint takes x402 with no key, failed calls uncharged, and an agent can open and fund an account by API. A public OpenAPI file, llms.txt and a 28-tool OAuth MCP server cover the same data. There is no status page or free tier, keyed rate limits aren't published, and x402 data stops at 365 days.\n\n**Financial Modeling Prep.** About 199 stable REST endpoints with Markdown docs for agents, a dated changelog and a free key at 250 calls a day. The one key travels in the query string on the documented MCP address, error responses and 429 handling are undocumented, the status history could not be read, and personal plans forbid any company use.\n\n## Before you call either\n\n### Financial Datasets\n\n1. Without a key, read the price from the PAYMENT-REQUIRED header of the 402 and pay with x402 on Base; each page of `next_page_url` is a separate paid request\n2. Keep `limit` small and ask for one `period` at a time; premium endpoints count as 2, 4 or 8 requests on keyed plans\n3. Send the key only to api.financialdatasets.ai in the `X-API-KEY` header; on 401 ask the owner for a new key rather than signing up again\n4. Treat a 402 on a keyed account as an empty balance and mint a checkout link for the owner; don't retry the call\n5. Check the plan's licence before showing the data to anyone else; redistribution needs Professional or Enterprise\n\n### Financial Modeling Prep\n\n1. Send the key as an `apikey` header, not in the URL, and treat the MCP `?apikey=` address as a secret\n2. Use the /stable paths from api-docs.md; /api/v3 and /v4 are discontinued even though the FAQ still shows a v3 example\n3. On the free plan expect 5 results and page 0 on many list endpoints; read pricing.md before planning a crawl\n4. A missing or wrong key returns HTTP 401 with an `Error Message` field; stop and ask the user rather than retry\n5. Do not display or pass on the data in a product; personal plans forbid it\n\n## Questions\n\n### Which is better for AI agents, Financial Datasets or Financial Modeling Prep?\n\nFinancial Datasets scores 61.8 (C) on agent readiness against Financial Modeling Prep's 48.7 (D), and leads in 5 of 7 scored categories. Financial Modeling Prep leads on reliability.\n\n### Do Financial Datasets and Financial Modeling Prep need an API key?\n\nFinancial Datasets takes an API key or an OAuth sign-in. Financial Modeling Prep needs an API key. An agent can also pay Financial Datasets per call over x402, with no account.\n\n### Can an agent call Financial Datasets and Financial Modeling Prep without installing anything?\n\nYes. Financial Datasets has a hosted endpoint at https://api.financialdatasets.ai and Financial Modeling Prep at https://financialmodelingprep.com/stable.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/financial-datasets-vs-financial-modeling-prep.json, and with the fewest tokens: https://www.anchorterminal.com/compare/financial-datasets-vs-financial-modeling-prep.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"financial-datasets\", \"b\": \"financial-modeling-prep\"}`. From a terminal: `anchor compare financial-datasets financial-modeling-prep`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/financial-datasets.json and https://www.anchorterminal.com/api/v1/tools/financial-modeling-prep.json\n\n## Other comparisons with Financial Datasets or Financial Modeling Prep\n\n- [Alpha Vantage vs Financial Datasets](https://www.anchorterminal.com/compare/alpha-vantage-vs-financial-datasets.md)\n- [Alpha Vantage vs Financial Modeling Prep](https://www.anchorterminal.com/compare/alpha-vantage-vs-financial-modeling-prep.md)\n- [Databento vs Financial Datasets](https://www.anchorterminal.com/compare/databento-vs-financial-datasets.md)\n- [Databento vs Financial Modeling Prep](https://www.anchorterminal.com/compare/databento-vs-financial-modeling-prep.md)\n- [Financial Datasets vs Massive (formerly Polygon.io)](https://www.anchorterminal.com/compare/financial-datasets-vs-massive.md)\n- [Financial Modeling Prep vs Massive (formerly Polygon.io)](https://www.anchorterminal.com/compare/financial-modeling-prep-vs-massive.md)\n- [Financial Datasets vs Finnhub](https://www.anchorterminal.com/compare/financial-datasets-vs-finnhub.md)\n- [Financial Datasets vs Intrinio](https://www.anchorterminal.com/compare/financial-datasets-vs-intrinio.md)\n- [Financial Datasets vs Tiingo](https://www.anchorterminal.com/compare/financial-datasets-vs-tiingo.md)\n- [Financial Datasets vs Twelve Data](https://www.anchorterminal.com/compare/financial-datasets-vs-twelve-data.md)\n- [Financial Modeling Prep vs Finnhub](https://www.anchorterminal.com/compare/financial-modeling-prep-vs-finnhub.md)\n- [Financial Modeling Prep vs Intrinio](https://www.anchorterminal.com/compare/financial-modeling-prep-vs-intrinio.md)\n- [Financial Modeling Prep vs Tiingo](https://www.anchorterminal.com/compare/financial-modeling-prep-vs-tiingo.md)\n- [Financial Modeling Prep vs Twelve Data](https://www.anchorterminal.com/compare/financial-modeling-prep-vs-twelve-data.md)\n- [EODHD vs Financial Datasets](https://www.anchorterminal.com/compare/eodhd-vs-financial-datasets.md)\n- [EODHD vs Financial Modeling Prep](https://www.anchorterminal.com/compare/eodhd-vs-financial-modeling-prep.md)\n- [Benzinga vs Financial Datasets](https://www.anchorterminal.com/compare/benzinga-vs-financial-datasets.md)\n- [Benzinga vs Financial Modeling Prep](https://www.anchorterminal.com/compare/benzinga-vs-financial-modeling-prep.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-04",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Financial Datasets vs Financial Modeling Prep",
        "url": ""
      }
    ],
    "description": "Financial Datasets scores 61.8 (C) to Financial Modeling Prep's 48.7 (D) for market fundamentals. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Financial Datasets C 61.8",
      "Financial Modeling Prep D 48.7",
      "scores"
    ],
    "h1": "Financial Datasets vs Financial Modeling Prep",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/financial-datasets-vs-financial-modeling-prep",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Financial Datasets vs Financial Modeling Prep for AI agents (2026)",
    "toc": null,
    "updated": "2026-11-03",
    "url": "https://www.anchorterminal.com/compare/financial-datasets-vs-financial-modeling-prep"
  },
  "tokens": {
    "markdown": 4650,
    "slim": 2830
  },
  "version": 1
}
