{
  "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"
  },
  "tool": {
    "slug": "twelve-data",
    "name": "Twelve Data",
    "vendor": "Twelve Data Pte. Ltd.",
    "vendorUrl": "https://twelvedata.com",
    "kind": "http-api",
    "category": "market-data",
    "summary": "Twelve Data is a market data API for prices and time series across stocks, ETFs, funds, forex, crypto and commodities, with technical indicators, fundamentals, news and filings. Agents call the REST API, the WebSocket or the hosted MCP server.",
    "url": "https://www.anchorterminal.com/tools/twelve-data",
    "markdownUrl": "https://www.anchorterminal.com/tools/twelve-data.md",
    "slimMarkdownUrl": "https://www.anchorterminal.com/tools/twelve-data.min.md",
    "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/twelve-data.json",
    "dns": "twelve-data.grade.anchorterminal.com",
    "repo": "https://github.com/twelvedata/mcp",
    "transports": [
      "http",
      "streamable-http",
      "stdio",
      "websocket"
    ],
    "remoteUrl": "https://api.twelvedata.com",
    "packages": [
      {
        "registry": "pypi",
        "name": "twelvedata"
      },
      {
        "registry": "npm",
        "name": "twelvedata"
      }
    ],
    "auth": "mixed",
    "authNotes": "REST and WebSocket take an API key from the dashboard, sent as an `Authorization: apikey \u003ckey\u003e` header (the docs call it recommended) or as `?apikey=`. The hosted MCP server does not accept keys; it uses OAuth 2.1 at auth.twelvedata.com with authorisation code and PKCE, refresh tokens, Client ID Metadata Documents or dynamic client registration, one scope `twelvedata`, a required `resource` parameter and a revocation endpoint. The user signs in with a Twelve Data account. No key scopes or expiry found.",
    "pricing": "freemium",
    "pricingNotes": "Basic plan free at 8 API credits a minute and 800 a day with real-time US equities, forex and crypto, no card. Individual plans Grow from $29, Pro from $99 and Ultra from $329 a month (55, 610 and 2,584 credits a minute at the lowest tier, up to $999 for 10,946), annual billing 17 per cent less. Business plans Venture from $149 and Enterprise $1,099 a month, Enterprise+ by quote. Most endpoints cost one credit per symbol; fundamentals and analysis cost more (https://twelvedata.com/pricing.md, checked 2026-11-03).",
    "priceSummary": "$29 / mo",
    "where": "both",
    "x402": {
      "level": "no",
      "evidence": "No x402, MPP or L402 in the OpenAPI document, llms.txt, pricing.md, auth.md or the MCP docs (checked 2026-11-03). A call without a key returns HTTP 401 with a JSON `code`, `message` and `status`.",
      "endpoints": []
    },
    "toolCount": 27,
    "popularity": {
      "githubStars": 791,
      "npmWeekly": null,
      "pypiWeekly": null,
      "asOf": "2026-11-03"
    },
    "docsUrl": "https://twelvedata.com/docs",
    "llmsTxt": "https://twelvedata.com/llms.txt",
    "openapi": "https://api.twelvedata.com/doc/swagger/openapi.json",
    "capabilities": [
      "market.prices",
      "market.history",
      "market.fundamentals",
      "market.crypto",
      "market.indices",
      "market.news",
      "market.filings",
      "data.markets"
    ],
    "tags": [
      "hosted",
      "freemium",
      "api-key",
      "oauth",
      "mcp",
      "remote-mcp",
      "openapi",
      "llms-txt",
      "status-page",
      "soc2",
      "sla",
      "no-card",
      "free-tier",
      "closed-source",
      "python",
      "typescript",
      "go",
      "java",
      "stocks",
      "forex",
      "crypto",
      "streaming",
      "personal-use"
    ],
    "lastRelease": "2026-10-12",
    "graded": true,
    "anchor": {
      "graded": true,
      "score": 70,
      "grade": "BB",
      "agentReady": true,
      "rank": 197,
      "ranked": true,
      "rankOf": 1349,
      "categoryRank": 2,
      "methodology": "0.7",
      "run": "2026-10-01",
      "scores": {
        "ergonomics": 84,
        "maintenance": 82,
        "payments": 30,
        "reliability": 83,
        "schema": 83,
        "security": 54,
        "transparency": 67
      },
      "pending": [
        "performance",
        "tasks"
      ],
      "breakdown": [
        {
          "key": "reliability",
          "name": "Reliability",
          "weight": 16,
          "effectiveWeight": 20,
          "score": 83,
          "points": 16.6,
          "reason": "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.",
          "checked": "2026-11-03"
        },
        {
          "key": "performance",
          "name": "Performance",
          "weight": 10,
          "effectiveWeight": 0,
          "pending": true,
          "points": 0,
          "reason": "Pending. Latency is measured per call by our probes, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until the first probe window closes."
        },
        {
          "key": "schema",
          "name": "Schema \u0026 documentation",
          "weight": 13,
          "effectiveWeight": 16.25,
          "score": 83,
          "points": 13.49,
          "reason": "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.",
          "checked": "2026-11-03"
        },
        {
          "key": "ergonomics",
          "name": "Agent ergonomics",
          "weight": 13,
          "effectiveWeight": 16.25,
          "score": 84,
          "points": 13.65,
          "reason": "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.",
          "checked": "2026-11-03"
        },
        {
          "key": "security",
          "name": "Security \u0026 auth",
          "weight": 14,
          "effectiveWeight": 17.5,
          "score": 54,
          "points": 9.45,
          "reason": "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.",
          "checked": "2026-11-03"
        },
        {
          "key": "payments",
          "name": "Payments \u0026 pricing",
          "weight": 10,
          "effectiveWeight": 12.5,
          "score": 30,
          "points": 3.75,
          "reason": "No x402, MPP or L402 (0). Plan prices are public without login in pricing.md and on the pricing page, sold by credits a minute per month rather than per call (10). A free Basic plan at 800 credits a day with no card (20). The key comes from a browser signup and no key API was found; MCP needs an OAuth login by a person (0). 0 + 10 + 20 + 0 = 30.",
          "checked": "2026-11-03"
        },
        {
          "key": "tasks",
          "name": "Task success",
          "weight": 10,
          "effectiveWeight": 0,
          "pending": true,
          "points": 0,
          "reason": "Pending. Task success needs the category task suites run through each tool, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until then. A data provider's data-quality score is published on its listing now and becomes half of this category when it's scored."
        },
        {
          "key": "maintenance",
          "name": "Maintenance \u0026 community",
          "weight": 7,
          "effectiveWeight": 8.75,
          "score": 82,
          "points": 7.18,
          "reason": "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.",
          "checked": "2026-11-03"
        },
        {
          "key": "transparency",
          "name": "Transparency \u0026 trust",
          "weight": 7,
          "effectiveWeight": 8.75,
          "score": 67,
          "points": 5.86,
          "note": "editorial 50, provenance 83",
          "reason": "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.",
          "checked": "2026-11-03"
        }
      ],
      "assessment": {
        "date": "2026-11-03",
        "basis": "public evidence",
        "confidence": "medium",
        "notes": {
          "ergonomics": "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.",
          "maintenance": "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.",
          "payments": "No x402, MPP or L402 (0). Plan prices are public without login in pricing.md and on the pricing page, sold by credits a minute per month rather than per call (10). A free Basic plan at 800 credits a day with no card (20). The key comes from a browser signup and no key API was found; MCP needs an OAuth login by a person (0). 0 + 10 + 20 + 0 = 30.",
          "reliability": "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.",
          "schema": "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.",
          "security": "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.",
          "transparency": "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."
        },
        "sources": [
          {
            "what": "OpenAPI 3.1 document, 187 operations",
            "url": "https://api.twelvedata.com/doc/swagger/openapi.json",
            "seen": "2026-11-03"
          },
          {
            "what": "llms.txt",
            "url": "https://twelvedata.com/llms.txt",
            "seen": "2026-11-03"
          },
          {
            "what": "docs llms.txt index",
            "url": "https://twelvedata.com/docs/llms.txt",
            "seen": "2026-11-03"
          },
          {
            "what": "introduction (authentication, errors, SDKs)",
            "url": "https://twelvedata.com/docs/llms/introduction.md",
            "seen": "2026-11-03"
          },
          {
            "what": "time series parameters",
            "url": "https://twelvedata.com/docs/llms/market-data/time-series.md",
            "seen": "2026-11-03"
          },
          {
            "what": "MCP server docs",
            "url": "https://twelvedata.com/docs/llms/ai/mcp-server.md",
            "seen": "2026-11-03"
          },
          {
            "what": "auth.md, OAuth 2.1 for the MCP server",
            "url": "https://twelvedata.com/auth.md",
            "seen": "2026-11-03"
          },
          {
            "what": "pricing.md for agents",
            "url": "https://twelvedata.com/pricing.md",
            "seen": "2026-11-03"
          },
          {
            "what": "pricing page",
            "url": "https://twelvedata.com/pricing",
            "seen": "2026-11-03"
          },
          {
            "what": "support article on credits and limits",
            "url": "http://support.twelvedata.com/en/articles/5194820-api-credits-limits",
            "seen": "2026-11-03"
          },
          {
            "what": "status page",
            "url": "https://twelvedata.isitup.cloud",
            "seen": "2026-11-03"
          },
          {
            "what": "news and monthly updates",
            "url": "https://twelvedata.com/news",
            "seen": "2026-11-03"
          },
          {
            "what": "September 2026 update",
            "url": "https://twelvedata.com/news/sept-2026-update",
            "seen": "2026-11-03"
          },
          {
            "what": "terms of use",
            "url": "https://twelvedata.com/terms",
            "seen": "2026-11-03"
          },
          {
            "what": "privacy policy",
            "url": "https://twelvedata.com/privacy",
            "seen": "2026-11-03"
          },
          {
            "what": "trust centre",
            "url": "https://security.twelvedata.com/",
            "seen": "2026-11-03"
          },
          {
            "what": "about page",
            "url": "https://twelvedata.com/about",
            "seen": "2026-11-03"
          },
          {
            "what": "MCP server repository, shallow clone",
            "url": "https://github.com/twelvedata/mcp",
            "seen": "2026-11-03"
          },
          {
            "what": "GitHub organisation",
            "url": "https://github.com/twelvedata",
            "seen": "2026-11-03"
          },
          {
            "what": "MCP endpoint without a token, 401",
            "url": "https://mcp.twelvedata.com/mcp",
            "seen": "2026-11-03"
          },
          {
            "what": "quote endpoint without a key, 401",
            "url": "https://api.twelvedata.com/quote?symbol=AAPL",
            "seen": "2026-11-03"
          },
          {
            "what": "robots.txt",
            "url": "https://twelvedata.com/robots.txt",
            "seen": "2026-11-03"
          },
          {
            "what": "RDAP for twelvedata.com",
            "url": "https://rdap.org/domain/twelvedata.com",
            "seen": "2026-11-03"
          }
        ],
        "openQuestions": [
          "unchecked: the hosted MCP server's live tool list, which needs an OAuth login; the 27 tools, 3 of them login and usage helpers, are counted from the source of twelvedata/mcp at its 1 October 2026 commit",
          "unchecked: the trust centre's SOC 2 report type and date, which sit behind a security review request",
          "Whether the hosted server at mcp.twelvedata.com runs the public repository's code, since the 1 October commit made the repository single-tenant and dropped its Redis OAuth provider",
          "The pricing page's visible cards show the top tier of each plan ($79, $229, $999) while pricing.md and the page's structured data give the lowest ($29, $99, $329); both are recorded",
          "Whether the Basic plan needs a card. auth.md and llms.txt say it does not; the pricing page does not say",
          "firstReleased is left empty. The about page's structured data gives 2020 as the founding year and RDAP gives 11 July 2019 for the domain; no first-hand launch date for the API was found",
          "No founder or named person was found on twelvedata.com, so the humans file lists none",
          "The MCP repository has no LICENSE file; the README calls it open source without naming a licence"
        ]
      },
      "negative": 0,
      "verdict": "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.",
      "bestFor": "Agents that need prices and time series across many exchanges and asset classes with one contract, CSV output, and a documented error table.",
      "strengths": [
        "OpenAPI 3.1 for 187 operations with eight documented response codes each, plus llms.txt, pricing.md and auth.md for agents",
        "Status page with component history, two incidents of 20 and 16 minutes in the 90 days to 3 November 2026",
        "Hosted MCP server on OAuth 2.1 with PKCE, resource indicators and token revocation, and 27 read-only tools in the open source",
        "Official SDKs for Python, Node.js, Go, Java and R, a CLI, and monthly dated product updates",
        "Free Basic plan at 800 credits a day with no card, and plan prices published without login"
      ],
      "weaknesses": [
        "The REST docs and OpenAPI accept the key as `?apikey=` in the query string alongside the header",
        "No parameter in the OpenAPI document declares an enum; interval and type values are listed in Markdown only",
        "Free and individual plans are for internal, non-commercial use; any company, team or fund needs a business plan from $149 a month",
        "No Retry-After or backoff guidance on the documented 429",
        "The open-source MCP repository ships no licence file, and its local HTTP mode serves /mcp with no authentication by default"
      ],
      "agentNotes": [
        "Send the key as `Authorization: apikey \u003ckey\u003e`, not in the URL; the hosted MCP server takes OAuth only, so never paste a key into a connector's key field",
        "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`",
        "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",
        "A 403 means the key's plan lacks the endpoint or symbol, not a bad key; check pricing.md before escalating",
        "Use trial symbols from twelvedata.com/exchanges to test premium data on the free plan"
      ],
      "metrics": {
        "kind": "remote",
        "measured": false
      },
      "reviewCount": 0,
      "avgRating": 0,
      "history": [
        {
          "basis": "public evidence",
          "confidence": "medium",
          "grade": "BB",
          "methodology": "0.7",
          "pending": [
            "performance",
            "tasks"
          ],
          "run": "2026-10-01",
          "runLabel": "October 2026 research run",
          "score": 70
        }
      ],
      "editorialScores": {
        "ergonomics": 84,
        "maintenance": 82,
        "payments": 30,
        "reliability": 83,
        "schema": 83,
        "security": 54,
        "transparency": 50
      },
      "provenanceScore": 83,
      "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
      },
      "scoreHistory": [
        {
          "date": "2026-11-03",
          "grade": "BB",
          "kind": "listed",
          "method": "0.7",
          "score": 70
        }
      ]
    },
    "connect": {
      "install": "pip install twelvedata",
      "http": "curl -H \"Authorization: apikey $TWELVE_DATA_API_KEY\" \"https://api.twelvedata.com/time_series?symbol=AAPL\u0026interval=1day\u0026outputsize=30\"",
      "config": {
        "mcpServers": {
          "twelvedata": {
            "url": "https://mcp.twelvedata.com/mcp"
          }
        }
      }
    },
    "letme": {
      "capability": "https://letme.dev/market.prices",
      "tool": "https://letme.dev/twelve-data"
    },
    "notable": [
      "A public OpenAPI 3.1 document covers 187 operations, each with a description and documented 200, 400, 401, 403, 404, 414, 429 and 500 responses, and declares the key as a header or query parameter (https://api.twelvedata.com/doc/swagger/openapi.json)",
      "llms.txt links Markdown docs per section, a pricing.md written for agents, auth.md for the MCP OAuth flow, and the OpenAPI document (https://twelvedata.com/llms.txt)",
      "The hosted MCP server at https://mcp.twelvedata.com/mcp uses OAuth 2.1 and refuses API keys; the open-source server in twelvedata/mcp (86 stars, last commit 1 October 2026) defines 27 tools with readOnlyHint annotations, 24 for data and 3 for login and usage (https://github.com/twelvedata/mcp)",
      "The status page at twelvedata.isitup.cloud lists Price API, Fundamentals API, WebSocket and Website with two incidents in the 90 days to 3 November 2026, 20 minutes on 1 September and 16 minutes on 14 October (https://twelvedata.isitup.cloud)",
      "The terms of 1 January 2026 name Twelve Data Pte. Ltd. of Singapore, limit free and individual plans to internal non-commercial use, require business plans for any company, and sell a 99.9 per cent SLA as an option (https://twelvedata.com/terms)",
      "A trust centre on SafeBase lists SOC 2, GDPR and CCPA with Microsoft Azure, Stripe and PayPal as subprocessors (https://security.twelvedata.com/)"
    ],
    "area": "domain-data",
    "details": [
      {
        "label": "Surface listed",
        "value": "The REST API at api.twelvedata.com and the hosted MCP server at mcp.twelvedata.com/mcp, read from the OpenAPI document, llms.txt and the Markdown docs, pricing.md and the pricing page, auth.md, the terms and privacy policy, the status page, the trust centre, the news page and a shallow clone of twelvedata/mcp on 3 November 2026. No account was made and no tool was called"
      },
      {
        "label": "API",
        "value": "187 GET operations tagged technical indicators (102), fundamentals (20), reference data (18), mutual funds (11), analysis (9), ETFs (8), regulatory (7), market data (6), currencies, money market funds and advanced. Base URL https://api.twelvedata.com with no version in the path"
      },
      {
        "label": "Coverage",
        "value": "The vendor says more than 1 million instruments on 250 exchanges in 90 countries, with real-time US equities on every plan, real-time EU and delayed Australian data on Pro, Cboe Europe real time announced in January 2026, and exchange add-ons such as ASX and Cboe Canada priced per year"
      },
      {
        "label": "Rate limits",
        "value": "Credits per minute by plan, 8 on Basic up to 10,946 on the top Ultra and Enterprise tiers, an 800 a day cap on Basic, WebSocket credits per subscribed symbol. 429 when exceeded, no Retry-After documented"
      },
      {
        "label": "MCP server",
        "value": "Hosted at mcp.twelvedata.com/mcp over streamable HTTP with OAuth 2.1 (auth.twelvedata.com, scope `twelvedata`, resource indicator required). The open-source server runs over stdio or local HTTP with the key in a .env file and defines 27 tools with readOnlyHint, the 3 login and usage tools included"
      },
      {
        "label": "Response size",
        "value": "`outputsize` 1 to 5,000 (default 30), `format=CSV`, `dp` decimal places, `start_date` and `end_date`, `date`, batch requests, and `type`, `exchange` and `country` filters"
      },
      {
        "label": "Errors",
        "value": "JSON with `code`, `message` and `status`; 400 bad parameters, 401 bad key, 403 plan lacks access, 404 not found, 414 parameter too long, 429 limit, 500 server. Null fields are documented as expected when data is unavailable"
      },
      {
        "label": "SDKs",
        "value": "Official twelvedata-python (791 stars, v1.4.0 of 27 April 2026), twelvedata-node, twelvedata-go, twelvedata-java, twelvedata-r-sdk and twelvedata-cli; community C#, PHP and TypeScript clients listed in the docs"
      },
      {
        "label": "Use terms",
        "value": "Free and individual plans are internal, non-commercial use; business plans are required for any company, team, fund or organisation. External display and redistribution need Venture or above or a written agreement. Data must be deleted within 30 days of termination"
      },
      {
        "label": "Security",
        "value": "Trust centre on SafeBase (SOC 2, GDPR, CCPA, ten policies, Azure hosting). No security.txt, bug bounty or public disclosure process found"
      },
      {
        "label": "Legal entity",
        "value": "Twelve Data Pte. Ltd., UEN 202006058W, 20A Tanjong Pagar Road, Singapore, per the terms and privacy policy. The about page's structured data gives a founding date of 2020"
      }
    ],
    "unitPrices": [
      {
        "item": "Grow, 55 credits a minute",
        "unit": "month",
        "usd": 29,
        "note": "individual, internal use, lowest Grow tier"
      },
      {
        "item": "Pro, 610 credits a minute",
        "unit": "month",
        "usd": 99,
        "note": "individual, lowest Pro tier"
      },
      {
        "item": "Ultra, 2,584 credits a minute",
        "unit": "month",
        "usd": 329,
        "note": "individual, lowest Ultra tier"
      },
      {
        "item": "Venture, 610 credits a minute",
        "unit": "month",
        "usd": 149,
        "note": "business, external display"
      },
      {
        "item": "Enterprise, 10,946 credits a minute",
        "unit": "month",
        "usd": 1099,
        "note": "business, external distribution, 99.99 per cent SLA"
      }
    ],
    "provenance": {
      "legalEntity": "Twelve Data Pte. Ltd.",
      "domain": "twelvedata.com",
      "domainRegistered": "2019-07-11",
      "endpointOnVendorDomain": true,
      "terms": "https://twelvedata.com/terms",
      "privacy": "https://twelvedata.com/privacy",
      "statusPage": "https://twelvedata.isitup.cloud",
      "changelog": "https://twelvedata.com/news",
      "securityTxt": "none",
      "checked": "2026-11-03",
      "notes": [
        "The terms, last updated 1 January 2026, name Twelve Data Pte. Ltd. (UEN 202006058W) under Singapore law with SIAC arbitration. Section 2.3(h) forbids automated tools used to exceed rate limits; nothing forbids reading the website.",
        "The privacy policy, last updated 22 September 2026, gives the Singapore address, retention of 2 years for account data, 7 years for financial records and 1 year for usage data, and names Azure, Stripe, PayPal, Cloudflare, Intercom, Segment, CookieYes, Google Analytics and Microsoft Clarity.",
        "twelvedata.com/robots.txt disallows /api/, /docs/search, /docs/url/convert and account paths; the docs, pricing, terms and privacy pages are allowed.",
        "RDAP gives twelvedata.com a registration date of 11 July 2019 at GoDaddy.",
        "/.well-known/security.txt and /security.txt return 404. twelvedata.com/security returns 404; the trust centre is security.twelvedata.com on SafeBase.",
        "The status page is hosted by Isitup at twelvedata.isitup.cloud and is linked from llms.txt. The news page carries monthly product updates and is the nearest thing to a changelog."
      ],
      "score": 83,
      "checks": [
        {
          "check": "Legal entity named",
          "value": "Twelve Data Pte. Ltd.",
          "points": 20,
          "max": 20,
          "state": "ok"
        },
        {
          "check": "Domain age",
          "value": "twelvedata.com, registered 2019-07-11 (7 years)",
          "points": 11,
          "max": 15,
          "state": "part"
        },
        {
          "check": "Endpoint on the vendor's domain",
          "value": "api.twelvedata.com",
          "points": 15,
          "max": 15,
          "state": "ok"
        },
        {
          "check": "Terms of service",
          "value": "read, states 7 of the 7 things a reader expects, and has 2 clauses that cost points",
          "points": 6,
          "max": 10,
          "state": "part"
        },
        {
          "check": "Privacy policy",
          "value": "read, states 8 of the 8 things a reader expects",
          "points": 10,
          "max": 10,
          "state": "ok"
        },
        {
          "check": "Status page",
          "value": "twelvedata.isitup.cloud",
          "points": 10,
          "max": 10,
          "state": "ok"
        },
        {
          "check": "Changelog",
          "value": "published",
          "points": 10,
          "max": 10,
          "state": "ok"
        },
        {
          "check": "security.txt",
          "value": "not found",
          "points": 0,
          "max": 10,
          "state": "no"
        },
        {
          "check": "People named",
          "value": "not researched yet",
          "points": 0,
          "max": 0,
          "state": "na"
        },
        {
          "check": "Support route",
          "value": "a support address, help pages, a community",
          "points": 5,
          "max": 5,
          "state": "ok"
        }
      ],
      "policies": [
        {
          "kind": "terms",
          "url": "https://twelvedata.com/terms",
          "state": "read",
          "readAt": "2026-11-03",
          "statedDate": "2026-01-01",
          "words": 4554,
          "points": 6,
          "max": 10,
          "expected": [
            {
              "key": "terms.date",
              "label": "Gives the date it was last updated",
              "found": true,
              "quote": "Last updated: January 1, 2026",
              "says": "Last updated 2026-01-01"
            },
            {
              "key": "terms.law",
              "label": "Names the governing law or courts",
              "found": true,
              "quote": "This Agreement is governed by courts of the Republic of Singapore, excluding conflict of laws principles.",
              "says": "Disputes go to the courts of the Republic of Singapore"
            },
            {
              "key": "terms.liability",
              "label": "States a limit on its liability",
              "found": true,
              "quote": "TOTAL LIABILITY SHALL NOT EXCEED THE FEES PAID IN THE TWELVE MONTHS PRECEDING THE CLAIM.",
              "says": "Capped at the fees paid in the 12 months before the claim"
            },
            {
              "key": "terms.termination",
              "label": "Says how the agreement or account can be ended",
              "found": true,
              "quote": "- Failure to pay within this timeframe may lead to full deactivation of the subscription and termination per Section 12"
            },
            {
              "key": "terms.changes",
              "label": "Says how changes to the terms are announced",
              "found": true,
              "quote": "(d) Twelve Data may update fees annually with 30 days' notice",
              "says": "Gives 30 days of notice before a change"
            },
            {
              "key": "terms.use",
              "label": "Lists what users may not do",
              "found": true,
              "quote": "If you do not have this authority, are under 18 years of age, or do not agree with this Agreement, you must not accept these terms and may not access or use the Platform."
            },
            {
              "key": "terms.sla",
              "label": "Refers to a service level or uptime commitment",
              "found": true,
              "quote": "\"Service Level Agreement\" or \"SLA\" means the support policy and service level commitments, if purchased."
            }
          ],
          "toKnow": [
            {
              "key": "terms.benchmark",
              "label": "Restricts benchmarking or competitive use",
              "found": true,
              "quote": "(d) Use the Platform to build competitive products or services",
              "costsPoints": true
            },
            {
              "key": "terms.nonotice",
              "label": "Says the terms or the service can change without notice",
              "found": true,
              "quote": "TWELVE DATA RESERVES THE RIGHT, AT ITS SOLE DISCRETION, TO MODIFY, SUSPEND, DISCONTINUE, OR REMOVE ANY DATA (INCLUDING THIRD-PARTY DATA OR PROPRIETARY DATA), FEATURES, ENDPOINTS, OR PORTIONS OF THE PLATFORM AT ANY TIME, WITH OR WITHOUT NOTICE TO CUSTOMER.",
              "costsPoints": true
            },
            {
              "key": "terms.arbitration",
              "label": "Requires arbitration or waives class actions",
              "found": true,
              "quote": "(b) If the dispute is not resolved through such negotiations, it shall be referred to binding arbitration administered by the Singapore International Arbitration Centre (\"SIAC\") in Singapore in accordance with the Arbitration Rules of the Singapore International Arbitration Centre (\"SIAC Rules\") for the time being in…"
            }
          ],
          "notes": [
            {
              "date": "2026-11-03",
              "text": "Non-Display Use, meaning any use of Data not displayed to natural persons, is permitted only as the subscription tier allows.",
              "quote": "(d) Use Data for Non-Display Use only as permitted by your subscription tier"
            },
            {
              "date": "2026-11-03",
              "text": "Subscriptions renew automatically unless cancelled at least 24 hours before the renewal date, and prices may change at renewal with 30 days' notice.",
              "quote": "- Renewal occurs unless cancelled at least 24 hours before the renewal date"
            },
            {
              "date": "2026-11-03",
              "text": "Free Tier data may not be used for commercial purposes.",
              "quote": "(l) Use Free Tier data for commercial purposes"
            }
          ]
        },
        {
          "kind": "privacy",
          "url": "https://twelvedata.com/privacy",
          "state": "read",
          "readAt": "2026-11-03",
          "statedDate": "2026-09-22",
          "words": 2388,
          "points": 10,
          "max": 10,
          "expected": [
            {
              "key": "privacy.date",
              "label": "Gives the date it was last updated",
              "found": true,
              "quote": "Last updated: September 22, 2026",
              "says": "Last updated 2026-09-22"
            },
            {
              "key": "privacy.collected",
              "label": "Says what personal data is collected",
              "found": true,
              "quote": "We collect personal data either directly from users (e.g., when signing up for services) or automatically (e.g., through cookies and analytics tools)."
            },
            {
              "key": "privacy.retention",
              "label": "Says how long data is kept",
              "found": true,
              "quote": "- Account information: Retained for 2 years after account closure",
              "says": "Names a period of 2 years"
            },
            {
              "key": "privacy.processors",
              "label": "Says who else receives the data",
              "found": true,
              "quote": "We may also share data with trusted service providers (see Section 3) who process data on our behalf and only on our instructions."
            },
            {
              "key": "privacy.sale",
              "label": "Says whether personal data is sold or shared for advertising",
              "found": true,
              "quote": "We do not sell personal data in exchange for money.",
              "says": "Says it does not sell personal data"
            },
            {
              "key": "privacy.rights",
              "label": "Says what rights people have over their data",
              "found": true,
              "quote": "For residents of California (CCPA/CPRA), other US states with similar laws (e.g., DPDPA, MCPA, NPDPA), Brazil (LGPD), Canada (PIPEDA), and other regions with similar legal requirements, you may also be entitled to specific rights outlined below."
            },
            {
              "key": "privacy.contact",
              "label": "Gives a privacy contact",
              "found": true,
              "quote": "- Right to access: Request a copy of your data"
            },
            {
              "key": "privacy.transfers",
              "label": "Says where data is transferred or stored",
              "found": true,
              "quote": "data transfers: If we transfer personal data to countries outside the European Economic Area (EEA), we do so under appropriate mechanisms, such as Standard Contractual Clauses, binding corporate rules, or, where the recipient organisation is certified, the EU US Data Privacy Framework",
              "says": "Relies on standard contractual clauses and the Data Privacy Framework"
            }
          ],
          "toKnow": [
            {
              "key": "privacy.sells",
              "label": "Says it sells personal data or shares it for advertising",
              "found": true,
              "quote": "We do use advertising and analytics technologies which, under California law, count as selling and sharing personal information."
            }
          ]
        }
      ]
    },
    "humans": {
      "slug": "twelve-data",
      "checked": "2026-11-03",
      "company": "Twelve Data Pte. Ltd.",
      "peopleNote": "No founder or named person was found on a first-hand page. The about page describes a technology-driven company founded in 2020 with no names, the Belgrade meetup post of 14 June 2026 names no one, the terms and privacy policy name only Twelve Data Pte. Ltd. of Singapore, and the GitHub organisation shows no public members. Investors were looked for on the about, startups, news, terms and privacy pages and the GitHub organisation, and in two searches; nothing first-hand mentions funding or backers.",
      "companySocial": {
        "linkedin": "https://www.linkedin.com/company/twelvedata",
        "x": "https://x.com/TwelveData",
        "github": "https://github.com/twelvedata"
      },
      "support": {
        "emails": [
          "support@twelvedata.com"
        ],
        "urls": [
          "https://support.twelvedata.com/en/",
          "https://twelvedata.com/contact"
        ],
        "community": [
          {
            "label": "Telegram",
            "url": "https://t.me/twelvedata",
            "kind": "telegram"
          },
          {
            "label": "MCP server issues",
            "url": "https://github.com/twelvedata/mcp/issues",
            "kind": "github"
          }
        ],
        "contactEmails": [
          "legal@twelvedata.com",
          "dpo@twelvedata.com"
        ]
      },
      "sources": [
        "https://twelvedata.com/about",
        "https://twelvedata.com/",
        "https://twelvedata.com/privacy",
        "https://twelvedata.com/terms",
        "https://twelvedata.com/llms.txt",
        "https://twelvedata.com/news/no-slides-no-agenda-our-first-meetup-in-belgrade",
        "https://github.com/twelvedata"
      ],
      "ownership": {
        "status": "private",
        "checked": "2026-11-03",
        "sources": [
          "https://twelvedata.com/terms",
          "https://twelvedata.com/privacy"
        ]
      }
    },
    "pageJsonUrl": "https://www.anchorterminal.com/tools/twelve-data.json",
    "live": {
      "slug": "twelve-data",
      "probe": {
        "target": "https://api.twelvedata.com",
        "method": "get",
        "lastAt": "2026-11-04T19:35:17.57001935Z",
        "lastOk": true,
        "lastStatus": 404,
        "lastMs": 150,
        "authRequired": false,
        "uptime24h": 100,
        "uptime30d": 100,
        "p50ms24h": 145,
        "p95ms24h": 219,
        "samples24h": 43,
        "samples30d": 43,
        "days": [
          {
            "date": "2026-11-04",
            "probes": 43,
            "ok": 43
          }
        ]
      },
      "vendorStatus": {
        "page": "https://twelvedata.isitup.cloud",
        "indicator": "unknown",
        "summary": "no machine-readable status found",
        "checkedAt": "2026-11-04T15:32:39.97677279Z"
      },
      "securityTxt": {
        "url": "https://twelvedata.com/.well-known/security.txt",
        "state": "none",
        "checkedAt": "2026-11-04T15:54:50.370188865Z"
      },
      "updatedAt": "2026-11-04T19:35:17.57001935Z"
    }
  }
}
