Head to head · Market fundamentals · October 2026 research run

Financial Modeling Prep vs Twelve Data

Twelve Data scores 70 (BB) on agent readiness against Financial Modeling Prep's 48.7 (D), and leads in 6 of 7 scored categories. Both do market fundamentals.

Best financial market data APIs for AI agents · All 55 markets comparisons

Which one, for what

Financial Modeling Prep D

Best for Agents doing company research on statements, ratios, DCF, filings, transcripts and calendars with one key, and US coverage on cheap plans.

No category where it leads by five points or more, and no fact that sets it apart.

Watch for

The documented MCP connection URL puts the API key in the query string, and the REST docs accept ?apikey= too

Twelve Data BB

Best for Agents that need prices and time series across many exchanges and asset classes with one contract, CSV output, and a documented error table.

Ahead on

  • Reliability, 83 against 50
  • Schema & documentation, 83 against 61
  • Agent ergonomics, 84 against 59
  • Security & auth, 54 against 30
  • Maintenance & community, 82 against 60
  • Transparency & trust, 67 against 57

Also in its favour

  • Agent-ready, a grade of BB or better
  • Runs on your own machine

Watch for

The REST docs and OpenAPI accept the key as ?apikey= in the query string alongside the header

Why the edge

Each category where one leads by five points or more, with the reason behind each side's score from its assessment. The numbers are in the table below; this is what they stand for.

Reliability Twelve Data +33

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.

Twelve Data 83

Read with the hosted lines. A public status page at twelvedata.isitup.cloud lists Price API, Fundamentals API, WebSocket and Website with uptime figures (20). Its history shows two incidents in the 90 days to 3 November 2026, 20 minutes of unavailability across the three APIs on 1 September and 16 minutes on the WebSocket on 14 October, minor only (20). Limits are published with numbers, credits a minute by plan from 8 to 10,946 and 800 a day on Basic (15). The docs document a 429 on the limit and the usage endpoint, with no Retry-After or backoff guidance; reads only (8 of 15). The terms sell a 99.9 per cent SLA with service credits, and the Enterprise plan carries 99.99 per cent (10). The REST API and MCP server are generally available (10). 20 + 20 + 15 + 8 + 10 + 10 = 83.

Agent ergonomics Twelve Data +25

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.

Twelve Data 84

The REST API is the surface graded. outputsize 1 to 5,000 with a default of 30, format=CSV, dp, date ranges and batch requests size responses, and the MCP server lists 27 tools (20 of 25). Date ranges, outputsize and exchange, country and type filters, with no cursor pagination (15 of 20). Error codes with meanings an agent can branch on, 403 for plan limits and 429 for credits (16 of 20). Every operation is a read, and the MCP source marks tools readOnlyHint (18 of 20). Few required parameters, a demo key, and official SDKs in Python, Node.js, Go, Java and R (15). 20 + 15 + 16 + 18 + 15 = 84.

Security & auth Twelve Data +24

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.

Twelve Data 54

The REST key is a plain per-account key with no scopes, accepted as a header or as ?apikey= (20 less 10 for the query string). The hosted MCP server refuses keys and uses OAuth 2.1 with PKCE, a resource indicator, refresh tokens, revocation and one scope, which lifts the credential model for that surface (18 of 30). Every operation is a read (15 of 20). Company news is third-party text and no guidance was found (5 of 15). An /api_usage endpoint and dashboard usage give the key holder a view of consumption, not a per-call log (6 of 15). A trust centre on SafeBase lists SOC 2, GDPR and CCPA and ten policies; no security.txt, disclosure process or bug bounty was found (10 of 20). 18 + 15 + 5 + 6 + 10 = 54.

Schema & documentation Twelve Data +22

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.

Twelve Data 83

A public OpenAPI 3.1 document covers 187 operations, every one with a description and 200, 400, 401, 403, 404, 414, 429 and 500 responses, and the MCP tools in the source carry typed inputs and annotations (25). llms.txt on the site and in the docs link Markdown pages per section, pricing.md and auth.md (10). Descriptions state purpose, plan requirement and credit cost, with little on when not to use an endpoint (16 of 20). Required parameters are marked and the Markdown lists interval, adjust and type values, but none of the 3,091 parameters in the spec declares an enum (9 of 15). Examples with a demo key on every endpoint and an error table with codes and meanings (13 of 15). No version in the path, a spec at version 0.0.1, and monthly dated product updates on the news page rather than an API changelog (10 of 15). 25 + 10 + 16 + 9 + 13 + 10 = 83.

Maintenance & community Twelve Data +22

Financial Modeling Prep 60

Read as a closed service. The changelog's newest entry is 2 November 2026 (30). Entries dated 6, 8, 12, 28 and 29 October and 2 November 2026, more than three in 90 days (20). A public changelog, a help centre, FAQs and a support address, with issues reported through a site chatbot per the FAQ (10 of 15). No official SDK; the FAQ points at third-party packages (0 of 15). No package to assess, and nothing else to show for CI or dependency health (0 of 10). 30 + 20 + 10 + 0 + 0 = 60.

Twelve Data 82

Read as a closed service. The newest dated change is the product update of 12 October 2026, with the MCP repository changed on 1 October and the world-model dataset repository on 31 October (30). Monthly updates dated 12 August, 12 September and 12 October 2026 (20). A monthly changelog, a support portal, a sales contact and a Telegram channel; replies on the MCP repository's issues were not read (10 of 15). Six official SDKs and a CLI, twelvedata-python at v1.4.0 of 27 April 2026 (15). The MCP server pins its dependencies with reasons and ships tests; the Python SDK's changelog stops at version 0.1 (7 of 10). 30 + 20 + 10 + 15 + 7 = 82.

Transparency & trust Twelve Data +10

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.

Twelve Data 67

A closed service under terms that name the entity, define internal use, business use and redistribution, and were last updated 1 January 2026; the MCP repository is open source but ships no licence file (15 of 30). The privacy policy of 22 September 2026 states retention periods and names its processors, the terms require data deletion within 30 days of termination, and no DPA is named (20 of 30). No deprecation policy or notice period; the terms allow changes and the monthly updates record them after the fact (3 of 20). Subprocessors are named on the privacy policy and the trust centre, with no data locations beyond transfer mechanisms (12 of 20). 15 + 20 + 3 + 12 = 50.

Score by category

CategoryWeight this runFinancial Modeling PrepTwelve DataEdge
Reliability16%205083Twelve Data +33
Performance10%pendingpendingpendingnot scored in this run
Schema & documentation13%16.26183Twelve Data +22
Agent ergonomics13%16.25984Twelve Data +25
Security & auth14%17.53054Twelve Data +24
Payments & pricing10%12.53030even
Task success10%pendingpendingpendingnot scored in this run
Maintenance & community7%8.86082Twelve Data +22
Transparency & trust7%8.85767Twelve Data +10
Negative events≤1500
TotalD 48.7/100BB 70/100

Facts side by side

FactFinancial Modeling PrepTwelve Data
KindHTTP APIHTTP API
VendorFinancial Modeling PrepTwelve Data Pte. Ltd.
Hosted endpointhttps://financialmodelingprep.com/stablehttps://api.twelvedata.com
TransportsHTTP, Streamable HTTPHTTP, Streamable HTTP, stdio, websocket
AuthAPI keyOAuth or key
PricingFreemiumFreemium
x402nono
Tools exposednone27
Read-only variant documentednoyes
llms.txtyesyes
Last release2026-11-022026-10-12
Terms last updatedcouldn't be read2026-01-01
Privacy policy last updatedcouldn't be read2026-09-22
Customer content may train modelscouldn't be readnot found in the text
Terms restrict automated accesscouldn't be readnot found in the text
Terms restrict benchmarkingcouldn't be readyes
Terms or service can change without noticecouldn't be readyes
Arbitration or class-action waivercouldn't be readyes
Popularitynone791 stars

Verdicts

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.

Twelve Data

A public OpenAPI 3.1 document with error responses on all 187 operations, Markdown docs and pricing for agents, a status page with two short incidents in 90 days, and an MCP server behind OAuth 2.1. The REST key still travels in the query string as a documented option, no enums are declared, and free and individual plans forbid company use.

Before you call either

Financial Modeling Prep

  1. Send the key as an apikey header, not in the URL, and treat the MCP ?apikey= address as a secret
  2. Use the /stable paths from api-docs.md; /api/v3 and /v4 are discontinued even though the FAQ still shows a v3 example
  3. On the free plan expect 5 results and page 0 on many list endpoints; read pricing.md before planning a crawl
  4. A missing or wrong key returns HTTP 401 with an Error Message field; stop and ask the user rather than retry
  5. Do not display or pass on the data in a product; personal plans forbid it

Twelve Data

  1. Send the key as Authorization: apikey <key>, not in the URL; the hosted MCP server takes OAuth only, so never paste a key into a connector's key field
  2. Set outputsize (1 to 5,000, default 30) and format=CSV on time_series to keep responses small, and read status in the JSON body since errors come with HTTP codes and a message
  3. Count credits, not calls; most endpoints cost one credit per symbol and the Basic plan allows 8 a minute and 800 a day, with 429 when exceeded
  4. A 403 means the key's plan lacks the endpoint or symbol, not a bad key; check pricing.md before escalating
  5. Use trial symbols from twelvedata.com/exchanges to test premium data on the free plan

Questions

Which is better for AI agents, Financial Modeling Prep or Twelve Data?

Twelve Data scores 70 (BB) on agent readiness against Financial Modeling Prep's 48.7 (D), and leads in 6 of 7 scored categories.

Do Financial Modeling Prep and Twelve Data need an API key?

Financial Modeling Prep needs an API key. Twelve Data takes an API key or an OAuth sign-in.

Can an agent call Financial Modeling Prep and Twelve Data without installing anything?

Yes. Financial Modeling Prep has a hosted endpoint at https://financialmodelingprep.com/stable and Twelve Data at https://api.twelvedata.com.

Other comparisons with Financial Modeling Prep or Twelve Data

Machine-readable

For companies

Do agents find, use and choose your tools?

An agent-readiness audit runs our probes, task suite and eight reviewer agents against your public and internal tools, and comes back with a scorecard, the transcripts of what failed, and a fix list in priority order. From $2,500, re-run included. We never take payment to move a rank. We do help companies earn one.