{
  "data": {
    "a": {
      "slug": "benzinga",
      "name": "Benzinga",
      "vendor": "Benzinga",
      "vendorUrl": "https://www.benzinga.com",
      "kind": "http-api",
      "category": "market-data",
      "summary": "Benzinga is a financial news and data company whose licensed APIs serve news, earnings and ratings calendars, analyst insights, transcripts, SEC filings, fundamentals and options signals over REST, websockets and webhooks, for firms that hold a content licence.",
      "url": "https://www.anchorterminal.com/tools/benzinga",
      "markdownUrl": "https://www.anchorterminal.com/tools/benzinga.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/benzinga.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/benzinga.json",
      "dns": "benzinga.grade.anchorterminal.com",
      "repo": "https://github.com/Benzinga/benzinga-docs",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.benzinga.com",
      "packages": [
        {
          "registry": "pypi",
          "name": "benzinga"
        }
      ],
      "auth": "api-key",
      "authNotes": "API token generated in the Benzinga console and sent as the `token` query parameter on every request, which the docs call Bearer authentication. No header option, scopes, rotation or expiry were found in the docs or the OpenAPI specs.",
      "pricing": "paid",
      "pricingNotes": "No prices are published. The docs say to email licensing@benzinga.com or call to get started, and the registration page is on www.benzinga.com, which answered 403 to our reader. The FAQ says each subscription carries its own rate limits and that a trial or sandbox is often available, without terms.",
      "priceSummary": "Paid",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs, llms.txt or the 11 OpenAPI specs (checked 2026-11-03).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 34,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-03"
      },
      "docsUrl": "https://docs.benzinga.com/",
      "llmsTxt": "https://docs.benzinga.com/llms.txt",
      "openapi": "https://github.com/Benzinga/benzinga-docs/tree/main/openapi",
      "capabilities": [
        "market.news",
        "market.fundamentals",
        "market.filings",
        "market.prices",
        "data.markets",
        "data.company"
      ],
      "tags": [
        "official",
        "hosted",
        "paid",
        "sales-led",
        "openapi",
        "llms-txt",
        "status-page",
        "webhooks",
        "python",
        "closed-source"
      ],
      "lastRelease": "2026-11-03",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 49.2,
        "grade": "D",
        "agentReady": false,
        "rank": 1001,
        "ranked": true,
        "rankOf": 1349,
        "categoryRank": 7,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 65,
          "maintenance": 56,
          "payments": 0,
          "reliability": 60,
          "schema": 71,
          "security": 36,
          "transparency": 44
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "low",
          "date": "2026-11-03"
        },
        "negative": 0,
        "verdict": "Benzinga's news, calendar and transcript APIs are documented from 11 public OpenAPI specs with an llms.txt and a Statuspage. The token travels in the query string, no prices or rate limit numbers are published, the Python client was last released in February 2021, and the vendor's main site refused our reader, so its terms and privacy policy are unread.",
        "bestFor": "A licensed firm's agent that needs Benzinga's own newswire, calendars, analyst ratings and transcripts as structured data with deltas.",
        "strengths": [
          "11 OpenAPI specs in a public GitHub repository, 80 operations, with enums on the calendar and news parameters and example responses",
          "llms.txt and a Markdown twin of every docs page at docs.benzinga.com",
          "`displayOutput` sizes news responses to headline, abstract or full text, and `updatedSince` deltas avoid re-reading history",
          "Statuspage with seven API components and no incident since 14 September 2023",
          "security.txt names security@benzinga.com and a disclosure policy"
        ],
        "weaknesses": [
          "The API token is sent only as the `token` query parameter, with no header option, scopes or rotation found",
          "No prices, rate limit numbers, 429 guidance or SLA are published; sales is by email or phone",
          "www.benzinga.com returned 403 on every page, so the terms, privacy policy, registration and pricing were not read",
          "The Python client's last release is 1.21 from 8 February 2021 and the JavaScript client's last push is from 2023; the docs' SDK page is template text",
          "The changelog pages are empty, and the error responses in the specs don't match the examples (401 and 404 appear in examples only)"
        ],
        "agentNotes": [
          "Keep the token out of logs; it can only travel as `?token=`, so strip query strings before recording request URLs",
          "Page through news with `page` and `pageSize` (max 100) and narrow by `tickers`, `dateFrom` or `channels`; a query can't pass 10,000 items",
          "Poll with `updatedSince` (news) or `parameters[updated]` (calendar, signals) rather than re-reading history",
          "An unknown or unentitled news node ID returns 200 with an empty array, not 404; treat empty as not found",
          "Don't plan on a free key; access starts with licensing@benzinga.com and a contract"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "low",
            "grade": "D",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 49.2
          }
        ],
        "editorialScores": {
          "ergonomics": 65,
          "maintenance": 56,
          "payments": 0,
          "reliability": 60,
          "schema": 71,
          "security": 36,
          "transparency": 13
        },
        "provenanceScore": 75,
        "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 benzinga",
        "http": "curl -H 'accept: application/json' \"https://api.benzinga.com/api/v2/news?token=$BENZINGA_TOKEN\u0026tickers=AAPL\u0026pageSize=5\""
      },
      "letme": {
        "capability": "https://letme.dev/market.news",
        "tool": "https://letme.dev/benzinga"
      },
      "area": "domain-data",
      "provenance": {
        "legalEntity": "Benzinga",
        "domain": "benzinga.com",
        "domainRegistered": "",
        "endpointOnVendorDomain": true,
        "terms": "https://www.benzinga.com/terms-and-conditions",
        "privacy": "https://www.benzinga.com/page/privacy",
        "statusPage": "https://benzinga1.statuspage.io",
        "changelog": "https://docs.benzinga.com/changelog/overview",
        "securityTxt": "expired",
        "checked": "2026-11-03",
        "notes": [
          "The legal entity's full name was not read. The terms and privacy pages on www.benzinga.com, linked from the docs footer, answered 403 to our reader, as did every other page on that host. The docs name Benzinga and the GitHub organisation is Benzinga.",
          "www.benzinga.com/robots.txt (version 11 September 2026) allows /apis/ and the terms and privacy paths for all crawlers; the 403 is a bot check, not a robots rule. docs.benzinga.com/robots.txt allows everything except /cdn-cgi/ and /_next/, with Content-Signal ai-train=yes, search=yes, ai-input=yes.",
          "security.txt at www.benzinga.com/.well-known/security.txt names security@benzinga.com, a policy at /.well-known/security-policy.md and Expires 2025-06-01T00:00:00.000Z, so it is expired.",
          "The status page is an Atlassian Statuspage at benzinga1.statuspage.io; the docs link it as API Status.",
          "RDAP for benzinga.com was refused (403 from rdap.org), so the registration date is unchecked.",
          "No terms clause on automated access could be read."
        ],
        "score": 75
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/benzinga.json",
      "live": {
        "slug": "benzinga",
        "probe": {
          "target": "https://api.benzinga.com",
          "method": "get",
          "lastAt": "2026-11-04T21:27:40.714331718Z",
          "lastOk": true,
          "lastStatus": 403,
          "lastMs": 90,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 129,
          "p95ms24h": 242,
          "samples24h": 62,
          "samples30d": 62,
          "days": [
            {
              "date": "2026-11-04",
              "probes": 62,
              "ok": 62
            }
          ]
        },
        "vendorStatus": {
          "page": "https://benzinga1.statuspage.io",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-11-04T21:25:15.838432589Z"
        },
        "versions": [
          {
            "registry": "pypi",
            "name": "benzinga",
            "version": "1.21",
            "released": "2021-02-08",
            "seenAt": "2026-11-04T20:02:17.420788743Z"
          }
        ],
        "githubStars": 2,
        "pypiWeekly": 5539,
        "securityTxt": {
          "url": "https://benzinga.com/.well-known/security.txt",
          "state": "expired",
          "expires": "2025-06-01T00:00:00.000Z",
          "checkedAt": "2026-11-04T15:53:46.560658527Z"
        },
        "updatedAt": "2026-11-04T21:27:40.714331718Z"
      }
    },
    "answer": "Twelve Data scores 70 (BB) on agent readiness against Benzinga's 49.2 (D), and leads in every scored category.",
    "b": {
      "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"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-03"
        },
        "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
        }
      },
      "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"
      },
      "area": "domain-data",
      "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
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/twelve-data.json",
      "live": {
        "slug": "twelve-data",
        "probe": {
          "target": "https://api.twelvedata.com",
          "method": "get",
          "lastAt": "2026-11-04T21:28:18.010030139Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 141,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 148,
          "p95ms24h": 264,
          "samples24h": 62,
          "samples30d": 62,
          "days": [
            {
              "date": "2026-11-04",
              "probes": 62,
              "ok": 62
            }
          ]
        },
        "vendorStatus": {
          "page": "https://twelvedata.isitup.cloud",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-04T21:26:54.035215252Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "twelvedata/mcp",
            "version": "v2.1.0",
            "released": "2026-10-01",
            "seenAt": "2026-11-04T21:02:15.74786218Z"
          },
          {
            "registry": "npm",
            "name": "twelvedata",
            "version": "3.0.1",
            "seenAt": "2026-11-04T21:02:14.836608892Z"
          },
          {
            "registry": "pypi",
            "name": "twelvedata",
            "version": "1.4.0",
            "released": "2026-04-27",
            "seenAt": "2026-11-04T21:02:14.642696806Z"
          }
        ],
        "githubStars": 86,
        "npmWeekly": 196,
        "pypiWeekly": 20847,
        "securityTxt": {
          "url": "https://twelvedata.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-04T15:54:50.370188865Z"
        },
        "updatedAt": "2026-11-04T21:28:18.010030139Z"
      }
    },
    "edges": [
      {
        "by": 30,
        "category": "payments",
        "leads": "twelve-data",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "No x402, MPP or L402 (0). No prices are published anywhere we could read; the docs say to email or call licensing and the APIs page on www.benzinga.com answered 403 (0). The FAQ says a trial or sandbox is often available, with no terms, length or card condition, and the registration page was unread (0). A person registers in a browser or by email (0). Total 0, with pricing and registration recorded as unchecked.",
          "b": "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."
        },
        "scores": {
          "a": 0,
          "b": 30
        }
      },
      {
        "by": 26,
        "category": "maintenance",
        "leads": "twelve-data",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "The docs repository had commits on 2 and 3 November 2026 moving OpenAPI specs from GitLab, and the robots.txt is versioned 11 September 2026 (30). Eight commit days between 23 October and 3 November 2026, all spec transfers, with no dated changelog entry anywhere (12 of 20). Support is licensing@benzinga.com, partners@benzinga.com and a phone line, with a status page; GitHub issue responsiveness was not read (6 of 15). The Python client's last PyPI release is 1.21 of 8 February 2021 and the JavaScript client was last pushed in July 2023, so no current official SDK (5 of 15). The Python client repository was pushed in March 2026 with no release; CI not checked (3 of 10). Total 56.",
          "b": "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."
        },
        "scores": {
          "a": 56,
          "b": 82
        }
      },
      {
        "by": 23,
        "category": "reliability",
        "leads": "twelve-data",
        "name": "Reliability",
        "reasons": {
          "a": "Graded as a hosted service. Atlassian Statuspage at benzinga1.statuspage.io with seven API components (20). The incident feed holds 14 incidents, the newest on 14 September 2023, so the 90 days to 3 November 2026 are clean (30). No rate limit numbers are published; the FAQ says limits depend on the API and the subscription tier (0 of 15). No 429, Retry-After or backoff guidance was found in the docs or the specs (0 of 15). No SLA was found; the architecture page cites a 99.9 per cent availability figure as a claim, and the terms were unread (0). The APIs are generally available (10). Total 60.",
          "b": "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."
        },
        "scores": {
          "a": 60,
          "b": 83
        }
      },
      {
        "by": 23,
        "category": "transparency",
        "leads": "twelve-data",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "A closed service whose terms could not be read, since www.benzinga.com answered 403; the docs footer links them (8 of 30). The privacy policy was unread for the same reason, and the docs say nothing about retention (0 of 30, unchecked). No deprecation policy or dated notices; the changelog pages are empty (0 of 20). The architecture page says the platform runs on Amazon Web Services with Kong Gateway, with no subprocessor list or data location statement (5 of 20). Total 13.",
          "b": "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."
        },
        "scores": {
          "a": 44,
          "b": 67
        }
      },
      {
        "by": 19,
        "category": "ergonomics",
        "leads": "twelve-data",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "`displayOutput` of headline, abstract or full sizes a news response, and `pageSize` runs to 100 (18 of 25). `page` and `pageSize`, ticker, channel, date and `updatedSince` filters, with a 10,000-item cap per query that the docs explain how to work round (18 of 20). Error bodies carry a code, an id and a message in the examples, but an unknown node ID returns 200 with an empty array and the spec's response list doesn't match the examples (10 of 20). Every data call is a read, with no safe-retry guidance; the webhook API registers endpoints (12 of 20). Few required parameters, but the Python client is from 2021, the JavaScript client from 2023 and the docs' SDK page is template text (7 of 15). Total 65.",
          "b": "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."
        },
        "scores": {
          "a": 65,
          "b": 84
        }
      },
      {
        "by": 18,
        "category": "security",
        "leads": "twelve-data",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "One token per account with no scopes, sent only as the `token` query parameter, generated in the console; no rotation or expiry found (20 less 10 for the query string, so 10). Every data endpoint is a read (15 of 20). News, press releases and transcripts are third-party text, with no guidance on treating them as untrusted (5 of 15). No usage log or per-call record for the token holder was found (0 of 15). security.txt names security@benzinga.com and a policy page, with an Expires date of 1 June 2025, and the policy itself is on the host that refused our reader; no bounty, SOC 2 or ISO 27001 was found in the docs (6 of 20). Total 36.",
          "b": "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."
        },
        "scores": {
          "a": 36,
          "b": 54
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Benzinga",
        "b": "Twelve Data Pte. Ltd.",
        "name": "Vendor"
      },
      {
        "a": "https://api.benzinga.com",
        "b": "https://api.twelvedata.com",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP, Streamable HTTP, stdio, websocket",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Paid",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "none",
        "b": "27",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-11-03",
        "b": "2026-10-12",
        "name": "Last release"
      },
      {
        "a": "couldn't be read",
        "b": "2026-01-01",
        "name": "Terms last updated"
      },
      {
        "a": "couldn't be read",
        "b": "2026-09-22",
        "name": "Privacy policy last updated"
      },
      {
        "a": "couldn't be read",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "couldn't be read",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "couldn't be read",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "couldn't be read",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "couldn't be read",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "34 stars",
        "b": "791 stars",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Twelve Data scores 70 (BB) on agent readiness against Benzinga's 49.2 (D), and leads in every scored category.",
        "question": "Which is better for AI agents, Benzinga or Twelve Data?"
      },
      {
        "answer": "Benzinga needs an API key. Twelve Data takes an API key or an OAuth sign-in.",
        "question": "Do Benzinga and Twelve Data need an API key?"
      },
      {
        "answer": "Yes. Benzinga has a hosted endpoint at https://api.benzinga.com and Twelve Data at https://api.twelvedata.com.",
        "question": "Can an agent call Benzinga and Twelve Data without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": null,
        "also": null,
        "goodFor": "A licensed firm's agent that needs Benzinga's own newswire, calendars, analyst ratings and transcripts as structured data with deltas.",
        "slug": "benzinga",
        "watchFor": "The API token is sent only as the `token` query parameter, with no header option, scopes or rotation found"
      },
      {
        "aheadOn": [
          "Reliability, 83 against 60",
          "Schema \u0026 documentation, 83 against 71",
          "Agent ergonomics, 84 against 65",
          "Security \u0026 auth, 54 against 36",
          "Payments \u0026 pricing, 30 against 0",
          "Maintenance \u0026 community, 82 against 56",
          "Transparency \u0026 trust, 67 against 44"
        ],
        "also": [
          "Agent-ready, a grade of BB or better",
          "Runs on your own machine",
          "Free to start without a card"
        ],
        "goodFor": "Agents that need prices and time series across many exchanges and asset classes with one contract, CSV output, and a documented error table.",
        "slug": "twelve-data",
        "watchFor": "The REST docs and OpenAPI accept the key as `?apikey=` in the query string alongside the header"
      }
    ],
    "history": null,
    "job": {
      "capability": "market.news",
      "name": "Market news"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/alpha-vantage-vs-benzinga.json",
        "title": "Alpha Vantage vs Benzinga",
        "url": "https://www.anchorterminal.com/compare/alpha-vantage-vs-benzinga"
      },
      {
        "json": "https://www.anchorterminal.com/compare/alpha-vantage-vs-twelve-data.json",
        "title": "Alpha Vantage vs Twelve Data",
        "url": "https://www.anchorterminal.com/compare/alpha-vantage-vs-twelve-data"
      },
      {
        "json": "https://www.anchorterminal.com/compare/benzinga-vs-databento.json",
        "title": "Benzinga vs Databento",
        "url": "https://www.anchorterminal.com/compare/benzinga-vs-databento"
      },
      {
        "json": "https://www.anchorterminal.com/compare/benzinga-vs-massive.json",
        "title": "Benzinga vs Massive (formerly Polygon.io)",
        "url": "https://www.anchorterminal.com/compare/benzinga-vs-massive"
      },
      {
        "json": "https://www.anchorterminal.com/compare/databento-vs-twelve-data.json",
        "title": "Databento vs Twelve Data",
        "url": "https://www.anchorterminal.com/compare/databento-vs-twelve-data"
      },
      {
        "json": "https://www.anchorterminal.com/compare/finnhub-vs-twelve-data.json",
        "title": "Finnhub vs Twelve Data",
        "url": "https://www.anchorterminal.com/compare/finnhub-vs-twelve-data"
      },
      {
        "json": "https://www.anchorterminal.com/compare/intrinio-vs-twelve-data.json",
        "title": "Intrinio vs Twelve Data",
        "url": "https://www.anchorterminal.com/compare/intrinio-vs-twelve-data"
      },
      {
        "json": "https://www.anchorterminal.com/compare/massive-vs-twelve-data.json",
        "title": "Massive (formerly Polygon.io) vs Twelve Data",
        "url": "https://www.anchorterminal.com/compare/massive-vs-twelve-data"
      },
      {
        "json": "https://www.anchorterminal.com/compare/tiingo-vs-twelve-data.json",
        "title": "Tiingo vs Twelve Data",
        "url": "https://www.anchorterminal.com/compare/tiingo-vs-twelve-data"
      },
      {
        "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-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-twelve-data.json",
        "title": "EODHD vs Twelve Data",
        "url": "https://www.anchorterminal.com/compare/eodhd-vs-twelve-data"
      },
      {
        "json": "https://www.anchorterminal.com/compare/benzinga-vs-eodhd.json",
        "title": "Benzinga vs EODHD",
        "url": "https://www.anchorterminal.com/compare/benzinga-vs-eodhd"
      },
      {
        "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"
      },
      {
        "json": "https://www.anchorterminal.com/compare/benzinga-vs-finnhub.json",
        "title": "Benzinga vs Finnhub",
        "url": "https://www.anchorterminal.com/compare/benzinga-vs-finnhub"
      },
      {
        "json": "https://www.anchorterminal.com/compare/benzinga-vs-intrinio.json",
        "title": "Benzinga vs Intrinio",
        "url": "https://www.anchorterminal.com/compare/benzinga-vs-intrinio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/benzinga-vs-tiingo.json",
        "title": "Benzinga vs Tiingo",
        "url": "https://www.anchorterminal.com/compare/benzinga-vs-tiingo"
      }
    ],
    "panel": null,
    "scores": [
      {
        "benzinga": 60,
        "by": 23,
        "edge": "twelve-data",
        "key": "reliability",
        "name": "Reliability",
        "twelve-data": 83,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "benzinga": 71,
        "by": 12,
        "edge": "twelve-data",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "twelve-data": 83,
        "weight": 13
      },
      {
        "benzinga": 65,
        "by": 19,
        "edge": "twelve-data",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "twelve-data": 84,
        "weight": 13
      },
      {
        "benzinga": 36,
        "by": 18,
        "edge": "twelve-data",
        "key": "security",
        "name": "Security \u0026 auth",
        "twelve-data": 54,
        "weight": 14
      },
      {
        "benzinga": 0,
        "by": 30,
        "edge": "twelve-data",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "twelve-data": 30,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "benzinga": 56,
        "by": 26,
        "edge": "twelve-data",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "twelve-data": 82,
        "weight": 7
      },
      {
        "benzinga": 44,
        "by": 23,
        "edge": "twelve-data",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "twelve-data": 67,
        "weight": 7
      }
    ],
    "summary": "Twelve Data scores 70 (BB) on agent readiness against Benzinga's 49.2 (D), and leads in every scored category. Both do market news.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "benzinga": "Benzinga's news, calendar and transcript APIs are documented from 11 public OpenAPI specs with an llms.txt and a Statuspage. The token travels in the query string, no prices or rate limit numbers are published, the Python client was last released in February 2021, and the vendor's main site refused our reader, so its terms and privacy policy are unread.",
      "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."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/benzinga-vs-twelve-data",
    "json": "https://www.anchorterminal.com/compare/benzinga-vs-twelve-data.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/benzinga-vs-twelve-data.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/benzinga-vs-twelve-data.min.md"
  },
  "markdown": "Twelve Data scores 70 (BB) on agent readiness against Benzinga's 49.2 (D), and leads in every scored category. Both do market news.\n\n- Benzinga: grade D, 49.2/100, rank #1001 of 1349. Markdown https://www.anchorterminal.com/tools/benzinga.md · JSON https://www.anchorterminal.com/api/v1/tools/benzinga.json\n- Twelve Data: grade BB, 70/100, rank #197 of 1349. Markdown https://www.anchorterminal.com/tools/twelve-data.md · JSON https://www.anchorterminal.com/api/v1/tools/twelve-data.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### Benzinga (D)\n\nGood for: A licensed firm's agent that needs Benzinga's own newswire, calendars, analyst ratings and transcripts as structured data with deltas.\n\nWatch for: The API token is sent only as the `token` query parameter, with no header option, scopes or rotation found\n\n### Twelve Data (BB)\n\nGood for: Agents that need prices and time series across many exchanges and asset classes with one contract, CSV output, and a documented error table.\n\nAhead on:\n- Reliability, 83 against 60\n- Schema \u0026 documentation, 83 against 71\n- Agent ergonomics, 84 against 65\n- Security \u0026 auth, 54 against 36\n- Payments \u0026 pricing, 30 against 0\n- Maintenance \u0026 community, 82 against 56\n- Transparency \u0026 trust, 67 against 44\n\nAlso in its favour:\n- Agent-ready, a grade of BB or better\n- Runs on your own machine\n- Free to start without a card\n\nWatch for: The REST docs and OpenAPI accept the key as `?apikey=` in the query string alongside the header\n\n\n## Why the edge\n\n### Payments \u0026 pricing: Twelve Data +30\n\n- Benzinga (0): No x402, MPP or L402 (0). No prices are published anywhere we could read; the docs say to email or call licensing and the APIs page on www.benzinga.com answered 403 (0). The FAQ says a trial or sandbox is often available, with no terms, length or card condition, and the registration page was unread (0). A person registers in a browser or by email (0). Total 0, with pricing and registration recorded as unchecked.\n- Twelve Data (30): 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.\n\n### Maintenance \u0026 community: Twelve Data +26\n\n- Benzinga (56): The docs repository had commits on 2 and 3 November 2026 moving OpenAPI specs from GitLab, and the robots.txt is versioned 11 September 2026 (30). Eight commit days between 23 October and 3 November 2026, all spec transfers, with no dated changelog entry anywhere (12 of 20). Support is licensing@benzinga.com, partners@benzinga.com and a phone line, with a status page; GitHub issue responsiveness was not read (6 of 15). The Python client's last PyPI release is 1.21 of 8 February 2021 and the JavaScript client was last pushed in July 2023, so no current official SDK (5 of 15). The Python client repository was pushed in March 2026 with no release; CI not checked (3 of 10). Total 56.\n- 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.\n\n### Reliability: Twelve Data +23\n\n- Benzinga (60): Graded as a hosted service. Atlassian Statuspage at benzinga1.statuspage.io with seven API components (20). The incident feed holds 14 incidents, the newest on 14 September 2023, so the 90 days to 3 November 2026 are clean (30). No rate limit numbers are published; the FAQ says limits depend on the API and the subscription tier (0 of 15). No 429, Retry-After or backoff guidance was found in the docs or the specs (0 of 15). No SLA was found; the architecture page cites a 99.9 per cent availability figure as a claim, and the terms were unread (0). The APIs are generally available (10). Total 60.\n- 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.\n\n### Transparency \u0026 trust: Twelve Data +23\n\n- Benzinga (44): A closed service whose terms could not be read, since www.benzinga.com answered 403; the docs footer links them (8 of 30). The privacy policy was unread for the same reason, and the docs say nothing about retention (0 of 30, unchecked). No deprecation policy or dated notices; the changelog pages are empty (0 of 20). The architecture page says the platform runs on Amazon Web Services with Kong Gateway, with no subprocessor list or data location statement (5 of 20). Total 13.\n- 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.\n\n### Agent ergonomics: Twelve Data +19\n\n- Benzinga (65): `displayOutput` of headline, abstract or full sizes a news response, and `pageSize` runs to 100 (18 of 25). `page` and `pageSize`, ticker, channel, date and `updatedSince` filters, with a 10,000-item cap per query that the docs explain how to work round (18 of 20). Error bodies carry a code, an id and a message in the examples, but an unknown node ID returns 200 with an empty array and the spec's response list doesn't match the examples (10 of 20). Every data call is a read, with no safe-retry guidance; the webhook API registers endpoints (12 of 20). Few required parameters, but the Python client is from 2021, the JavaScript client from 2023 and the docs' SDK page is template text (7 of 15). Total 65.\n- 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.\n\n### Security \u0026 auth: Twelve Data +18\n\n- Benzinga (36): One token per account with no scopes, sent only as the `token` query parameter, generated in the console; no rotation or expiry found (20 less 10 for the query string, so 10). Every data endpoint is a read (15 of 20). News, press releases and transcripts are third-party text, with no guidance on treating them as untrusted (5 of 15). No usage log or per-call record for the token holder was found (0 of 15). security.txt names security@benzinga.com and a policy page, with an Expires date of 1 June 2025, and the policy itself is on the host that refused our reader; no bounty, SOC 2 or ISO 27001 was found in the docs (6 of 20). Total 36.\n- 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.\n\n## Score by category\n\n| Category | Weight | Benzinga | Twelve Data | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 60 | 83 | Twelve Data +23 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 71 | 83 | Twelve Data +12 |\n| Agent ergonomics | 13% (16.2 this run) | 65 | 84 | Twelve Data +19 |\n| Security \u0026 auth | 14% (17.5 this run) | 36 | 54 | Twelve Data +18 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 0 | 30 | Twelve Data +30 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 56 | 82 | Twelve Data +26 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 44 | 67 | Twelve Data +23 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **49.2 · D** | **70 · BB** | |\n\n## Facts side by side\n\n| Fact | Benzinga | Twelve Data |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Benzinga | Twelve Data Pte. Ltd. |\n| Hosted endpoint | `https://api.benzinga.com` | `https://api.twelvedata.com` |\n| Transports | HTTP | HTTP, Streamable HTTP, stdio, websocket |\n| Auth | API key | OAuth or key |\n| Pricing | Paid | Freemium |\n| x402 | no | no |\n| Tools exposed | none | 27 |\n| Read-only variant documented | no | yes |\n| llms.txt | yes | yes |\n| Last release | 2026-11-03 | 2026-10-12 |\n| Terms last updated | couldn't be read | 2026-01-01 |\n| Privacy policy last updated | couldn't be read | 2026-09-22 |\n| Customer content may train models | couldn't be read | not found in the text |\n| Terms restrict automated access | couldn't be read | not found in the text |\n| Terms restrict benchmarking | couldn't be read | yes |\n| Terms or service can change without notice | couldn't be read | yes |\n| Arbitration or class-action waiver | couldn't be read | yes |\n| Popularity | 34 stars | 791 stars |\n\n## Verdicts\n\n**Benzinga.** Benzinga's news, calendar and transcript APIs are documented from 11 public OpenAPI specs with an llms.txt and a Statuspage. The token travels in the query string, no prices or rate limit numbers are published, the Python client was last released in February 2021, and the vendor's main site refused our reader, so its terms and privacy policy are unread.\n\n**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.\n\n## Before you call either\n\n### Benzinga\n\n1. Keep the token out of logs; it can only travel as `?token=`, so strip query strings before recording request URLs\n2. Page through news with `page` and `pageSize` (max 100) and narrow by `tickers`, `dateFrom` or `channels`; a query can't pass 10,000 items\n3. Poll with `updatedSince` (news) or `parameters[updated]` (calendar, signals) rather than re-reading history\n4. An unknown or unentitled news node ID returns 200 with an empty array, not 404; treat empty as not found\n5. Don't plan on a free key; access starts with licensing@benzinga.com and a contract\n\n### Twelve Data\n\n1. 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\n2. 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`\n3. 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\n4. A 403 means the key's plan lacks the endpoint or symbol, not a bad key; check pricing.md before escalating\n5. Use trial symbols from twelvedata.com/exchanges to test premium data on the free plan\n\n## Questions\n\n### Which is better for AI agents, Benzinga or Twelve Data?\n\nTwelve Data scores 70 (BB) on agent readiness against Benzinga's 49.2 (D), and leads in every scored category.\n\n### Do Benzinga and Twelve Data need an API key?\n\nBenzinga needs an API key. Twelve Data takes an API key or an OAuth sign-in.\n\n### Can an agent call Benzinga and Twelve Data without installing anything?\n\nYes. Benzinga has a hosted endpoint at https://api.benzinga.com and Twelve Data at https://api.twelvedata.com.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/benzinga-vs-twelve-data.json, and with the fewest tokens: https://www.anchorterminal.com/compare/benzinga-vs-twelve-data.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"benzinga\", \"b\": \"twelve-data\"}`. From a terminal: `anchor compare benzinga twelve-data`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/benzinga.json and https://www.anchorterminal.com/api/v1/tools/twelve-data.json\n\n## Other comparisons with Benzinga or Twelve Data\n\n- [Alpha Vantage vs Benzinga](https://www.anchorterminal.com/compare/alpha-vantage-vs-benzinga.md)\n- [Alpha Vantage vs Twelve Data](https://www.anchorterminal.com/compare/alpha-vantage-vs-twelve-data.md)\n- [Benzinga vs Databento](https://www.anchorterminal.com/compare/benzinga-vs-databento.md)\n- [Benzinga vs Massive (formerly Polygon.io)](https://www.anchorterminal.com/compare/benzinga-vs-massive.md)\n- [Databento vs Twelve Data](https://www.anchorterminal.com/compare/databento-vs-twelve-data.md)\n- [Finnhub vs Twelve Data](https://www.anchorterminal.com/compare/finnhub-vs-twelve-data.md)\n- [Intrinio vs Twelve Data](https://www.anchorterminal.com/compare/intrinio-vs-twelve-data.md)\n- [Massive (formerly Polygon.io) vs Twelve Data](https://www.anchorterminal.com/compare/massive-vs-twelve-data.md)\n- [Tiingo vs Twelve Data](https://www.anchorterminal.com/compare/tiingo-vs-twelve-data.md)\n- [Financial Datasets vs Twelve Data](https://www.anchorterminal.com/compare/financial-datasets-vs-twelve-data.md)\n- [Financial Modeling Prep vs Twelve Data](https://www.anchorterminal.com/compare/financial-modeling-prep-vs-twelve-data.md)\n- [EODHD vs Twelve Data](https://www.anchorterminal.com/compare/eodhd-vs-twelve-data.md)\n- [Benzinga vs EODHD](https://www.anchorterminal.com/compare/benzinga-vs-eodhd.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- [Benzinga vs Finnhub](https://www.anchorterminal.com/compare/benzinga-vs-finnhub.md)\n- [Benzinga vs Intrinio](https://www.anchorterminal.com/compare/benzinga-vs-intrinio.md)\n- [Benzinga vs Tiingo](https://www.anchorterminal.com/compare/benzinga-vs-tiingo.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": "Benzinga vs Twelve Data",
        "url": ""
      }
    ],
    "description": "Twelve Data scores 70 (BB) to Benzinga's 49.2 (D) for market news. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Benzinga D 49.2",
      "Twelve Data BB 70",
      "scores"
    ],
    "h1": "Benzinga vs Twelve Data",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/benzinga-vs-twelve-data",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Benzinga vs Twelve Data for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-04",
    "url": "https://www.anchorterminal.com/compare/benzinga-vs-twelve-data"
  },
  "tokens": {
    "markdown": 4250,
    "slim": 2630
  },
  "version": 1
}
